|
CS Создание сообщений о смерти сталкеров
В своё время меня мучал вопрос: как сделать так, чтобы отображалась информация о смерти сталкеров. Как только я нашёл ответ на этот вопрос, я решил выложить его здесь.
И так, поехали.
Вам понадобится файл: xr_motivator.script
В нём находим следующие строки: function motivator_binder:death_callback(victim, who) callstack()
Между ними вставляем следующий текст: --Некрологи 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
Теперь немного поясню.
Это, как вы поняли, определение мутанта, который укокошил очередного сталкера: 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] = "Призрак псевдособаки", }
Это - определение уровня, на котором произошло убийство: 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() 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
На авторство этого способа я не предендую. Скрипт, с небольшими изменениями, был перенесён из мода Another story
|
Категория: Скриптинг | Добавил: zhen (12.07.2011)
|
Просмотров: 4025 | Комментарии: 1
| Рейтинг: 5.0/1 |
|
Моя кнопка |
Код кнопки
|
Друзья сайта |
|
|