Czyszczenie / przenoszenie ekwipunku 3740 0

O temacie

Autor inż. Avallach

Zaczęty 6.06.2013 roku

Wyświetleń 3740

Odpowiedzi 0

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5238
NagrodyV
ProfesjaProgramista
  • Administrator
W G2NK jest dostępna funkcja Npc_ClearInventory. Nie ma jej w G1. Można jednak zrealizować ją przy pomocy Npc_GetInvItemBySlot, NPC_RemoveInvItems i rekurencji. Dodając wywołanie innej, odpowiedniej funkcji pod NPC_RemoveInvItems, można także te itemy dodawać w innym miejscu (np u innego npc / w skrzyni), w praktyce je tam przenosząc. Żeby uniknąć pytań: zmienna item jest ustawiana przez silnik na znaleziony c_item w momencie wywołania funkcji Npc_GetInvItemBySlot. Działa to analogicznie do np zmiennej self, którą każdy powinien znać. Jej też nie trzeba samemu przydzielać zawartości, silnik robi to za nas.
func void Npc_ClearInventoryLoop (var c_npc npc, var int category)
{
        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);
};

Być może pętla po wszystkich kategoriach eq nie jest potrzebna i wystarczy sama zerowa. Użytkownik dla którego ją napisałem nie potrafi jej poprawnie przetestować, najpierw stwierdził że z samym zero nie działa, ale okazuje się że wersji z pełnym przeczesaniem też nie potrafi nawet wywołać. Jak komuś się uda, proszę żeby dał znać. Lehona potwierdził że funkcja działa w g2nk (a użyte tu eksternale prawie na pewno się nie zmieniły między wersjami gry).


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry