Zachciało mi się jeszcze jednej rzeczy, ale obiecuję, że to już ostatnia w temacie.
Otóż usiłuję wrzepić jeszcze z plugina listę itemów, które czystka ominie. Tak mi się to kleci, ale coś nie jestem pewien, a jeszcze nie mogę testować, żeby się kierować logami. Mógłbyś, proszę, spojrzeć?
W pluginie jest
- Kod: Zaznacz wszystko
[kept_items_list]
item1
item2
item3
[new_items_list]
item4
item5
item6
W dialogu jest:
<action>dialogs_zaton.zat_b22_medic_stock_remove</action>
A do dialogs_zaton dodaję to:
function zat_b22_medic_stock_remove()
local medic_ini = ini_file("plugins\\medic_stock.ltx")
local kept_items = alun_utils.collect_section(medic_ini,"kept_items_list",true)
local new_items = alun_utils.collect_section(medic_ini,"new_items_list",true)
local to_be_kept_items = {}
-- extract items to be kept
local function keep_list_matching_item(item)
for k,item in pairs(kept_items) do
if item ~= nil then
table.insert(to_be_kept_items,id)
end
end
end
npc:inventory_for_each(keep_list_matching_item)
-- rip-off
local function remove_item(item)
alife():release(alife():object(item:id()), true)
end
npc:inventory_for_each(remove_item)
-- spawn kept items back
for k,item in pairs(to_be_kept_items) do
alife():create(item, npc:position(),0,0,npc:id())
end
-- spawn new items from ltx
for k,item in pairs(new_items) do
alife():create(item, npc:position(),0,0,npc:id())
end
end
Ma to sens?
EDIT:
CTD z logiem "dialogs_zaton.script:1798: attempt to index global 'npc' (a nil value)". Hmm, jak mu wytłumaczyć, że npc to koleś, z którym gadam?
EDIT2:
Testuję na Noe'm. Wrzepiam "npc == "zat_b18_noah", crasha nie ma, ale nie ma też żadnej różnicy w jego ekwipunku przed i po zmianach w plikach, coś nie działa.