summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-02-28 12:32:02 +0000
committerLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-02-28 12:32:02 +0000
commite865d9496fe8b896082d5f62e73300b1262ddf02 (patch)
tree10b205e61957c4bc2b2a365d74b7c2223c7abfea /src
parent925b181de6d2c6a1ae3a1ed11d806bfe5785379c (diff)
downloadhercules-e865d9496fe8b896082d5f62e73300b1262ddf02.tar.gz
hercules-e865d9496fe8b896082d5f62e73300b1262ddf02.tar.bz2
hercules-e865d9496fe8b896082d5f62e73300b1262ddf02.tar.xz
hercules-e865d9496fe8b896082d5f62e73300b1262ddf02.zip
* Added script command 'equip' to equip items.
* Fixed dependancies in map-server compiling (VC7.1). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5400 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/script.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 34aedaa35..4f99870d4 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -401,6 +401,7 @@ int buildin_setd(struct script_state *st);
// <--- [zBuffer] List of dynamic var commands
int buildin_petstat(struct script_state *st); // [Lance] Pet Stat Rq: Dubby
int buildin_callshop(struct script_state *st); // [Skotlex]
+int buildin_equip(struct script_state *st);
void push_val(struct script_stack *stack,int type,int val);
int run_func(struct script_state *st);
@@ -702,6 +703,7 @@ struct {
// <--- [zBuffer] List of dynamic var commands
{buildin_petstat,"petstat","i"},
{buildin_callshop,"callshop","si"}, // [Skotlex]
+ {buildin_equip,"equip","i"},
{buildin_setitemscript,"setitemscript","is"}, //Set NEW item bonus script. Lupus
{buildin_disguise,"disguise","i"}, //disguise player. Lupus
{buildin_undisguise,"undisguise","i"}, //undisguise player. Lupus
@@ -9379,6 +9381,33 @@ int buildin_unequip(struct script_state *st)
return 0;
}
+int buildin_equip(struct script_state *st)
+{
+ int nameid=0,count=0,i;
+ struct map_session_data *sd;
+ struct item_data *item_data;
+
+ sd = script_rid2sd(st);
+
+ nameid=conv_num(st,& (st->stack->stack_data[st->start+2]));
+ if(nameid>=500 && (item_data = itemdb_search(nameid)) != NULL)
+ for(i=0;i<MAX_INVENTORY;i++){
+ if(sd->status.inventory[i].nameid==nameid)
+ count+=sd->status.inventory[i].amount;
+ }
+ else{
+ if(battle_config.error_log)
+ ShowError("wrong item ID : equipitem(%i)\n",nameid);
+ return 1;
+ }
+
+ if(count){
+ pc_equipitem(sd,nameid,item_data->equip);
+ }
+
+ return 0;
+}
+
//=======================================================
// strlen [Valaris]
//-------------------------------------------------------