diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/emap/init.c | 7 | ||||
-rw-r--r-- | src/emap/script_buildins.c | 123 | ||||
-rw-r--r-- | src/emap/script_buildins.h | 7 |
3 files changed, 137 insertions, 0 deletions
diff --git a/src/emap/init.c b/src/emap/init.c index 31656ef..d8c53b0 100644 --- a/src/emap/init.c +++ b/src/emap/init.c @@ -209,6 +209,13 @@ HPExport void plugin_init (void) addScriptCommand("setitemoptionbyindex", "iii*", setItemOptionByIndex); addScriptCommand("isinstance", "i", isInstance); + // TMW2 Custom Script Commands + addScriptCommand("getguildinfo","i",getguildinfo); + addScriptCommand("getguildlvl","i",getguildlvl); + addScriptCommand("getguildavg","i",getguildavg); + addScriptCommand("getguildexp","i",getguildexp); + addScriptCommand("getguildnxp","i",getguildnxp); + do_init_langs(); addPacket(0x7530, 22, map_parse_version, hpClif_Parse); diff --git a/src/emap/script_buildins.c b/src/emap/script_buildins.c index e1c9123..2bdc48d 100644 --- a/src/emap/script_buildins.c +++ b/src/emap/script_buildins.c @@ -14,7 +14,9 @@ #include "map/achievement.h" #include "map/chat.h" #include "map/chrif.h" +#include "map/guild.h" #include "map/instance.h" +#include "map/mapreg.h" #include "map/npc.h" #include "map/pc.h" #include "map/script.h" @@ -2308,3 +2310,124 @@ BUILDIN(isInstance) script_pushint(st, instance->valid(instance_id) ? 1 : 0); return true; } + +/////////////////////////////////////////////////////////////////////////////// +// TMW2 Custom Commands +/////////////////////////////////////////////////////////////////////////////// + +/*========================================== + * Return the data of the @guild_id + * null if not found + *------------------------------------------*/ +BUILDIN(getguildinfo) +{ + int guild_id; + struct guild* g; + + guild_id = script_getnum(st,2); + + if( ( g = guild->search(guild_id) ) != NULL ) + { + mapreg->setreg(reference_uid(script->add_variable("$@guildinfo_lvl"), guild_id),g->guild_lv); + mapreg->setreg(reference_uid(script->add_variable("$@guildinfo_avg"), guild_id),g->average_lv); + mapreg->setreg(reference_uid(script->add_variable("$@guildinfo_exp"), guild_id),g->exp); + mapreg->setreg(reference_uid(script->add_variable("$@guildinfo_nxp"), guild_id),g->next_exp); + } + else + { + //script_pushconststr(st,"null"); + script_pushint(st,0); + } + return true; +} + +/*========================================== + * Return the level of the @guild_id + * -1 if not found + *------------------------------------------*/ +BUILDIN(getguildlvl) +{ + int guild_id; + struct guild* g; + + guild_id = script_getnum(st,2); + + if( ( g = guild->search(guild_id) ) != NULL ) + { + script_pushint(st,g->guild_lv); + } + else + { + script_pushint(st,-1); + } + return true; +} + + +/*========================================== + * Return the average player level of the @guild_id + * -1 if not found + *------------------------------------------*/ +BUILDIN(getguildavg) +{ + int guild_id; + struct guild* g; + + guild_id = script_getnum(st,2); + + if( ( g = guild->search(guild_id) ) != NULL ) + { + script_pushint(st,g->average_lv); + } + else + { + script_pushint(st,-1); + } + return true; +} + + +/*========================================== + * Return the experience of the @guild_id + * -1 if not found + *------------------------------------------*/ +BUILDIN(getguildexp) +{ + int guild_id; + struct guild* g; + + guild_id = script_getnum(st,2); + + if( ( g = guild->search(guild_id) ) != NULL ) + { + script_pushint(st,g->exp); + } + else + { + script_pushint(st,-1); + } + return true; +} + + +/*========================================== + * Return the experience to level up for the @guild_id + * -1 if not found + *------------------------------------------*/ +BUILDIN(getguildnxp) +{ + int guild_id; + struct guild* g; + + guild_id = script_getnum(st,2); + + if( ( g = guild->search(guild_id) ) != NULL ) + { + script_pushint(st,g->next_exp); + } + else + { + script_pushint(st,-1); + } + return true; +} diff --git a/src/emap/script_buildins.h b/src/emap/script_buildins.h index a72a035..5961150 100644 --- a/src/emap/script_buildins.h +++ b/src/emap/script_buildins.h @@ -99,4 +99,11 @@ BUILDIN(getItemOptionParamByIndex); BUILDIN(setItemOptionByIndex); BUILDIN(isInstance); +// TMW2 Build Ins +BUILDIN(getguildinfo); +BUILDIN(getguildlvl); +BUILDIN(getguildavg); +BUILDIN(getguildexp); +BUILDIN(getguildnxp); + #endif // EVOL_MAP_SCRIPT_BUILDINS |