diff options
-rw-r--r-- | Changelog-Trunk.txt | 5 | ||||
-rw-r--r-- | doc/script_commands.txt | 14 | ||||
-rw-r--r-- | src/map/script.c | 6 |
3 files changed, 16 insertions, 9 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 9e3d2a1b6..b8c76047b 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2007/02/05 + * Changed the 'getpartyleader' script command so that it returns a map + name instead of the useless mapindex number. Also fixed it so that it + doesn't throw a 'args of aFree is not valid pointer' error. + (although I'm not at all sure that the fix is correct) + Ref: http://www.eathena.ws/board/index.php?showtopic=137274 * Removed the silly and misleading 'firewall detected' message 2007/02/03 * Added missing vc6 project file diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 65d61f4ba..212ad25d6 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -2155,18 +2155,19 @@ Example: *getpartyleader <party id>,[<type>]; -This function returns some information about the given party-id's leader. When type is ommitted, -the default information retrieved is Character name of the party leader. Possible types are: +This function returns some information about the given party-id's leader. +When type is ommitted, the default information retrieved is the leader's name. +Possible types are: 1: Leader account id 2: Leader character id 3: Leader's class - 4: Leader's current map index + 4: Leader's current map name 5: Leader's current level as stored on the party structure (may not be current level if leader leveled up recently). -If retrieval fails (leader not found or party does not exists), "null" is returned instead of character name, -and -1 is returned for the other types. +If retrieval fails (leader not found or party does not exist), this function +returns "null" instead of the character name, and -1 is for the other types. --------------------------------------- *getguildname(<guild id>) @@ -3548,7 +3549,8 @@ four values: - val3 is the second element, val4 is the resistance to said element. eg: sc_start4 SC_DefEle,60000,Ele_Fire,20,Ele_Water,-15; -'sc_end' will remove a specified status effect. +'sc_end' will remove a specified status effect. If SC_All is used (-1), it will +do a complete removal of all statuses (although permanent ones will re-apply). You can see the full list of status effects caused by skills in 'src/map/status.h' - they are currently not fully documented, but most of that diff --git a/src/map/script.c b/src/map/script.c index 3cce74af1..a8b68db03 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -3877,7 +3877,7 @@ struct script_function buildin_func[] = { {buildin_getcharid,"getcharid","i*"}, {buildin_getpartyname,"getpartyname","i"}, {buildin_getpartymember,"getpartymember","i*"}, - {buildin_getpartyleader,"getpartyleader","i*"}, + {buildin_getpartyleader,"getpartyleader","i?"}, {buildin_getguildname,"getguildname","i"}, {buildin_getguildmaster,"getguildmaster","i"}, {buildin_getguildmasterid,"getguildmasterid","i"}, @@ -6006,13 +6006,13 @@ int buildin_getpartyleader(struct script_state *st) push_val(st->stack,C_INT,p->party.member[i].class_); break; case 4: - push_val(st->stack,C_INT,p->party.member[i].map); + push_str(st->stack,C_CONSTSTR,(char*)mapindex_id2name(p->party.member[i].map)); break; case 5: push_val(st->stack,C_INT,p->party.member[i].lv); break; default: - push_str(st->stack,C_STR,p->party.member[i].name); + push_str(st->stack,C_CONSTSTR,p->party.member[i].name); break; } return 0; |