5
« dnia: 2018-04-09, 21:50 »
mam problem z czyszczeniem ekwipunku.
jeżeli dam warunek, że nie usuwamy założonych broni i pancerza to skrypt omija całą kategorię w ekwipunku.
kod poniżej.
var c_Item armor;
var c_Item meleeweap;
var c_Item rangedweapon;
var c_Item weapon;
func void Npc_ClearInventoryLoop (var c_npc npc, var int category)
{
var int amount;
amount = Npc_GetInvItemBySlot (npc, category, 0);
armor = Npc_GetEquippedArmor(npc);
weapon = Npc_GetEquippedMeleeWeapon(npc);
rangedweapon = Npc_GetEquippedRangedWeapon(npc);
// print(ConcatStrings(item.name, IntToString(amount));
if (amount>0)
&& (Hlp_GetInstanceID(item) != Hlp_GetInstanceID(weapon))
&& (Hlp_GetInstanceID(item) != Hlp_GetInstanceID(armor))
&& (Hlp_GetInstanceID(item) != Hlp_GetInstanceID(rangedweapon))
{
NPC_RemoveInvItems (npc, Hlp_GetInstanceID (item), amount);
Npc_ClearInventoryLoop(npc, category);
}
else if (category < INV_CAT_MAX-1)
{
//print(ConcatStrings("Zmiana kategorii na: ", IntToString(category+1));
Npc_ClearInventoryLoop(npc, category+1);
};
AI_PrintScreen_Ext (ConcatStrings(self.name," traci ekwipunek (kara za pobicie)"), -1,43,"font_old_10_white.tga",_TIME_MESSAGE_LEVELUP);
};
func void Npc_ClearInventory (var c_npc npc)
{
Npc_ClearInventoryLoop(npc, 0);
};