diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/mob.c | 3 | ||||
-rw-r--r-- | src/map/script.c | 59 |
2 files changed, 62 insertions, 0 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index ad3dd50c3..7482a9d56 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -4591,6 +4591,9 @@ static void mob_load(void) if (iMap->db_use_sql_mob_db) { mob_read_sqldb(); + } + if (iMap->db_use_sql_mob_skill_db) + { mob_read_sqlskilldb(); } else diff --git a/src/map/script.c b/src/map/script.c index 4a90290cf..3ba8ea9fc 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -16679,6 +16679,61 @@ BUILDIN(freeloop) { return true; } +BUILDIN(sit) +{ + struct map_session_data *sd = NULL; + + if (script_hasdata(st, 2)) + sd = iMap->nick2sd(script_getstr(st, 2)); + + if (sd == NULL) + sd = script_rid2sd(st); + + if (!pc_issit(sd)) + { + pc_setsit(sd); + skill->sit(sd,1); + clif->sitting(&sd->bl); + } + return true; +} + +BUILDIN(stand) +{ + struct map_session_data *sd = NULL; + + if (script_hasdata(st, 2)) + sd = iMap->nick2sd(script_getstr(st, 2)); + + if (sd == NULL) + sd = script_rid2sd(st); + + if (pc_issit(sd)) + { + pc->setstand(sd); + skill->sit(sd,0); + clif->standing(&sd->bl); + } + return true; +} + +BUILDIN(issit) +{ + struct map_session_data *sd = NULL; + + if (script_hasdata(st, 2)) + sd = iMap->nick2sd(script_getstr(st, 2)); + + if (sd == NULL) + sd = script_rid2sd(st); + + if (pc_issit(sd)) + script_pushint(st, 1); + else + script_pushint(st, 0); + return true; +} + /** * @commands (script based) **/ @@ -17962,6 +18017,10 @@ void script_parse_builtin(void) { BUILDIN_DEF(packageitem,"?"), + BUILDIN_DEF(sit, "?"), + BUILDIN_DEF(stand, "?"), + BUILDIN_DEF(issit, "?"), + /* New BG Commands [Hercules] */ BUILDIN_DEF(bg_create_team,"sii"), BUILDIN_DEF(bg_join_team,"i?"), |