SoC. Сообщение о смерти сталкеров — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(Отмена правки 10954 участника RedPython (обсуждение)) |
RedPython (обсуждение | вклад) м (Правки 78.29.70.219 (обсуждение) откачены к версии RedPython) |
||
| Строка 1: | Строка 1: | ||
| + | Итак, первым делом в директории '''gamedata\scripts''' создайте файл с названием '''имя_вашего_файла.script''' | ||
| + | 1.Открываем его и пишем: | ||
| + | <lua>local locations_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) | ||
| + | local dead_news = "Нет трупа" | ||
| + | if victim and IsStalker(victim) then | ||
| + | local locations = locations_name[level.name()] or "" | ||
| + | dead_news = "Погиб сталкер: "..victim:character_name().."\\n%c[default]"..locations | ||
| + | end | ||
| + | db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) | ||
| + | end</lua> | ||
| + | Теперь поясню: | ||
| + | <lua>local locations_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) -- сама функция | ||
| + | local dead_news = "Нет трупа" -- переменная | ||
| + | if victim and IsStalker(victim) then | ||
| + | local locations = locations_name[level.name()] or "" -- названия локации. Определяется из таблицы: locations_name | ||
| + | dead_news = "Погиб сталкер: "..victim:character_name().."\\n%c[default]"..locations -- определяется имя умершего | ||
| + | end | ||
| + | db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) -- выдается сообщение | ||
| + | end</lua> | ||
| + | 2. Далее открываем '''xr_motivator.script''', | ||
| + | который находится в '''gamedata\scripts''', ищем функцию: | ||
| + | |||
| + | function motivator_binder:death_callback(victim, who) | ||
| + | |||
| + | и после пишем: | ||
| + | имя_вашего_файла.news_of_npc_kill(victim) в итоге: | ||
| + | |||
| + | <lua>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</lua> | ||
| + | Вот собственно и все! | ||
| + | ===Автор:Weanchester=== | ||
| + | [[Категория:Скрипты]] | ||
Версия 16:09, 21 мая 2011
Итак, первым делом в директории gamedata\scripts создайте файл с названием имя_вашего_файла.script
1.Открываем его и пишем:
local locations_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) local dead_news = "Нет трупа" if victim and IsStalker(victim) then local locations = locations_name[level.name()] or "" dead_news = "Погиб сталкер: "..victim:character_name().."\\n%c[default]"..locations end db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) end
Теперь поясню:
local locations_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) -- сама функция local dead_news = "Нет трупа" -- переменная if victim and IsStalker(victim) then local locations = locations_name[level.name()] or "" -- названия локации. Определяется из таблицы: locations_name dead_news = "Погиб сталкер: "..victim:character_name().."\\n%c[default]"..locations -- определяется имя умершего end db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) -- выдается сообщение 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
Вот собственно и все!