A jakby do funkcji B_RefreshAtInsert dodać warunek, aby handlarzom gra ściągała broń?
Dodaj AI_UnequipWeapons do ZS odpowiadającego za rozmowę (nie pamiętam nazwy) - na sam początek, czyli funkcji rozpoczynającej dialog. W funkcji kończącej dialog (wszystko w tym samym ZS_*.d!) dodaj EquipBestRanged i Melee weapon.
W praktyce będzie to wyglądało tak: Zagadasz do byle jakiego npc, on odłoży broń do ekwipunku, po czym jak skończysz z nim gadać opcją "Koniec", założy on najsilniejszą broń dystansową i w zwarciu jaką posiada. Można dodać warunki typ if npc to pajac od handlu i wtedy to co napisałem wyżej.
Przepraszam za opóźnienie w odpowiedziach. Małe uaktualnienie - kupcy ściągają broń po wywołaniu komendą
AI_UnequipWeapons(self) dodaną na początku dialogu inicjującego handel - ale jak powiedziałem, te bronie które właśnie sobie ściągnęli pojawiają się w oknie handlu tylko w trzech (nie dwóch) przypadkach:
- po wyjściu z okna handlu i jego ponownego wywołania odpowiednią opcją dialogową
- sprzedaniu czegoś handlarzowi (ekwipunek w oknie się "odświeża", a zdjęte bronie pojawiają się w odpowiednich miejscach) [Tutaj jest pomysł, aby tworzyć jedną sztukę złota w ekwipunku Bezimiennego i przekazywać ją kupcowi, zaraz po wyświetleniu się okna handlu]
- kupna jakiegokolwiek przedmiotu (nawet za 1 szt. złota; reszta jak w nawiasie powyżej)
A teraz po kolei: wykorzystałem pomysł Cruca, ale po dodaniu delikwenta za pomocą
Hlp_GetInstanceID(other) do długaśnej listy w B_REFRESHATINSERT.D, i tak musiałem ich najpierw zresetować poprzez opcję dialogową (nawet po rozpoczęciu nowej gry), tak aby założyli ten kijek (plus trzeba było się oddalić na odpowiedni dystans). I tak, ten manewr zadziałał, każdy pacjent miał wszystek broń od razu w ekwipunku; wszystko co mu sprzedałem. Ale potem gra wyczyściła noszony ekwipunek kupców wraz z nowym rozdziałem (tak, właśnie tę pałkę, bo jest w
B_CLEARJUNKTRADEINV.D), przez co założyli oni najlepszy dostępny oręż (jeśli go im sprzedałem), wracając tym samym do schematu powyżej. Po zmianie broni na sierp w "refreshu", nie wiem czemu, ale w ogóle się ona nie zmaterializowała w nowym rozdziale (w pierwszym wciąż była, jak z pałką powyżej), więc metodyka powróciła z pełną mocą.
Nie zmieniałem nic w ZS_TALK.D, bowiem nie potrzebuję, aby każdy kupiec zakładał najlepszą broń po skończeniu rozmowy; lepiej pozostawić do dyspozycji gracza jak wykorzysta tę możliwość. I odkryje, że ekwipunek pobitego handlarza znika raz na zawsze, nawet po potraktowaniu zaklęciem "Zapomnienia", hehe (oczywisty błąd, ale ten problem zostawię sobie na później).
Na razie zostawię wszystko tak jak jest (czyli tylko
AI_UnequipWeapons(self) i trzy warunki), a jak zacznę czytać o AST to zmierzę się z tym problemem raz jeszcze.
Dzięki wszystkim, temat do zamknięcia (to chyba trzeba gdzieś zgłosić?).