|
@@ -7798,7 +7798,7 @@ BUILDIN_FUNC(downrefitem)
|
|
|
*------------------------------------------*/
|
|
|
BUILDIN_FUNC(delequip)
|
|
|
{
|
|
|
- int i=-1,num;
|
|
|
+ int i=-1,num,ret=0;
|
|
|
TBL_PC *sd;
|
|
|
|
|
|
num = script_getnum(st,2);
|
|
@@ -7809,12 +7809,37 @@ BUILDIN_FUNC(delequip)
|
|
|
if (num > 0 && num <= ARRAYLENGTH(equip))
|
|
|
i=pc_checkequip(sd,equip[num-1]);
|
|
|
if(i >= 0) {
|
|
|
- int ret;
|
|
|
pc_unequipitem(sd,i,3); //recalculate bonus
|
|
|
- ret=pc_delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT);
|
|
|
- script_pushint(st,ret==0);
|
|
|
+ ret = !(pc_delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT));
|
|
|
}
|
|
|
|
|
|
+ script_pushint(st,ret);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/*==========================================
|
|
|
+ * Break the item equipped at pos.
|
|
|
+ *------------------------------------------*/
|
|
|
+BUILDIN_FUNC(breakequip)
|
|
|
+{
|
|
|
+ int i=-1,num;
|
|
|
+ TBL_PC *sd;
|
|
|
+
|
|
|
+ num = script_getnum(st,2);
|
|
|
+ sd = script_rid2sd(st);
|
|
|
+ if( sd == NULL )
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ if (num > 0 && num <= ARRAYLENGTH(equip))
|
|
|
+ i = pc_checkequip(sd,equip[num-1]);
|
|
|
+ if (i >= 0) {
|
|
|
+ sd->status.inventory[i].attribute = 1;
|
|
|
+ pc_unequipitem(sd,i,3);
|
|
|
+ clif_equiplist(sd);
|
|
|
+ script_pushint(st,1);
|
|
|
+ } else
|
|
|
+ script_pushint(st,0);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -18437,6 +18462,7 @@ struct script_function buildin_func[] = {
|
|
|
BUILDIN_DEF(npcskill,"viii"),
|
|
|
BUILDIN_DEF(consumeitem,"v"),
|
|
|
BUILDIN_DEF(delequip,"i"),
|
|
|
+ BUILDIN_DEF(breakequip,"i"),
|
|
|
BUILDIN_DEF(sit,"?"),
|
|
|
BUILDIN_DEF(stand,"?"),
|
|
|
/**
|