diff options
author | Asheraf <acheraf1998@gmail.com> | 2018-10-10 22:49:08 +0100 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2019-09-23 01:34:01 +0200 |
commit | de6b3e72de09b3ca0ad34cd95e1fa7ebc572b2c1 (patch) | |
tree | b82dd24027ccc36e39caeac88549af8302f7137d /src/map/script.c | |
parent | b5744687d20ccac87b92b59a4814fcc68c5baa64 (diff) | |
download | hercules-de6b3e72de09b3ca0ad34cd95e1fa7ebc572b2c1.tar.gz hercules-de6b3e72de09b3ca0ad34cd95e1fa7ebc572b2c1.tar.bz2 hercules-de6b3e72de09b3ca0ad34cd95e1fa7ebc572b2c1.tar.xz hercules-de6b3e72de09b3ca0ad34cd95e1fa7ebc572b2c1.zip |
Implementation of LapineDdukDdak System
Diffstat (limited to 'src/map/script.c')
-rw-r--r-- | src/map/script.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/map/script.c b/src/map/script.c index 604213982..9a9b46615 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -25755,6 +25755,25 @@ static BUILDIN(identifyidx) return true; } +static BUILDIN(openlapineddukddakboxui) +{ + struct map_session_data *sd = script_rid2sd(st); + if (sd == NULL) + return false; + const int item_id = script_getnum(st, 2); + struct item_data *it = itemdb->exists(item_id); + if (it == NULL) { + ShowError("buildin_openlapineddukddakboxui: Item %d is not valid\n", item_id); + script->reportfunc(st); + script->reportsrc(st); + script_pushint(st, false); + return true; + } + clif->lapineDdukDdak_open(sd, item_id); + script_pushint(st, true); + return true; +} + /** * Adds a built-in script function. * @@ -25934,6 +25953,22 @@ static void script_run_item_rental_end_script(struct map_session_data *sd, struc script->current_item_id = 0; } +static void script_run_item_lapineddukddak_script(struct map_session_data *sd, struct item_data *data, int oid) __attribute__((nonnull (1, 2))); + +/** + * Run item lapineddukddak script for item. + * + * @param sd player session data. Must be correct and checked before. + * @param data unequipped item data. Must be correct and checked before. + * @param oid npc id. Can be also 0 or fake npc id. + */ +static void script_run_item_lapineddukddak_script(struct map_session_data *sd, struct item_data *data, int oid) +{ + script->current_item_id = data->nameid; + script->run(data->lapineddukddak->script, 0, sd->bl.id, oid); + script->current_item_id = 0; +} + #define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args, false } #define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args, false } #define BUILDIN_DEF_DEPRECATED(x,args) { buildin_ ## x , #x , args, true } @@ -26549,6 +26584,7 @@ static void script_parse_builtin(void) BUILDIN_DEF(identify, "i"), BUILDIN_DEF(identifyidx, "i"), + BUILDIN_DEF(openlapineddukddakboxui, "i"), }; int i, len = ARRAYLENGTH(BUILDIN); RECREATE(script->buildin, char *, script->buildin_count + len); // Pre-alloc to speed up @@ -27489,4 +27525,5 @@ void script_defaults(void) script->run_item_unequip_script = script_run_item_unequip_script; script->run_item_rental_start_script = script_run_item_rental_start_script; script->run_item_rental_end_script = script_run_item_rental_end_script; + script->run_item_lapineddukddak_script = script_run_item_lapineddukddak_script; } |