Форум

Суббота, 28.06.2025, 12:00 Приветствую Вас Гость
Главная | Регистрация | Вход | RSS
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: [Try]DiGGeR225  
Создание сообщений о смерти сталкеров!
[Try]DiGGeR225Дата: Понедельник, 03.10.2011, 20:32 | Сообщение # 1
Прибывший
Группа: Администраторы
Сообщений: 501
Награды: 5
Репутация: 4
Статус:
В своё время меня мучал вопрос: как сделать так, что бы отображалась инфа о смерти сталкеров. Как только я нашёл ответ на этот вопрос, я решил выложить его здесь.

И так, поехали.

Вам понадобится файл: xr_motivator.script

В нём находим следующие строки:

Code
function motivator_binder:death_callback(victim, who)
callstack()

Между ними вставляем следующий текст:

Code
--Некрологи
   
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]   = "Призрак псевдособаки",
  [clsid.controller_s]    = "Контролёр",
  [clsid.tushkano_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

Теперь немного поясню.

Это, как вы поняли, определение мутанта, который укокошил очередного сталкера:

Code
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]   = "Призрак псевдособаки",
}

Это - определение уровня, на котором произошло убийство:

Code
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

Это - определение имён и группировок убийцы и убитого. Выброс у нас определяется как мутант:

Code
local victim_name  = victim:character_name()
   
local killer_name  = who:character_name()
   
local victim_comm = victim:character_community()
   
local killer_comm = who:character_community()
   
if killer_name==victim_name then
killer_name="Выброс"
killer_comm="monster"
end

Отображение сообщения следующего типа: Вася Пупкин (Долг) убил сталкера Петя Иванов(Свобода), локация Свалка . Вместо надписей убил сталкера и локация можете написать что угодно:

Code
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)

Название предыдущего сообщения. Вместо надписи Некролог можете написать что угодно:

Code
local news_text = "%c[255,160,160,160]".."Некролог:".."\\n".."%c[default]"..m_text_kill_string




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

Чат доступен только пользователям сайта
Зарегистрироваться

ТОП самых общительных:

[Try]DiGGeR225
Репутация:4
Постов: 501
Файлов: 43
Krendelyok
Репутация:0
Постов: 108
Файлов: 0
Sniper
Репутация:0
Постов: 82
Файлов: 0
Инквизитор
Репутация:0
Постов: 27
Файлов: 0
[K715]
Репутация:0
Постов: 22
Файлов: 0
Конструктор сайтовuCoz