| Имя NPC в игровых сообщениях "Зова Припяти" | 
| 
				
			 | 
|  
|  |   
|  
 
 
 Воскресенье, 11.06.2017, 23:10 | Сообщение # 1 sektor_aka  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 1343 |   
 | Награды: | 6 |   
 | Регистрация: | 07.03.2016 |  | Кто шарит в логике, подскажите, как тут дописать правильно, чтобы в сообщении указывалось имя NPC, а не писалось "Сообщение".
 Код [sr_idle@20]on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader) -sad_atr_trader_go_kitchen%
 
send_tip - понятно, что это функция в xr_effects.script
 
 Есть даже такой комментарий:
 
 
 Код --[[send_tip(news_id:sender:sender_id)
 1. news_id
 2. sender*
 3. sender_id*
 * - not necessary
 --]]
 
news_id - это текст сообщения, т.е. string id. В моей логике имя sad_artefact_upgr_ready
 sender - это иконка в секции tips_icons news_manager.script. В моей логике имя sad_atr_trader
 sender_id - а это заголовок сообщения, story_id NPC.
 
 story_id моего персонажа прописан в файле по пути: gamedata\configs\creatures\spawn_sections_sad.ltx
 
 И выглядит так:
 
 
 Код [sad_atr_trader]:stalker$spawn                     = "respawn\sad_atr_trader"
 character_profile     = sad_atr_trader
 story_id = sad_atr_trader
 
Т.е. в логике я указал как:
 
 Код [sr_idle@20]on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader:sad_atr_trader) -sad_atr_trader_go_kitchen%
 
Дело в том, что хоть story_id и указан, заголовок все также остается как "Сообщение".
 
 Я все-таки думаю, что story_id читается, но не отображается. Потому что, если указать другое имя, не являющееся story_id - игра вылетит.
 Думаю, дело в функции send_tip в news_manager.script. Там не прописано отображение имени.
 Возможно, что-то со времен прошлых игр удалили из скриптов, т.к. я действительно не помню чтобы в ЗП игрок получал сообщения с подписанным именем NPC.
 |  
    |  Воскресенье, 11.06.2017, 23:10   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 07.03.2016 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 10:36 | Сообщение # 2 Overfirst  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 1081 |   
 | Награды: | 19 |   
 | Регистрация: | 11.06.2015 |  | В ЗП даже не предусматривается установка заголовка, по умолчанию там уже стоит st_tip. Поправил оригинальную функцию в news_manager.script и убрал лишнее:
 Чтобы вызывать из логики, нужно в соответствии с этой функцией поправить функцию send_tip в xr_effects.script:Код function send_tip(news_caption, news_id, sender, showtime)if news_id == nil then return false end
 
 if showtime == nil then showtime = 5 end
 
 xr_sound.set_sound_play(db.actor:id(), "pda_tips")
 
 local texture = "ui_iconsTotal_grouping"
 if sender ~= nil then
 if type(sender) == "string" then
 if tips_icons[sender] then
 texture = tips_icons[sender]
 end
 elseif is_npc_stalker(sender:clsid()) then
 texture = sender:character_icon()
 end
 end
 local news_caption = news_caption or game.translate_string("st_tip")
 local news_text = game.translate_string(news_id)
 db.actor:give_game_news(news_caption, news_text, texture, 0, showtime*1000, 0)
 
 return true
 end
Пример использования:Код --[[1. Заголовок сообщения
 2. Текст сообщения
 3. Иконка отправителя из таблицы tips_icons
 4. Время показа в секундах
 --]]
 function send_tip(actor, npc, p)
 news_manager.send_tip(p[1], p[2], p[3], p[4])
 end
 Код %=send_tip(st_test_tip:st_test_news_text:diplomat:20)%
 Скриншот: |  
    |  Понедельник, 12.06.2017, 10:36   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 11.06.2015 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 14:39 | Сообщение # 3 sektor_aka  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 1343 |   
 | Награды: | 6 |   
 | Регистрация: | 07.03.2016 |  | Цитата BoBaH_671 (  )  st_test_tipЭто что, string id или story id ?
 
 Думаю первое, раз у тебя написано "Имя отправителя".
 
 Т.е. выходит указать можно только вручную?
Сообщение отредактировал sektor_aka - Понедельник, 12.06.2017, 14:40 |  |  Понедельник, 12.06.2017, 14:39   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 07.03.2016 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 14:52 | Сообщение # 4 Overfirst  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 1081 |   
 | Награды: | 19 |   
 | Регистрация: | 11.06.2015 |  | sektor_aka, ну по функции глазами пробегись. Да, это string id. Цитата sektor_aka (  )  Т.е. выходит указать можно только вручную?Не понял.
 |  |  Понедельник, 12.06.2017, 14:52   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 11.06.2015 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 14:57 | Сообщение # 5 sektor_aka  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 1343 |   
 | Награды: | 6 |   
 | Регистрация: | 07.03.2016 |  | Цитата BoBaH_671 (  )  Не понял.Ну мне сказали, что со story id:
 
 Цитата  Если объект от имени которого пишется сообщение в оффлайне или ранен - то оно не придет.Типа персонаж не может использовать PDA
 Также не нужно текст имени указывать вручную.
 
 Должна читаться секция:
 
 Цитата sektor_aka (  )  [sad_atr_trader]:stalker$spawn                     = "respawn\sad_atr_trader"
 character_profile     = sad_atr_trader
 story_id = sad_atr_trader
 А string id из профиля NPC указанного в параметре character_profile
