Skip to content

Commit

Permalink
Changes equip() to return 0 or 1 if item successfully equipped.
Browse files Browse the repository at this point in the history
  • Loading branch information
bWolfie committed Jan 23, 2019
1 parent 0b21090 commit e84f52c
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
3 changes: 3 additions & 0 deletions doc/script_commands.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5603,6 +5603,9 @@ item in his/her inventory, while the autoequip function will equip the
given item ID when this is looted. The option parameter of the autoequip
is 1 or 0, 1 to turn it on, and 0 to turn it off.

equip() returns 1 if the item was successfully equipped and 0 if the
item failed to equip.

Examples:

//This will equip a 1104 (falchion) on the character if this is in the
Expand Down
23 changes: 15 additions & 8 deletions src/map/script.c
Original file line number Diff line number Diff line change
Expand Up @@ -16473,21 +16473,28 @@ static BUILDIN(unequip)

static BUILDIN(equip)
{
int nameid=0,i;
int nameid = 0, i;
struct item_data *item_data;
struct map_session_data *sd = script->rid2sd(st);
if (sd == NULL)
return false;

nameid=script_getnum(st,2);
if((item_data = itemdb->exists(nameid)) == NULL)
{
ShowError("wrong item ID : equipitem(%d)\n",nameid);
if (sd == NULL) {
script_pushint(st, 0);
return true;
}

nameid = script_getnum(st, 2);
if ((item_data = itemdb->exists(nameid)) == NULL) {
ShowError("buildin_equip: Invalid Item ID (%d).\n",nameid);
script_pushint(st, 0);
return false;
}

ARR_FIND(0, sd->status.inventorySize, i, sd->status.inventory[i].nameid == nameid && sd->status.inventory[i].equip == 0);

if (i < sd->status.inventorySize)
pc->equipitem(sd, i, item_data->equip);
script_pushint(st, pc->equipitem(sd, i, item_data->equip));
else
script_pushint(st, 0);

return true;
}
Expand Down

0 comments on commit e84f52c

Please sign in to comment.