najlepszy sposób będzie następujący. i proszę mi nie wmawiać , że było to wałkowane na wogu czy tutaj.
1)inicjujemy skrypt jn w dialogu handlarza (zmieniamy ceny tylko na czas handlu)
2)po zakończeniu wracamy do "starych cen".
ten skrypt jest nieprzerobiony (autor Sektenspinner i po moich modyfikacjach) i powinno sie obyć bez ikariusa.
Bardzo łatwo można go przerobić, aby zamiast usuwania/przenoszenia itemów zmieniał ich wartości (value czy changed_value) po instancji czy nawet kategorii.
var c_Item armor;var c_Item meleeweapon;var c_Item rangedweapon;
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);
armor = Npc_GetEquippedArmor(npc);
meleeweapon = Npc_GetEquippedMeleeWeapon(npc);
rangedweapon = Npc_GetEquippedRangedWeapon(npc);
// print(ConcatStrings(item.name, IntToString(amount));
if ((amount>0)
&& Hlp_GetInstanceID(item) != Hlp_GetInstanceID(armor)
&& Hlp_GetInstanceID(item) != Hlp_GetInstanceID( meleeweapon)
&& 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);
};
};
func void Npc_ClearInventory (var c_npc npc)
{
Npc_ClearInventoryLoop(npc, 0);
};