Browse Source

- Fixed rand() script command not allowing a range of over 32767 on several systems

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15090 54d463be-8e91-2dee-dedb-b68131a5f0ec
epoque11 13 năm trước cách đây
mục cha
commit
9d32a824b5
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  1. 4 0
      src/map/script.c

+ 4 - 0
src/map/script.c

@@ -4448,6 +4448,10 @@ BUILDIN_FUNC(rand)
 	}
 	if( range <= 1 )
 		script_pushint(st, min);
+	else if( range > SHRT_MAX ) {
+		int step1 = rand()%(range&0xffff), step2 = rand()%(range>>16);
+		script_pushint(st, step1 + (step2<<16) + min);
+	}
 	else
 		script_pushint(st, rand()%range + min);