summaryrefslogtreecommitdiff
path: root/src/map/script.c
diff options
context:
space:
mode:
authorEdwin <edwin@yohanesedwin.com>2017-10-04 10:13:12 -0400
committergumi <mekolat@users.noreply.github.com>2017-10-04 10:15:12 -0400
commit66071dcd663152ad9d6cf2cd8985fcbfc3eddd6e (patch)
tree077d1d6f422bd629b6452d82a65d36eff1bc1abc /src/map/script.c
parent5b95508aa6da3ceeb2990791a9e85d8102ec364d (diff)
downloadhercules-66071dcd663152ad9d6cf2cd8985fcbfc3eddd6e.tar.gz
hercules-66071dcd663152ad9d6cf2cd8985fcbfc3eddd6e.tar.bz2
hercules-66071dcd663152ad9d6cf2cd8985fcbfc3eddd6e.tar.xz
hercules-66071dcd663152ad9d6cf2cd8985fcbfc3eddd6e.zip
add buildin_dressroom
Diffstat (limited to 'src/map/script.c')
-rw-r--r--src/map/script.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 533e421d8..367c9927d 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -23384,6 +23384,50 @@ BUILDIN(activatepset);
BUILDIN(deactivatepset);
BUILDIN(deletepset);
+enum dressroom_mode {
+ DRESSROOM_CLOSE = 0,
+ DRESSROOM_OPEN = 1
+};
+
+/**
+ * dressroom({<enum dressroom_mode>});
+ */
+BUILDIN(dressroom)
+{
+#if PACKETVER >= 20150513
+ struct map_session_data *sd = script->rid2sd(st);
+ enum dressroom_mode mode = DRESSROOM_OPEN;
+
+ if (sd == NULL) {
+ return false;
+ }
+
+ if (script_hasdata(st, 2)) {
+ mode = script_getnum(st, 2);
+ }
+
+ switch (mode) {
+ case DRESSROOM_OPEN:
+ clif->dressroom_open(sd, 1);
+ break;
+ case DRESSROOM_CLOSE:
+ clif->dressroom_open(sd, 0);
+ break;
+ default:
+ ShowWarning("script:dressroom: unknown mode (%i).\n", mode);
+ script_pushint(st, 0);
+ return false;
+ }
+
+ script_pushint(st, 1);
+ return true;
+#else
+ ShowError("The dressing room works only with packet version >= 20150513");
+ script_pushint(st, 0);
+ return false;
+#endif
+}
+
BUILDIN(pcre_match)
{
const char *input = script_getstr(st, 2);
@@ -24039,6 +24083,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(activatepset,"i"), // Activate a pattern set [MouseJstr]
BUILDIN_DEF(deactivatepset,"i"), // Deactive a pattern set [MouseJstr]
BUILDIN_DEF(deletepset,"i"), // Delete a pattern set [MouseJstr]
+ BUILDIN_DEF(dressroom,"?"),
BUILDIN_DEF(pcre_match,"ss"),
BUILDIN_DEF(dispbottom,"s?"), //added from jA [Lupus]
BUILDIN_DEF(getusersname,""),
@@ -24599,6 +24644,10 @@ void script_hardcoded_constants(void)
script->set_constant("ITEMUPPER_THIRDBABY", ITEMUPPER_THIRDBABY, false, false);
script->set_constant("ITEMUPPER_ALL", ITEMUPPER_ALL, false, false);
+ script->constdb_comment("dressroom modes");
+ script->set_constant("DRESSROOM_OPEN", DRESSROOM_OPEN, false, false);
+ script->set_constant("DRESSROOM_CLOSE", DRESSROOM_CLOSE, false, false);
+
script->constdb_comment("Renewal");
#ifdef RENEWAL
script->set_constant("RENEWAL", 1, false, false);