Parcourir la source

Fixed readparam when 2nd parameter is a variable
Related issue #2276

Atemo il y a 7 ans
Parent
commit
9d6b3d06a9
2 fichiers modifiés avec 7 ajouts et 4 suppressions
  1. 1 1
      npc/custom/quests/hunting_missions.txt
  2. 6 3
      src/map/script.c

+ 1 - 1
npc/custom/quests/hunting_missions.txt

@@ -287,7 +287,7 @@ OnNPCKillEvent:
 			if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {
 				set .@Mission_Count, getvar(#Mission_Count, $@partymembercid[.@i]);
 				set .@Mission0, getvar(Mission0, $@partymembercid[.@i]);
-				set .@HP, getvar(HP, $@partymembercid[.@i]);
+				set .@HP, readparam(HP, $@partymembercid[.@i]);
 
 				if (.@Mission_Count && .@Mission0 && .@HP > 0) {
 					getmapxy(.@map2$,.@x2,.@y2,UNITTYPE_PC);

+ 6 - 3
src/map/script.c

@@ -8152,12 +8152,15 @@ BUILDIN_FUNC(readparam)
 {
 	int value;
 	struct script_data *data = script_getdata(st, 2);
-	TBL_PC *sd;
+	TBL_PC *sd = NULL;
 
 	if( script_hasdata(st, 3) ){
-		if( script_isint(st, 3) ){
+		struct script_data *data2 = script_getdata(st, 3);
+
+		get_val(st, data2);
+		if (data_isint(data2) || script_getnum(st, 3)) {
 			script_charid2sd(3, sd);
-		}else{
+		} else if (data_isstring(data2)) {
 			script_nick2sd(3, sd);
 		}
 	}else{