add game&rawdata
This commit is contained in:
parent
0133cd976c
commit
49b34b5546
45731 changed files with 709831 additions and 0 deletions
65
gamedata/scripts/xr_death.script
Normal file
65
gamedata/scripts/xr_death.script
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
----------------------------------------------------------------------------------------------------------------------
|
||||
--Actions
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
-- Îáû÷íîå ïîâåäåíèå
|
||||
|
||||
class "action_process_death"
|
||||
|
||||
function action_process_death:__init(obj, storage)
|
||||
self.object = obj
|
||||
self.st = storage
|
||||
end
|
||||
|
||||
function action_process_death:death_callback(victim, who)
|
||||
if who ~= nil then
|
||||
printf("[%s] killed by [%s]", victim:name(), who:name() )
|
||||
db.storage[victim:id()].death.killer = who:id()
|
||||
else
|
||||
printf("[%s] killed by [Unknown]", victim:name())
|
||||
db.storage[victim:id()].death.killer = -1
|
||||
end
|
||||
|
||||
if db.actor then
|
||||
if self.st.info then
|
||||
xr_logic.pick_section_from_condlist(db.actor, self.object, self.st.info)
|
||||
end
|
||||
|
||||
if self.st.info2 then
|
||||
xr_logic.pick_section_from_condlist(db.actor, self.object, self.st.info2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
-- binder
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
function add_to_binder(npc, ini, scheme, section, storage)
|
||||
local action = this.action_process_death(npc, storage)
|
||||
xr_logic.subscribe_action_for_events(npc, storage, action)
|
||||
end
|
||||
|
||||
|
||||
function set_death(npc, ini, scheme, section)
|
||||
local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section)
|
||||
end
|
||||
|
||||
function reset_death(npc, scheme, st, section)
|
||||
local death_section = utils.cfg_get_string(st.ini, st.section_logic, "on_death", npc, false, "")
|
||||
-- printf("reset death for [%s]", npc:name())
|
||||
if death_section then
|
||||
if not st.ini:section_exist(death_section) then
|
||||
abort("There is no section [%s] for npc [%s]", death_section, npc:name())
|
||||
end
|
||||
-- printf("reset death, section present")
|
||||
local tmp = utils.cfg_get_string(st.ini, death_section, "on_info", npc, false, "")
|
||||
-- printf("tmp [%s]", tostring(tmp))
|
||||
if tmp then
|
||||
st.death.info = xr_logic.parse_condlist(npc, death_section, "death", tmp)
|
||||
end
|
||||
-- printf("tmp [%s]", tostring(tmp))
|
||||
tmp = utils.cfg_get_string(st.ini, death_section, "on_info2", npc, false, "")
|
||||
if tmp then
|
||||
st.death.info2 = xr_logic.parse_condlist(npc, death_section, "death", tmp)
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue