[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание сообщений о смерти сталкера
DigefalДата: Четверг, 30.06.2011, 14:01 | Сообщение # 1
Опытный
Группа: Администраторы
Сообщений: 51
Награды: 0
Репутация: 100
Статус: Offline
Итак, первым делом в директории gamedata\scripts создайте файл с названием имя_вашего_файла.script

1.Открываем его и пишем:
Code
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

Теперь поясню:
Code
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)

и после пишем: имя_вашего_файла.news_of_npc_kill(victim) в итоге:
Code
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()

Пример как может быть выглядет функция:
Code
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


 
  • Страница 1 из 1
  • 1
Поиск:



Бесплатный конструктор сайтовuCoz | Rip by Steamer