diff options
author | gumi <mekolat@users.noreply.github.com> | 2017-04-24 11:01:12 -0400 |
---|---|---|
committer | gumi <mekolat@users.noreply.github.com> | 2017-04-24 11:14:20 -0400 |
commit | 149f199fdd0483dfa3df89bed0fe49d95da59b27 (patch) | |
tree | cd48c6985189f39347539fca2163bb33a6aad023 /src/map/script.c | |
parent | ab31b1129b0015559137509e0c3099386f1a69ee (diff) | |
download | hercules-149f199fdd0483dfa3df89bed0fe49d95da59b27.tar.gz hercules-149f199fdd0483dfa3df89bed0fe49d95da59b27.tar.bz2 hercules-149f199fdd0483dfa3df89bed0fe49d95da59b27.tar.xz hercules-149f199fdd0483dfa3df89bed0fe49d95da59b27.zip |
allow checkoption et al to check another player
Diffstat (limited to 'src/map/script.c')
-rw-r--r-- | src/map/script.c | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/src/map/script.c b/src/map/script.c index c9c51afbc..5188fd7eb 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -9950,7 +9950,13 @@ BUILDIN(end) { BUILDIN(checkoption) { int option; - struct map_session_data *sd = script->rid2sd(st); + struct map_session_data *sd; + + if (script_hasdata(st, 3)) + sd = map->id2sd(script_getnum(st, 3)); + else + sd = script->rid2sd(st); + if (sd == NULL) return true;// no player attached, report source @@ -9969,7 +9975,13 @@ BUILDIN(checkoption) BUILDIN(checkoption1) { int opt1; - struct map_session_data *sd = script->rid2sd(st); + struct map_session_data *sd; + + if (script_hasdata(st, 3)) + sd = map->id2sd(script_getnum(st, 3)); + else + sd = script->rid2sd(st); + if (sd == NULL) return true;// no player attached, report source @@ -9988,7 +10000,13 @@ BUILDIN(checkoption1) BUILDIN(checkoption2) { int opt2; - struct map_session_data *sd = script->rid2sd(st); + struct map_session_data *sd; + + if (script_hasdata(st, 3)) + sd = map->id2sd(script_getnum(st, 3)); + else + sd = script->rid2sd(st); + if (sd == NULL) return true;// no player attached, report source @@ -10012,7 +10030,13 @@ BUILDIN(setoption) { int option; int flag = 1; - struct map_session_data *sd = script->rid2sd(st); + struct map_session_data *sd; + + if (script_hasdata(st, 4)) + sd = map->id2sd(script_getnum(st, 4)); + else + sd = script->rid2sd(st); + if (sd == NULL) return true;// no player attached, report source @@ -23190,8 +23214,8 @@ void script_parse_builtin(void) { BUILDIN_DEF(setgroupid, "i?"), BUILDIN_DEF(getgroupid,""), BUILDIN_DEF(end,""), - BUILDIN_DEF(checkoption,"i"), - BUILDIN_DEF(setoption,"i?"), + BUILDIN_DEF(checkoption,"i?"), + BUILDIN_DEF(setoption,"i??"), BUILDIN_DEF(setcart,"?"), BUILDIN_DEF(checkcart,""), BUILDIN_DEF(setfalcon,"?"), @@ -23341,8 +23365,8 @@ void script_parse_builtin(void) { BUILDIN_DEF(setnpcdir,"*"), // [4144] BUILDIN_DEF(getnpcclass,"?"), // [4144] BUILDIN_DEF(getmapxy,"rrri?"), //by Lorky [Lupus] - BUILDIN_DEF(checkoption1,"i"), - BUILDIN_DEF(checkoption2,"i"), + BUILDIN_DEF(checkoption1,"i?"), + BUILDIN_DEF(checkoption2,"i?"), BUILDIN_DEF(guildgetexp,"i"), BUILDIN_DEF(guildchangegm,"is"), BUILDIN_DEF(logmes,"s"), //this command actls as MES but rints info into LOG file either SQL/TXT [Lupus] |