[LUA] CTD callbacki itemów

Regulamin forum
Dział "Tworzenie Modyfikacji" służy do zadawania pytań odnośnie tworzenia modyfikacji, edytowania plików gry, oraz pisania tzw. tutoriali, czyli poradników odnośnie modyfikowania gry.
Nie zadajemy tutaj pytań odnośnie modyfikacji gotowych (nie dyskutujemy o nich!), prócz prób ich połączenia etc.


Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

[LUA] CTD callbacki itemów

Postprzez Plaargath w 10 Lut 2015, 01:21

Do rzeczy:
są takie callbacki w bind_stalker.script: on_item_take, on_item_drop, take_item_from_box, use_object, on_trade. Do wyboru, do koloru, można ciekawe rzeczy robić. A ja chcę zrobić tak, że jak wyrzucę jakiś item, to on zniknie. Proste: dopisuję w funkcję actor_binder:on_item_drop (obj) jedną linijkę:
Kod: [ Pobierz ] [ Ukryj ]
 if obj:section() == ("nazwa_itemu") then alife():release(alife():object(obj:id()), true) end

i po krzyku.

Wtedy jak taki item wyrzucę, to zniknie, violla. Krótka jednak radość, bo jak przełożę go do schowka, to jest CTD bez loga. Czasem uda się jeden czy dwa itemy do schowka przerzucić, czasem nawet dopiero za drugim otworzeniem schowka i próbą przełożenia, ale prędzej czy później zawsze wywala. Bez loga. Co ciekawe, jeśli przed próbą przełożenia do schowka sprzedam taki item jakiemuś NPC'owi - wtedy callback przestaje działać, mogę wyrzucić 50 takich itemów na ziemię i leżą, mogę do schowków przekładać do woli.

Kompletnie nie wiem, o co tu biega. Przede wszystkim chciałbym się dowiedzieć, jak bezpiecznie i stabilnie ustawić znikanie itema po jego wyrzuceniu. Ktoś może wie?
Image Image

Merkantylizm, srerkantylizm.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 25 Paź 2023, 21:53
Kozaki: 234

Reklamy Google

Re: [LUA] CTD callbacki itemów

Postprzez tt44 w 12 Lut 2015, 22:05

Plaargath napisał(a):Krótka jednak radość, bo jak przełożę go do schowka, to jest CTD bez loga.

No bo jak używasz callback on_item_drop to wyrzucenie itemu na ziemie jest równe z przełożeniem go do schowka/sprzedaniem/utraceniem.
tt44
Stalker

Posty: 88
Dołączenie: 12 Lut 2013, 19:02
Ostatnio był: 24 Cze 2017, 19:07
Kozaki: 60

Re: [LUA] CTD callbacki itemów

Postprzez Cromm Cruac w 12 Lut 2015, 23:00

To może zamiast go niszczyć teleportuj go gdzieś poza/pod mapę :E
Kod: Zaznacz wszystko
drop_item_and_teleport(game_object*, vector);
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2542
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 01 Cze 2024, 23:08
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Re: [LUA] CTD callbacki itemów

Postprzez Plaargath w 13 Lut 2015, 00:45

@tt44
Otóż to. Tak koncypuję, że gra próbuje wtedy go release'nać, a ten jest w schowku i to się jakoś jedno z drugim nie zgadza. Czego nie pojmuję to nieregularność (czemu nie zawsze i od razu CTD), czemu przy sprzedaniu nie ma CTD oraz czemu po sprzedaniu callback jakby przestaje go w ogóle dotyczyć (go czyli wszystkich następnych, bo ten już sprzedany, of cuz).

@Cromm
Heh. A Ty wiesz, że to wcale nie jest takie głupie... Co prawda póki co kosmos dla mnie, jak to napisać, ale idea kusi. Pytanie czy "wyrwanie" w ten sposób itema z boxa albo od npc'a też się może xrayowi nie spodobać? A swoją drogą, jak taki item wyleci za mapę, to silnik go sam wypieprzy z pamięci, czy to będzie tworzyło - dosłownie - śmietnik coraz większy w miarę postępu rozgrywki? Bo jak tak, to odpada. Hmmmm... Chyba, żeby teleportować go do jakiegoś miejsca, w którym automatycznie będzie anihilacja, jak się tam znajdzie. Hmm...
Image Image

Merkantylizm, srerkantylizm.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 25 Paź 2023, 21:53
Kozaki: 234


Powróć do Zew Prypeci

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 3 gości