Сповіщення
Очистити все

SoC. Повідомлення про смерть сталкерів


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
7 місяців тому
 

Отже, насамперед у директорії gamedata\scripts створіть файл під назвою имя_вашего_файла.script

1. Відкриваємо його і пишемо:

local level_name = { 
  [ "l01_escape" ] = "Кордон" ,
   [ "l02_garbage" ] = "Сміттєзвалище" ,
   [
   " l03_agroprom" ] = " НДІ Агропром" ,
   [ "l03u_agr_underground" ] = " Підземілля НДІ Агропром" " ] = "Темна долина" ,
   [ "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 )  the 
local dead_news = " \\ n %c[255,160,160,160]Угруповання: %c[default ] " ..community [ victim : character_commu 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 ( ) : _ _ _ _ _ _ _ _ _ _ _
   

Тепер поясню:

local level_name = { 
  [ "l01_escape" ] = "Кордон" ,
   [ "
   l02_garbage" ] = "Сміттєзвалище" ,
   [ "l03_agroprom" ] = " НДІ Агропром" ,
   [ "l03u_agr_undergroun" ] = " Підземілля НДІ Агропром" " ] = "Темна долина" ,
   [ "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 )  the 
local dead_news = " \\ n %c[255,160,160,160]Угруповання: %c[default ] " ..community [ victim : character_commu 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 )  the 
local dead_news = " \\ n %c[255,160,160,160]Угруповання: %c[default ] " ..community [ victim : character_commu 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 ) 
ім'я_вашого_файлу .
     

   
Цитата