Natrafiłem na taki oto kłopot. Kiedy w skypcie mam tak:
alife():create("nazwa_itemu",db.actor:position(),0,0,0)
db.actor:eat(db.actor:object("nazwa_itemu"))
ów item nie znika z ekwipunku, tylko w nim zostaje, nie ma efektu boostera - bo ten item nie jest jedzony. Funkcja obsługuje pusty, nieistniejący dla niej item. Brzmi to niejasno, ale poniżej sprawa się nieco klaruje.
Po takiej sekwencji w skrypcie:
alife():create("nazwa_itemu",db.actor:position(),0,0,0)
db.actor:eat(db.actor:object("nazwa_itemu"))
local getrid = (db.actor:object("nazwa_itemu"))
alife():release(alife():object(getrid:id()), true)
wywala z logiem, twierdząc że getrid jest nil. WTF
Jak to zrobić, żeby zaraz po utworzeniu itema, gra wiedziała od razu, że on tam jest?
Na marginesie: też ciekawe, że powołanie tej funkcji nie wykrzacza gry, jeśli actor właśnie nie posiada "nazwa_itemu".