SoC. Сообщение о смерти сталкеров — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Dj Ultor (обсуждение | вклад) |
|||
(не показаны 2 промежуточных версий 1 участника) | |||
Строка 3: | Строка 3: | ||
1.Открываем его и пишем: | 1.Открываем его и пишем: | ||
<lua>local level_name = { | <lua>local level_name = { | ||
− | ["l01_escape"] | + | ["l01_escape"] = "Кордон", |
− | ["l02_garbage"] | + | ["l02_garbage"] = "Свалка", |
− | ["l03_agroprom"] | + | ["l03_agroprom"] = "НИИ Агропром", |
− | [" | + | ["l03u_agr_underground"] = "Подземелье НИИ Агропром", |
["l04_darkvalley"] = "Тёмная долина", | ["l04_darkvalley"] = "Тёмная долина", | ||
− | ["l04u_labx18"] | + | ["l04u_labx18"] = "Лаборатория X-18", |
− | ["l05_bar"] | + | ["l05_bar"] = "Бар", |
− | ["l06_rostok"] | + | ["l06_rostok"] = "Дикая территория", |
− | ["l07_military"] | + | ["l07_military"] = "Арм.склады", |
− | ["l08_yantar"] | + | ["l08_yantar"] = "Янтарь", |
− | ["l10_radar"] | + | ["l08u_brainlab"] = "Лаборатория X-16", |
− | ["l11_pripyat"] | + | ["l10u_bunker"] = "Лаборатория X-10", |
− | ["l12_stancia"] | + | ["l10_radar"] = "Радар", |
− | ["l12_stancia_2"] | + | ["l11_pripyat"] = "Припять", |
− | ["l12u_sarcofag"] | + | ["l12_stancia"] = "ЧАЭС", |
− | + | ["l12_stancia_2"] = "ЧАЭС", | |
+ | ["l12u_sarcofag"] = "Саркофаг", | ||
+ | ["l12u_control_monolith"] = "Управление Монолитом" | ||
+ | } | ||
+ | |||
+ | local community = { | ||
+ | ["stalker"] = "Сталкер", | ||
+ | ["monolith"] = "Монолит", | ||
+ | ["military"] = "Военные", | ||
+ | ["bandit"] = "Бандит", | ||
+ | ["killer"] = "Наемник", | ||
+ | ["ecolog"] = "Эколог", | ||
+ | ["dolg"] = "Долг", | ||
+ | ["freedom"] = "Свобода", | ||
+ | ["zombied"] = "Зомбированный", | ||
+ | ["trader"] = "Торговец" | ||
+ | } | ||
− | function | + | function kill_npc(victim, who) |
if victim and IsStalker(victim) then | if victim and IsStalker(victim) then | ||
− | local dead_news ="\\n%c[255,160,160,160] | + | local dead_news = "\\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Имя: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" |
db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) | db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) | ||
− | + | end | |
end</lua> | end</lua> | ||
+ | |||
Теперь поясню: | Теперь поясню: | ||
<lua>local level_name = { | <lua>local level_name = { | ||
− | ["l01_escape"] | + | ["l01_escape"] = "Кордон", |
− | ["l02_garbage"] | + | ["l02_garbage"] = "Свалка", |
− | ["l03_agroprom"] | + | ["l03_agroprom"] = "НИИ Агропром", |
− | ["l03u_agr_undergroun"] | + | ["l03u_agr_undergroun"] = "Подземелье НИИ Агропром", |
["l04_darkvalley"] = "Тёмная долина", | ["l04_darkvalley"] = "Тёмная долина", | ||
− | ["l04u_labx18"] | + | ["l04u_labx18"] = "Лаборатория X-18", |
− | ["l05_bar"] | + | ["l05_bar"] = "Бар", |
− | ["l06_rostok"] | + | ["l06_rostok"] = "Дикая территория", |
− | ["l07_military"] | + | ["l07_military"] = "Арм.склады", |
− | ["l08_yantar"] | + | ["l08_yantar"] = "Янтарь", |
− | ["l10_radar"] | + | ["l08u_brainlab"] = "Лаборатория X-16", |
− | ["l11_pripyat"] | + | ["l10u_bunker"] = "Лаборатория X-10", |
− | ["l12_stancia"] | + | ["l10_radar"] = "Радар", |
− | ["l12_stancia_2"] | + | ["l11_pripyat"] = "Припять", |
− | ["l12u_sarcofag"] | + | ["l12_stancia"] = "ЧАЭС", |
− | + | ["l12_stancia_2"] = "ЧАЭС", | |
+ | ["l12u_sarcofag"] = "Саркофаг", | ||
+ | ["l12u_control_monolith"] = "Управление Монолитом" | ||
+ | } -- названия локаций | ||
+ | |||
+ | local community = { | ||
+ | ["stalker"] = "Сталкер", | ||
+ | ["monolith"] = "Монолит", | ||
+ | ["military"] = "Военные", | ||
+ | ["bandit"] = "Бандит", | ||
+ | ["killer"] = "Наемник", | ||
+ | ["ecolog"] = "Эколог", | ||
+ | ["dolg"] = "Долг", | ||
+ | ["freedom"] = "Свобода", | ||
+ | ["zombied"] = "Зомбированный", | ||
+ | ["trader"] = "Торговец" | ||
+ | } -- названия группировок | ||
− | function | + | function kill_npc(victim, who) |
if victim and IsStalker(victim) then | if victim and IsStalker(victim) then | ||
− | local dead_news ="\\n%c[255,160,160,160] | + | local dead_news = "\\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Имя: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" |
− | db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) -- определяется имя | + | db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) -- определяется какая группировка у убитого, его имя, локация |
− | + | end | |
end</lua> | end</lua> | ||
Строка 58: | Строка 91: | ||
и после пишем: | и после пишем: | ||
− | имя_вашего_файла. | + | имя_вашего_файла.kill_npc(victim, who) в итоге: |
<lua>function motivator_binder:death_callback(victim, who) | <lua>function motivator_binder:death_callback(victim, who) | ||
− | имя_вашего_файла. | + | имя_вашего_файла.kill_npc(victim, who) |
if who:id() == db.actor:id() then | if who:id() == db.actor:id() then | ||
xr_statistic.addKillCount(self.object) | xr_statistic.addKillCount(self.object) | ||
Строка 77: | Строка 110: | ||
end</lua> | end</lua> | ||
− | и в функции news_of_npc_kill перед первым end пишем - | + | и в функции news_of_npc_kill перед первым end пишем - имя_вашего_файла.news_sound() |
Пример как может быть выглядет функция: | Пример как может быть выглядет функция: | ||
− | <lua>function | + | <lua>function kill_npc(victim, who) |
if victim and IsStalker(victim) then | if victim and IsStalker(victim) then | ||
− | local dead_news ="\\n%c[255,160,160,160] | + | local dead_news = "\\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Имя: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" |
− | db.actor:give_game_news(dead_news, "ui\\ | + | db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) |
− | + | имя_вашего_файла.news_sound() | |
end | end | ||
end</lua> | end</lua> | ||
Строка 93: | Строка 126: | ||
Дополнил: | Дополнил: | ||
[[Участник:AntdiabloN]] | [[Участник:AntdiabloN]] | ||
+ | |||
+ | Подправил ошибки: | ||
+ | [[Участник:Dj Ultor (IGN)]] | ||
+ | |||
[[Категория:Скрипты]] | [[Категория:Скрипты]] |
Текущая версия на 20:18, 30 октября 2019
Итак, первым делом в директории gamedata\scripts создайте файл с названием имя_вашего_файла.script
1.Открываем его и пишем:
local level_name = { ["l01_escape"] = "Кордон", ["l02_garbage"] = "Свалка", ["l03_agroprom"] = "НИИ Агропром", ["l03u_agr_underground"] = "Подземелье НИИ Агропром", ["l04_darkvalley"] = "Тёмная долина", ["l04u_labx18"] = "Лаборатория X-18", ["l05_bar"] = "Бар", ["l06_rostok"] = "Дикая территория", ["l07_military"] = "Арм.склады", ["l08_yantar"] = "Янтарь", ["l08u_brainlab"] = "Лаборатория X-16", ["l10u_bunker"] = "Лаборатория X-10", ["l10_radar"] = "Радар", ["l11_pripyat"] = "Припять", ["l12_stancia"] = "ЧАЭС", ["l12_stancia_2"] = "ЧАЭС", ["l12u_sarcofag"] = "Саркофаг", ["l12u_control_monolith"] = "Управление Монолитом" } local community = { ["stalker"] = "Сталкер", ["monolith"] = "Монолит", ["military"] = "Военные", ["bandit"] = "Бандит", ["killer"] = "Наемник", ["ecolog"] = "Эколог", ["dolg"] = "Долг", ["freedom"] = "Свобода", ["zombied"] = "Зомбированный", ["trader"] = "Торговец" } function kill_npc(victim, who) if victim and IsStalker(victim) then local dead_news = "\\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Имя: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" 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"] = "Янтарь", ["l08u_brainlab"] = "Лаборатория X-16", ["l10u_bunker"] = "Лаборатория X-10", ["l10_radar"] = "Радар", ["l11_pripyat"] = "Припять", ["l12_stancia"] = "ЧАЭС", ["l12_stancia_2"] = "ЧАЭС", ["l12u_sarcofag"] = "Саркофаг", ["l12u_control_monolith"] = "Управление Монолитом" } -- названия локаций local community = { ["stalker"] = "Сталкер", ["monolith"] = "Монолит", ["military"] = "Военные", ["bandit"] = "Бандит", ["killer"] = "Наемник", ["ecolog"] = "Эколог", ["dolg"] = "Долг", ["freedom"] = "Свобода", ["zombied"] = "Зомбированный", ["trader"] = "Торговец" } -- названия группировок function kill_npc(victim, who) if victim and IsStalker(victim) then local dead_news = "\\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Имя: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) -- определяется какая группировка у убитого, его имя, локация end end
2. Далее открываем xr_motivator.script, который находится в gamedata\scripts, ищем функцию:
function motivator_binder:death_callback(victim, who)
и после пишем: имя_вашего_файла.kill_npc(victim, who) в итоге:
function motivator_binder:death_callback(victim, who) имя_вашего_файла.kill_npc(victim, who) 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 kill_npc(victim, who) if victim and IsStalker(victim) then local dead_news = "\\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Имя: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) имя_вашего_файла.news_sound() end end
Автор: Weanchester
Дополнил: Участник:AntdiabloN
Подправил ошибки: Участник:Dj Ultor (IGN)