* Added 'breakequip' script command. (tid:86732)
* Fixed return value for delequip. (since r17469/8bd0985) * Fixed a bug with Mercenary Rentals. (credits: TTest) Signed-off-by: Euphy <euphy@rathena.org>
This commit is contained in:
parent
7d72060430
commit
17d000640d
@ -4610,6 +4610,16 @@ This command will return 1 if an item was deleted and 0 otherwise.
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
*breakequip <equipment slot>;
|
||||||
|
|
||||||
|
This command will break and unequip whatever is currently equipped in the
|
||||||
|
invoking character's specified equipment slot. For a full list of possible
|
||||||
|
equipment slots see 'getequipid'.
|
||||||
|
|
||||||
|
This command will return 1 if an item was deleted and 0 otherwise.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
*clearitem;
|
*clearitem;
|
||||||
|
|
||||||
This command will destroy all items the invoking character has in their
|
This command will destroy all items the invoking character has in their
|
||||||
|
@ -22,10 +22,10 @@
|
|||||||
setarray .@name$, "Spear", "Sword", "Bow";
|
setarray .@name$, "Spear", "Sword", "Bow";
|
||||||
setarray .@faith$, "SPEAR_MERC_GUILD", "SWORD_MERC_GUILD", "ARCH_MERC_GUILD";
|
setarray .@faith$, "SPEAR_MERC_GUILD", "SWORD_MERC_GUILD", "ARCH_MERC_GUILD";
|
||||||
setarray .@item, 12182, 12172, 12162;
|
setarray .@item, 12182, 12172, 12162;
|
||||||
set .@faith_lancer, mercenary_get_faith(getd(.@faith$[.@type]));
|
|
||||||
set .@npc$, strnpcinfo(2);
|
set .@npc$, strnpcinfo(2);
|
||||||
for (set .@size, getarraysize(.@name$); .@i < .@size; set .@i, .@i + 1)
|
for (set .@size, getarraysize(.@name$); .@i < .@size; set .@i, .@i + 1)
|
||||||
if (.@npc$ == .@name$[.@i]) set .@type, .@i;
|
if (.@npc$ == .@name$[.@i]) set .@type, .@i;
|
||||||
|
set .@faith_merc, mercenary_get_faith(getd(.@faith$[.@type]));
|
||||||
mes "[Mercenary Manager]";
|
mes "[Mercenary Manager]";
|
||||||
mes "Welcome to the";
|
mes "Welcome to the";
|
||||||
mes .@npc$ + " Mercenary Guild.";
|
mes .@npc$ + " Mercenary Guild.";
|
||||||
@ -64,7 +64,7 @@
|
|||||||
mes "free to come back if your";
|
mes "free to come back if your";
|
||||||
mes "needs change. Thank you~";
|
mes "needs change. Thank you~";
|
||||||
}
|
}
|
||||||
else if(.@FaithCost && .@faith_lancer < .@FaithCost) {
|
else if(.@FaithCost && .@faith_merc < .@FaithCost) {
|
||||||
mes "[Mercenary Manager]";
|
mes "[Mercenary Manager]";
|
||||||
mes "Oh... Your Loyalty rating";
|
mes "Oh... Your Loyalty rating";
|
||||||
mes "with the " + .@npc$ + " Mercenary";
|
mes "with the " + .@npc$ + " Mercenary";
|
||||||
@ -178,7 +178,7 @@
|
|||||||
mes "Mercenary. Have you considered";
|
mes "Mercenary. Have you considered";
|
||||||
mes "hiring a lower grade Mercenary?";
|
mes "hiring a lower grade Mercenary?";
|
||||||
}
|
}
|
||||||
else if (.@faith_lancer < 500) {
|
else if (.@faith_merc < 500) {
|
||||||
mes "[Mercenary Manager]";
|
mes "[Mercenary Manager]";
|
||||||
mes "I'm sorry, but your";
|
mes "I'm sorry, but your";
|
||||||
mes "Loyalty rating is too";
|
mes "Loyalty rating is too";
|
||||||
|
@ -7798,7 +7798,7 @@ BUILDIN_FUNC(downrefitem)
|
|||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
BUILDIN_FUNC(delequip)
|
BUILDIN_FUNC(delequip)
|
||||||
{
|
{
|
||||||
int i=-1,num;
|
int i=-1,num,ret=0;
|
||||||
TBL_PC *sd;
|
TBL_PC *sd;
|
||||||
|
|
||||||
num = script_getnum(st,2);
|
num = script_getnum(st,2);
|
||||||
@ -7809,12 +7809,37 @@ BUILDIN_FUNC(delequip)
|
|||||||
if (num > 0 && num <= ARRAYLENGTH(equip))
|
if (num > 0 && num <= ARRAYLENGTH(equip))
|
||||||
i=pc_checkequip(sd,equip[num-1]);
|
i=pc_checkequip(sd,equip[num-1]);
|
||||||
if(i >= 0) {
|
if(i >= 0) {
|
||||||
int ret;
|
|
||||||
pc_unequipitem(sd,i,3); //recalculate bonus
|
pc_unequipitem(sd,i,3); //recalculate bonus
|
||||||
ret=pc_delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT);
|
ret = !(pc_delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT));
|
||||||
script_pushint(st,ret==0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18437,6 +18462,7 @@ struct script_function buildin_func[] = {
|
|||||||
BUILDIN_DEF(npcskill,"viii"),
|
BUILDIN_DEF(npcskill,"viii"),
|
||||||
BUILDIN_DEF(consumeitem,"v"),
|
BUILDIN_DEF(consumeitem,"v"),
|
||||||
BUILDIN_DEF(delequip,"i"),
|
BUILDIN_DEF(delequip,"i"),
|
||||||
|
BUILDIN_DEF(breakequip,"i"),
|
||||||
BUILDIN_DEF(sit,"?"),
|
BUILDIN_DEF(sit,"?"),
|
||||||
BUILDIN_DEF(stand,"?"),
|
BUILDIN_DEF(stand,"?"),
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user