summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/init.c2
-rw-r--r--src/map/script.c60
-rw-r--r--src/map/script.h2
3 files changed, 64 insertions, 0 deletions
diff --git a/src/map/init.c b/src/map/init.c
index bb3d80a..27bf766 100644
--- a/src/map/init.c
+++ b/src/map/init.c
@@ -81,6 +81,8 @@ HPExport void plugin_init (void)
addScriptCommand("getmapmask", "s", getMapMask);
addScriptCommand("getnpcclass", "*", getNpcClass);
addScriptCommand("setnpcsex", "*", setNpcSex);
+ addScriptCommand("setpcsit", "*", setPcSit);
+ addScriptCommand("getpcsit", "*", getPcSit);
do_init_langs();
diff --git a/src/map/script.c b/src/map/script.c
index 86e613e..8b63dd4 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -571,4 +571,64 @@ BUILDIN(setNpcSex)
clif->clearunit_area(&nd->bl, CLR_OUTSIGHT);
nd->vd->sex = sex;
clif->spawn(&nd->bl);
+ return true;
+}
+
+BUILDIN(setPcSit)
+{
+ TBL_PC *sd = NULL;
+ int state = 0;
+
+ if (script_hasdata(st, 3))
+ {
+ sd = map->nick2sd (script_getstr(st, 2));
+ state = script_getnum(st, 3);
+ }
+ else if (script_hasdata(st, 2))
+ {
+ sd = script->rid2sd(st);
+ state = script_getnum(st, 2);
+ }
+ else
+ {
+ return false;
+ }
+ if (!sd)
+ return false;
+
+ if (state < 0)
+ state = 0;
+ if (state > 1)
+ state = 1;
+
+ if (!state)
+ {
+ if (pc_issit(sd))
+ {
+ pc->setstand(sd);
+ clif->standing(&sd->bl);
+ }
+ }
+ else if (!pc_issit (sd))
+ {
+ sd->state.dead_sit = 2;
+ sd->vd.dead_sit = 2;
+ clif->sitting(&sd->bl);
+ }
+ return true;
+}
+
+BUILDIN(getPcSit)
+{
+ TBL_PC *sd = NULL;
+
+ if (script_hasdata(st, 2))
+ sd = map->nick2sd (script_getstr(st, 2));
+ else
+ sd = script->rid2sd(st);
+ if (!sd)
+ script_pushint(st, -1);
+ else
+ script_pushint(st, pc_issit (sd));
+ return true;
}
diff --git a/src/map/script.h b/src/map/script.h
index 034a5cd..3a92fcc 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -26,5 +26,7 @@ BUILDIN(addMapMask);
BUILDIN(removeMapMask);
BUILDIN(getNpcClass);
BUILDIN(setNpcSex);
+BUILDIN(setPcSit);
+BUILDIN(getPcSit);
#endif // EVOL_MAP_SCRIPT