summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-10-21 02:18:15 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-10-21 02:18:15 +0000
commitc7bce63ecd9fb5d44c442791c13591aebd4dbb88 (patch)
tree8afbe2d04a3ca929c0484fec61958c6b2948ae69 /src/map
parent5e3de661f276eb2eb3a06bd0c4197dc847a36d50 (diff)
downloadhercules-c7bce63ecd9fb5d44c442791c13591aebd4dbb88.tar.gz
hercules-c7bce63ecd9fb5d44c442791c13591aebd4dbb88.tar.bz2
hercules-c7bce63ecd9fb5d44c442791c13591aebd4dbb88.tar.xz
hercules-c7bce63ecd9fb5d44c442791c13591aebd4dbb88.zip
* Fixed 'unequip' removing items in the wrong position (bugreport:252)
* Fixed #refine unequpping the caller's item by mistake (bugreport:265) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11534 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/charcommand.c2
-rw-r--r--src/map/script.c14
2 files changed, 8 insertions, 8 deletions
diff --git a/src/map/charcommand.c b/src/map/charcommand.c
index d5f819625..f2747e6e1 100644
--- a/src/map/charcommand.c
+++ b/src/map/charcommand.c
@@ -2434,7 +2434,7 @@ int charcommand_refine(const int fd, struct map_session_data* sd, const char* co
if (pl_sd->status.inventory[i].refine != final_refine) {
pl_sd->status.inventory[i].refine = final_refine;
current_position = pl_sd->status.inventory[i].equip;
- pc_unequipitem(sd, i, 3);
+ pc_unequipitem(pl_sd, i, 3);
clif_refine(fd, 0, i, pl_sd->status.inventory[i].refine);
clif_delitem(pl_sd, i, 1);
clif_additem(pl_sd, i, 1, 0);
diff --git a/src/map/script.c b/src/map/script.c
index e1e3a02cf..9de888e31 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -11941,11 +11941,11 @@ BUILDIN_FUNC(unequip)
size_t num;
TBL_PC *sd;
- num = script_getnum(st,2) - 1;
- sd=script_rid2sd(st);
- if(sd!=NULL && num > 0 && num <= ARRAYLENGTH(equip))
+ num = script_getnum(st,2);
+ sd = script_rid2sd(st);
+ if( sd != NULL && num >= 1 && num <= ARRAYLENGTH(equip) )
{
- i=pc_checkequip(sd,equip[num-1]);
+ i = pc_checkequip(sd,equip[num-1]);
if (i >= 0)
pc_unequipitem(sd,i,2);
return 0;
@@ -11968,10 +11968,10 @@ BUILDIN_FUNC(equip)
ShowError("wrong item ID : equipitem(%i)\n",nameid);
return 1;
}
- for(i=0;i<MAX_INVENTORY && sd->status.inventory[i].nameid!=nameid;i++);
- if(i==MAX_INVENTORY) return 0;
+ ARR_FIND( 0, MAX_INVENTORY, i, sd->status.inventory[i].nameid == nameid );
+ if( i < MAX_INVENTORY )
+ pc_equipitem(sd,i,item_data->equip);
- pc_equipitem(sd,i,item_data->equip);
return 0;
}