summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2015-02-15 15:10:01 -0200
committershennetsind <ind@henn.et>2015-02-15 15:10:01 -0200
commit909c0644ce45945c8e3fdc5eb77ebdd1a1cb93d0 (patch)
tree4449b30cd4441ce271196876c08fbe0c78675c6e
parent1e609ca42e0ab4c7699b55dcfa043891b9a41136 (diff)
downloadhercules-909c0644ce45945c8e3fdc5eb77ebdd1a1cb93d0.tar.gz
hercules-909c0644ce45945c8e3fdc5eb77ebdd1a1cb93d0.tar.bz2
hercules-909c0644ce45945c8e3fdc5eb77ebdd1a1cb93d0.tar.xz
hercules-909c0644ce45945c8e3fdc5eb77ebdd1a1cb93d0.zip
Updated 'delequip' Script Command
delequip will now stop a script when attempting to delete a item in a position the player has no gear. Special Thanks to Michieru, Haruna. Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r--doc/script_commands.txt4
-rw-r--r--src/map/script.c9
2 files changed, 10 insertions, 3 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 3784667cb..e69cca6b1 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -5286,6 +5286,10 @@ This command will destroy whatever is currently equipped in the invoking
character's specified equipment slot. For a full list of possible equipment
slots see 'getequipid'.
+It is always a good idea to check if the player actually has the item you want
+before you use this command. If you try to delete in a position that the player
+has no gear, script will be terminated with an error.
+
This command will return 1 if an item was deleted and 0 otherwise.
---------------------------------------
diff --git a/src/map/script.c b/src/map/script.c
index a0b9f80cc..1a6289db3 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -7995,11 +7995,14 @@ BUILDIN(delequip)
pc->unequipitem(sd,i,3); //recalculate bonus
pc->delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT);
script_pushint(st,1);
- } else {
- script_pushint(st,0);
+ return true;
}
+
+ ShowError("script:delequip: no item found in position '%d' for player '%s' (AID:%d/CID:%d).\n", num, sd->status.name,sd->status.account_id, sd->status.char_id);
+ st->state = END;
+ clif->scriptclose(sd, st->oid);
- return true;
+ return false;
}
/*==========================================