Napotkałem taki oto problemik, nie bardzo go rozumiem w ogóle, to i rozwiązanie trudniej wykoncypować.
Misja jest taka: policzyć ile jest w ekwipunku itemów "substytut", jeśli dwa lub więcej to usunąć dwa "substytut"y i dodać "zamiennik2", jeśli jeden to usunąć jeden "substytut" i dodać "zamiennik1".
Liczę sobie ilość itemów funkcją, która zwraca zmienną "ile" i definiuję:
local mam_jeden, mam_dwa
if ile >= 2 then mam_dwa = true end
if ile = 1 then mam_jeden = true end
potem leci sobie dalej.
Wszystko ok, poza tym, że nie potrafię potem usunąć dwa razy "substytut"u.
Próbuję tak:
if mam_dwa then
local getrid = (db.actor:object("substytut"))
alife():release(alife():object(getrid:id()), true)
alife():release(alife():object(getrid:id()), true)
alife():create("zamiennik2",db.actor:position(),0,0,0)
elseif mam_jeden then
local getrid = (db.actor:object("substytut"))
alife():release(alife():object(getrid:id()), true)
alife():create("zamiennik1",db.actor:position(),0,0,0)
end
albo tak:
if mam_dwa then
local getrid = (db.actor:object("substytut"))
alife():release(alife():object(getrid:id()), true)
local getridtoo = (db.actor:object("substytut"))
alife():release(alife():object(getridtoo:id()), true)
alife():create("zamiennik2",db.actor:position(),0,0,0)
elseif mam_jeden then
local getrid = (db.actor:object("substytut"))
alife():release(alife():object(getrid:id()), true)
alife():create("zamiennik1",db.actor:position(),0,0,0)
end
i w obu przypadkach kupa taka, że zamiana na "zamiennik1" działa, a na "zamiennik2" nie. Zupełnie jakby ignorowało ten drugi alife release.
Czego to brakuje?