Сообщение отредактировал sektor_aka - Понедельник, 12.06.2017, 14:57 |  |  Понедельник, 12.06.2017, 14:57   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 07.03.2016 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 15:00 | Сообщение # 6 Overfirst  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 1081 |   
 | Награды: | 19 |   
 | Регистрация: | 11.06.2015 |  | Если не нравится, то можешь переписать, я же не заставляю. Не пойму, чем тебя сей вариант не устраивает. Упростил максимально, чтобы удобно было. Разницы никакой, если ты пишешь story_id, по которому читается имя, или же сразу пишешь имя из профиля. |  |  Понедельник, 12.06.2017, 15:00   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 11.06.2015 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 15:03 | Сообщение # 7 sektor_aka  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 1343 |   
 | Награды: | 6 |   
 | Регистрация: | 07.03.2016 |  | Цитата BoBaH_671 (  )  можешь переписать
 
  
 Вот только не особо шарю в скриптописании.
 
 Разница все же есть, напиши пожалуйста, чтобы story id читало. Если знаешь конечно...
 
 Знаешь. Мне без твоих story_id хватает забот, сорян.
 BoBaH_671
Сообщение отредактировал sektor_aka - Понедельник, 12.06.2017, 15:04 |  |  Понедельник, 12.06.2017, 15:03   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 07.03.2016 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 15:18 | Сообщение # 8 Overfirst  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 1081 |   
 | Награды: | 19 |   
 | Регистрация: | 11.06.2015 |  | Цитата sektor_aka (  )  Должна читаться секцияЕсли чекать оригинал, читается айдишник, да, но он никак не влияет на заголовок. Если ты его задал, то он тупо проверяет непися, не ранен ли он и не оффлайне ли он, ну и жив ли он. Это влияет только на отправку.
 |  |  Понедельник, 12.06.2017, 15:18   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 11.06.2015 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 15:25 | Сообщение # 9 sektor_aka  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 1343 |   
 | Награды: | 6 |   
 | Регистрация: | 07.03.2016 |  | Цитата BoBaH_671 (  )  никак не влияет на заголовокАга. Кажись понял. Ты в скрипте:
 
 Цитата BoBaH_671 (  )  function send_tip(news_caption, news_id, sender, showtime)
 Заставил работать news_caption
 
 А я спрашиваю про другое, про sender_id. У тебя он не указан.
 
 Получается все верно. Имя отправителя задается вручную в логике его при вызове.
 
 А sender_id эт проверка непися.
Сообщение отредактировал sektor_aka - Понедельник, 12.06.2017, 15:26 |  |  Понедельник, 12.06.2017, 15:25   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 07.03.2016 |  |  |  |  | 
|  
|  |   
|  
 
 
 Понедельник, 12.06.2017, 15:28 | Сообщение # 10 Overfirst  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 1081 |   
 | Награды: | 19 |   
 | Регистрация: | 11.06.2015 |  | Туповато получается. Это лишнее, имхо. Если непись эксклюзивный, то и логика у него соответствующая, а там можно выдать поршень, когда тот умирает:
 Код [death]on_info = {-info} %+info%
А перед отправкой проверить:
 
 Код on_info = {-info} nil %=send_tip(st_test_tip:st_test_news_text:diplomat:20)%on_info2 = {+info} nil
Мне сейчас не до скриптов, извиняй, «и так сойдёт».
  |  |  Понедельник, 12.06.2017, 15:28   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 11.06.2015 |  |  |  |  | 
|  
|  |   
|  
 
  
  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 1343 |   
 | Награды: | 6 |   
 | Регистрация: | 07.03.2016 |  | BoBaH_671, ну хотя да, ты прав. Там же логикой заданы условия выдачи. NPC наверняка обязан быть жив.
 Тем более, говорят что:
 
 Цитата  Это билдомусор по сути. Он работает, но никто его не использует никогда
 Ещё же СМС-ки могут приходить от разработчика. Типа «За помощь в борьбе с кровососами в личный ящик на Скадовске добавлены медикаменты», а тут никакие айдишники не нужны, даже если разработчик мёртв.
  BoBaH_671
 |  |  Понедельник, 12.06.2017, 15:33   
|  |   
|  
 
  
  
  
 | 
 
  
  
 | Статус: |  |   
 | Сообщений: | 666 |   
 | Регистрация: | 07.03.2016 |  |  |  |  |