Сповіщення
Очистити все
15.10.2023 12:13
Знайшов інформацію про те, як зробити так, щоб відображалася інформація про смерть сталкерів, вирішив викласти його тут.
Поїхали.
Вам знадобиться файл: xr_motivator.script
У ньому знаходимо наступні рядки:
function motivator_binder:death_callback(victim, who) callstack()
Між ними вставляємо наступний текст:
Тепер трохи поясню.
Це, як ви зрозуміли, визначення мутанта, який укокошив чергового сталкера:
monster_classes = { [clsid.bloodsucker_s] = "Кровосос", [clsid.boar_s] = "Кабан", [clsid.dog_s] = "Собака", [clsid.flesh_s] = "Плоть", [clsid.pseudodog_s] = "Псевдособака", [clsid.poltergeist_s] = "Полтергейст", [clsid.gigant_s] = "Псевдогигант", [clsid.zombie_s] = "Зомби", [clsid.snork_s] = "Снорк", [clsid.psy_dog_s] = "Пси собака", [clsid.psy_dog_phantom_s] = "Призрак псевдособаки", }
local m_game_vertex = who:game_vertex_id() local lvert = game_graph():vertex(m_game_vertex) local lid = lvert:level_id() local mlevel = alife():level_name(lid) local m_s_level = mlevel local victim_name = victim:character_name() local killer_name = who:character_name() local victim_comm = victim:character_community() local killer_comm = who:character_community() local post_message_prob = 0.8 if killer_comm=="monster" then local m_clsid = get_clsid(who) killer_name = monster_classes[m_clsid] end if killer_name==victim_name then killer_name=Викид killer_comm="monster" end if killer_comm~=nil then local m_text_kill_string=killer_name.." ("..game.translate_string(killer_comm).."), вбив сталкера "..victim_name.."("..game.translate_string(victim_comm).."). Локація: "..game.translate_string(m_s_level) local news_text = "%c[255,160,160,160]".."Некролог:".."\\n".."%c[default]"..m_text_kill_string local news_caption = game.translate_string("st_tip") local texture = "ui_iconsTotal_weapons" db.actor:give_game_news(news_caption, news_text, texture, 15*1000, 15*1000) end
Це визначення рівня, на якому сталося вбивство:
локальний m_game_vertex = who:game_vertex_id ( ) локальний lvert = game_graph ( ) :vertex ( m_game_vertex ) локальний lid = lvert:level_id ( ) локальний mlevel = alife ( ) :level_name ( lid ) локальний m_s_level = mlevel
Це - визначення імен та угруповань вбивці та вбитого. Викид у нас визначається як мутант :
локальне ім'я_жертви = жертва:ім'я_персонажа ( ) локальне killer_name = who:character_name ( ) локальна жертва_comm = жертва:спільнота_персонажів ( ) локальний killer_comm = who:character_community ( ) if killer_name==ім'я_жертви then killer_name= "Виброс" killer_comm= "монстр" кінець
Відображення повідомлення наступного типу: Вася Пупкін (Борг) убив сталкера Петя Іванов (Свобода), локація Свалка . Замість написів убив сталкера і локація можете написати будь-що:
if killer_comm~= nil then local m_text_kill_string=killer_name.. " (" ..game.translate_string ( killer_comm ) .. "), убив сталкера " ..victim_name.. "(" ..game.translate_string ( žrtve_comm ) .. " ). Локація: " ..game.translate_string ( m_s_level )
Назва попереднього повідомлення. Замість напису Некролог можете написати будь-що:
local news_text = "%c[255,160,160,160]" .. "Некролог:" .. " \\ n" .. "%c[default]" ..m_text_kill_string
На авторство цього способу я не кажу. Скрипт, з невеликими змінами, перенесли з модифікації Another story.