Перейти к содержанию
Авторизация  
FalkineIsaku

[CoP] Новый, усовершенствованный send_tip

Рекомендуемые сообщения

 
Спойлер

Заходим в xr_effects.script и листаем в самый низ,
Вставляем это в самый конец:
function give_game_news(actor, npc, p)
local actor = db.actor
local news_caption = game.translate_string(p[1])
local news_text = game.translate_string(p[2])
actor:give_game_news(news_caption, news_text, p[3], 0, p[4])
end
Главное чтобы перед ним ни в коем случае не было пробелов!
Готово.

Спойлер

Заходим в любую нужную вам логику рестриктора и пишем:
on_info = {условие} %=give_game_news(1:2:3:4)%
Теперь обозначения:
1 - имя отправителя из text\rus
2 - текст сообщения из text\rus
3 - Иконка отправителя которую можно взять из ui\ui_actor_portrets или ui_actor_newsmanager_icons
4 - Время показывания сообщения в миллисекундах (10000 - 10 сек)
Данный скрипт был сделан мной (FalkineIsaku) с целью облегчить жизнь мододелам.

 

  • Лайк 3
  • Жму руку 1
  • Спасибо 3

А колбасу и батоны нынче хреновые делать стали...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 30.12.2022 в 16:32, FalkineIsaku сказал:
  Сам скрипт и как его адаптировать (Показать контент)

Заходим в xr_effects.script и листаем в самый низ,
Вставляем это в самый конец:
function give_game_news(actor, npc, p)
local actor = db.actor
local news_caption = game.translate_string(p[1])
local news_text = game.translate_string(p[2])
actor:give_game_news(news_caption, news_text, p[3], 0, p[4])
end
Главное чтобы перед ним ни в коем случае не было пробелов!
Готово.

  Активация скрипта (Показать контент)

Заходим в любую нужную вам логику рестриктора и пишем:
on_info = {условие} %=give_game_news(1:2:3:4)%
Теперь обозначения:
1 - имя отправителя из text\rus
2 - текст сообщения из text\rus
3 - Иконка отправителя которую можно взять из ui\ui_actor_portrets или ui_actor_newsmanager_icons
4 - Время показывания сообщения в миллисекундах (10000 - 10 сек)
Данный скрипт был сделан мной (FalkineIsaku) с целью облегчить жизнь мододелам.

 

Немного недопонял можешь скинуть пример?


 

Защитим мир от заразы - Зоны                   Долг.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

SoDizzari

on_info = {-actor_alive} %=give_game_news(st_news:st_actor_dead:ui_inGame2_V_zone_nedavno_proshel_vibros:10000)%

st_news - имя отправителя
st_actor_dead - текст сообщения
ui_inGame2_V_zone_nedavno_proshel_vibros - иконка сообщения из ui_actor_newsmanager_icons
 


А колбасу и батоны нынче хреновые делать стали...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

function give_game_news(actor, npc, p)
local actor = db.actor
local news_caption = game.translate_string([st_agr_pismo_baza_dolg_pda_caption])
local news_text = game.translate_string([agr_pismo_baza_dolg_pda_text])
actor:give_game_news(news_caption, news_text, [ui_inGame2_Ryabov], 0, [10000])
end 
Должно быть так или так?

function give_game_news(actor, npc, p)
local actor = db.actor
local news_caption = game.translate_string(p[1])
local news_text = game.translate_string(p[2])
actor:give_game_news(news_caption, news_text, p[3], 0, p[4])
end


 

Защитим мир от заразы - Зоны                   Долг.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Поглядел я на механизм отправки сообщений и захотелось мне упростить его...

Решил переделать механизм отправки сообщений путём добавление конфига, в котором можно прописать секции сообщений с параметрами.

Результат такой: сделал скрипт для чтения конфига и поиска сообщения по его ИД (имя секции), ну и сам конфиг сделал. Вообще, можно было б это прямо в xr_effects.script засунуть, но решил, что лучше разделить.

Спойлер

-- # DESC: скрипт отсылки сообщений по id из конфигов
-- # EDIT: 14/07/2023
-- # AUTH: mnelenpridumivat a.k.a. Prostomod

local message_name_default = "st_tip" -- имя отправителя
local message_icon_default = "ui_iconsTotal_grouping" -- иконка сообщения
local message_showtime_default = 5000 -- время показа сообщения в мс
local message_timeout_default = 0 -- задержка отправки в мс
local message_sound_default = "pda_tips" -- звук сообщения
local message_text_default = nil -- текст по умолчанию

function send_message_from_id(message_id)
	local config = ini_file("misc\\messages.ltx")
	if not config then
		abort("Unable to find messages config file: misc\\messages.ltx")
	end
	local sender = utils.cfg_get_string(config, message_id, "sender", nil, false, "", message_name_default)
	local icon = utils.cfg_get_string(config, message_id, "icon", nil, false, "", message_icon_default)
	local showtime = utils.cfg_get_string(config, message_id, "showtime", nil, false, "", message_showtime_default)
	local timeout = utils.cfg_get_string(config, message_id, "timeout", nil, false, "", message_timeout_default)
	local sound = utils.cfg_get_string(config, message_id, "sound", nil, false, "", message_sound_default)
	local text = utils.cfg_get_string(config, message_id, "text", nil, false, "", message_text_default)
	if not text then
		abort("Message section [%s] has no text!", message_id)
	end
	text = game.translate_string(text)
	sender = game.translate_string(sender)
	--news_manager.send_tip(db.actor, text, timeout, sender, delay)
    xr_sound.set_sound_play(db.actor:id(), sound)
	--printf("Try to send message: sender [%s], text [%s], icon [%s], timeout, showtime")
    db.actor:give_game_news(sender, text, icon, timeout, showtime, 0)
end

 

Спойлер

[test_message]
;sender = стринг_ид_имени
;icon = ид_иконки
;showtime = 5000
;timeout = 0
;sound = имя_звука
text = this_is_test_message ;стринг-id текста сообщения - ОБЯЗАТЕЛЬНО

 

Теперь не нужно будет прыгать по разным файлам логики для редактирования сообщения или вспоминать сигнатуру функции отправки сообщения - просто открываем один конфиг и правим в одном месте всё, что надо. Ещё фича - конфиг читается каждый раз, как вызывается функция отправки сообщения, поэтому необязательно перезаходить в игру при настройке сообщений (например, времени отображения или иконки). Разве что сами тексты по string_id нельзя редактировать, но тут, я так понял, это связано с тем, что они читаются 1 раз при запуске игры.

Изменено пользователем Prostomod
Исправил ошибки
  • Мастер! 2
  • Сталкерский лайк 1
  • Хабар 1

Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу