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

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

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

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

 

Изменено пользователем FalkineIsaku
теперь при использовании функции так-же производится звуковой сигнал
  • Лайк 4
  • Сталкерский лайк 1
  • Жму руку 1
  • Спасибо 3

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 30.12.2022 в 11:32, 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 засунуть, но решил, что лучше разделить.

  скрипт отправки сообщения по ИД (Показать контент)
  конфиг в misc\messages.ltx (Показать контент)

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

UPD: сама функция не для xr_effects.script, а для вызовов из lua. Чтобы использовать её в логике, необходимо её зарегистрировать отдельно в xr_effects.script.

  xr_effects.script (Показать контент)

 

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

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

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


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

Prostomod А как правильно вызвать это сообщение? Я вот так вызывал и у меня вылетает без лога:

on_complete = %=send_message_from_id(chehov_new_info)%

  Само сообщение (Показать контент)

 

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


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

Skala А куда ты прописал функцию?
Сама она не для xr_effects.script, я предполагал, что она будет в каком-то другом файле, а в xr_effects.script будет другая функция, которая уже и вызовет send_message_from_id. Наверно, стоило это упомянуть тогда.

Пример, как у меня это оформлено:

  xr_effects.script (Показать контент)
  messages.script (Показать контент)

 

Изменено пользователем Prostomod

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

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


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

Skala, рекомендую использовать вам тот способ что предлагает FalkineIsaku, тот который вы использовали так-то не упрощён, а лишь только добавлен дополнительный промежуточный пункт.

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


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

Domovoi Суть моего способа в упрощении не самой функции, а её использования. Так, у меня все сообщения удобно расположены в одном конфиге (ну или в отдельной иерархии конфигов, фича с #include "filename.ltx" на месте), а не по всей логике и скриптам в моде, благодаря чему удобно, если что, менять их. Ну и, к тому же, точно не будет проблем с вводом аргументов в функцию, потому что фактически 4 разных заменяются одним.

А вообще, каждый сам решит, какой им проще использовать.

Изменено пользователем Prostomod

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

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


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

Domovoi У него нельзя звук вызвать, а мне он нужен.


Дополнено 0 минут спустя

Prostomod Всё в xr_effects прописал

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


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

Skala Если у тебя всё ещё не работает, можешь тогда прислать, что ты вписал в xr_effects? Просто у меня в моде этот код исправно работает.


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

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


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

Prostomod Только сел за это. Файл messages.script нужно где-то регистрировать? Я просто не вижу в функции нигде ссылки на него

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


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

Skala Не нужно. Просто создаёшь, вставляешь туда функцию send_message_from_id, а потом копируешь и вставляешь функцию для xr_effects. А потом не забудь поправить в логике вызов =send_message_from_id на =send_message (если все имена сохраняешь как у меня)


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

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


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

Prostomod Всё равно вылетает.

  Вызов функции (Показать контент)
  из xr_effects (Показать контент)
  из messages (Показать контент)

 

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


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

Skala Да, моя вина, в скрипте, который в том посте ошибка. (видимо, никто больше моим методом не пользовался, раз ошибка всплыла лишь спустя год)

Пост я исправил, скопируй оттуда по новой функцию send_message_from_id (просто скопируй весь фрагмент, потом всё у себя в messages.script выдели и поверх всего вставь обновлённый код).

Изменено пользователем Prostomod

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

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


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

Prostomod Да, теперь всё нормально

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


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

FalkineIsaku зачем создавать переменную actor когда она является первым параметром функции? actor тоже самое что и db.actor

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


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

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

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

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

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

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

Войти

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

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

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

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