SoC. Сообщение о смерти сталкеров — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→Автор: Weanchester) |
|||
Строка 70: | Строка 70: | ||
В конце файла с сообщениями о смерти пишем - | В конце файла с сообщениями о смерти пишем - | ||
− | -- Звук сообщения | + | <lua>-- Звук сообщения |
function news_sound() | function news_sound() | ||
local snd_obj | local snd_obj | ||
snd_obj = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]) -- путь до звукового файла | snd_obj = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]) -- путь до звукового файла | ||
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), 1.0) | snd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), 1.0) | ||
− | end | + | end</lua> |
и в функции news_of_npc_kill перед первым end пишем - ваше_название_скрипта.news_sound() | и в функции news_of_npc_kill перед первым end пишем - ваше_название_скрипта.news_sound() | ||
Строка 81: | Строка 81: | ||
Пример как может быть выглядет функция: | Пример как может быть выглядет функция: | ||
− | function news_of_npc_kill(victim) | + | <lua>function news_of_npc_kill(victim) |
if victim and IsStalker(victim) then | if victim and IsStalker(victim) then | ||
local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()] or "" | local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()] or "" | ||
Строка 87: | Строка 87: | ||
Ваше_название.news_sound() | Ваше_название.news_sound() | ||
end | end | ||
− | end | + | end</lua> |
===Автор: Weanchester=== | ===Автор: Weanchester=== | ||
[[Категория:Скрипты]] | [[Категория:Скрипты]] |
Версия 10:23, 21 июня 2011
Итак, первым делом в директории gamedata\scripts создайте файл с названием имя_вашего_файла.script
1.Открываем его и пишем:
local level_name = { ["l01_escape"] = "Кордон", ["l02_garbage"] = "Свалка", ["l03_agroprom"] = "Агропром", ["l03u_agr_undergroun"] = "Подземелье Агропрома", ["l04_darkvalley"] = "Тёмная долина", ["l04u_labx18"] = "Лаборатория X-18", ["l05_bar"] = "Бар", ["l06_rostok"] = "Росток", ["l07_military"] = "Арм.склады", ["l08_yantar"] = "Янтарь", ["l10_radar"] = "Радар", ["l11_pripyat"] = "Припять", ["l12_stancia"] = "ЧАЭС 1", ["l12_stancia_2"] = "ЧАЭС 2", ["l12u_sarcofag"] = "Саркофаг" } function news_of_npc_kill(victim) if victim and IsStalker(victim) then local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()] or "" db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) end end
Теперь поясню:
local level_name = { ["l01_escape"] = "Кордон", ["l02_garbage"] = "Свалка", ["l03_agroprom"] = "Агропром", ["l03u_agr_undergroun"] = "Подземелье Агропрома", ["l04_darkvalley"] = "Тёмная долина", ["l04u_labx18"] = "Лаборатория X-18", ["l05_bar"] = "Бар", ["l06_rostok"] = "Росток", ["l07_military"] = "Арм.склады", ["l08_yantar"] = "Янтарь", ["l10_radar"] = "Радар", ["l11_pripyat"] = "Припять", ["l12_stancia"] = "ЧАЭС 1", ["l12_stancia_2"] = "ЧАЭС 2", ["l12u_sarcofag"] = "Саркофаг" } -- названия локаций function news_of_npc_kill(victim) -- функция if victim and IsStalker(victim) then local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()] or "" db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) -- определяется имя убитого NPC (Непися) и названия локаций. end end
2. Далее открываем xr_motivator.script, который находится в gamedata\scripts, ищем функцию:
function motivator_binder:death_callback(victim, who)
и после пишем: имя_вашего_файла.news_of_npc_kill(victim) в итоге:
function motivator_binder:death_callback(victim, who) имя_вашего_файла.news_of_npc_kill(victim) if who:id() == db.actor:id() then xr_statistic.addKillCount(self.object) end
Вот собственно и все! Прим. от AntdiabloN Можно сделать так чтобы при выводе инфы возможно было услышать звук принятого сообщения. В конце файла с сообщениями о смерти пишем -
-- Звук сообщения function news_sound() local snd_obj snd_obj = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]) -- путь до звукового файла snd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), 1.0) end
и в функции news_of_npc_kill перед первым end пишем - ваше_название_скрипта.news_sound()
Пример как может быть выглядет функция:
function news_of_npc_kill(victim) if victim and IsStalker(victim) then local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()] or "" db.actor:give_game_news(dead_news, "ui\\ui_iconstotal", Frect():set(0,752,83,47), 1000, 6000) Ваше_название.news_sound() end end