z racji, że przybyło mądrych głów na forum może ktoś pomoże z tematem.
mamy skrypt usuwania/przenoszenia ekwipunku postaci . problem , w tym, że chcę , aby czyścić z wyjątkiem założonego pancerza.
dotychczas obeszłem to przez tworzenie i nakładanie pancerza w oddzielnej funkcji, ale jest to prymitywne rozwiązanie.
skrypt autorstwa bodajże Avallacha poniżej :func void Npc_ClearInventoryLoop (var c_npc npc, var int category)
{
//PrintScreen (ConcatStrings("Czyszczenie eq: ", npc.name), yposition,yaposition,"FONT_OLD_10_WHITE.TGA",timep); //dla testu
// print(ConcatStrings("Czyszczenie eq: ", npc.name);
var int amount;
amount = Npc_GetInvItemBySlot (npc, category, 0);
// print(ConcatStrings(item.name, IntToString(amount));
if (amount>0)
{
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);
};
};
func void Npc_ClearInventory (var c_npc npc)
{
Npc_ClearInventoryLoop(npc, 0);
};
func void Npc_MoveInventoryLoop (var c_npc npc, var int category)
{
PrintScreen (ConcatStrings("Przenoszenie eq: ", npc.name), yposition,yaposition,"FONT_OLD_10_WHITE.TGA",timep); //dla testu
// print(ConcatStrings("Czyszczenie eq: ", npc.name);
var int amount;
amount = Npc_GetInvItemBySlot (npc, category, 0);
// print(ConcatStrings(item.name, IntToString(amount));
if (amount>0)
{
Mob_CreateItems ("CHEST", Hlp_GetInstanceID (item), amount) ;
Mob_CreateItems ( "OC_CHEST_LARGE2", Hlp_GetInstanceID (item), amount) ;
NPC_RemoveInvItems (npc, Hlp_GetInstanceID (item), amount);
Npc_MoveInventoryLoop(npc, category);
}
else if (category < INV_CAT_MAX-1)
{
//print(ConcatStrings("Zmiana kategorii na: ", IntToString(category+1));
Npc_MoveInventoryLoop(npc, category+1);
};
};