Nigdy nie modowałem pierwszego Gothica, ale jeśli miałbym coś takiego zrobić, to:
- wyzerowałbym percypowanie wszystkiego przez B_ClearPerceptions u pacjenta z koszem najsamwpierw (nie wiem jak ta funkcja się nazywa w oryginalnym Gothicu; zobacz jakie są nazwy funkcji dla słowa "Perception" w Worldfile.txt, jeśli go masz; chyba dostaje się go z instalacją ModKita w katalogu _Work\Tools\UltraEdit\)
- jeśli kosz jest traktowany jako broń, to zamiast AI_RemoveWeapon(self), wrzuciłbym Npc_GetEquippedMeleeWeapon(self) w kombinacji z jakąś nazwą którą sobie zapamiętasz, a potem ten "kosz-broń" usunął funkcją od usuwania przedmiotów
- dopiero wtedy dał ustawianie percypowania za pomocą B_SetPerception (self)
- na początek ZS_PickRice dodałbym wyczarowywanie tego kosza na nowo
Wygłądałoby to mniej więcej tak dla ZS_PickRice_End:
func void ZS_PickRice_End ()
{
PrintDebugNpc(PD_TA_FRAME,"ZS_PickRice_End");
AI_UnequipWeapons(self);
EquipKosz = Npc_GetEquippedMeleeWeapon(self); // Albo EquipKosz = Npc_GetEquippedRangedWeapon(self); w zależności jak ten kosz jest traktowany, czy jako broń wręcz, czy dystansowa
Npc_RemoveInvItems(self,Hlp_GetInstanceID(EquipKosz),Npc_HasItems(self,Hlp_GetInstanceID(EquipKosz)));
Mdl_RemoveOverlayMds(self, "Basket.MDS");
B_SetPerception (self);
}
No i sprawdź czy zamiana self na slf nie jest potrzebna; ja nigdy nie zrozumiałem kiedy stosuje się którą zmienną, a tutaj to też może być ważne.