Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Jeka81, Будьте проще: 1. Спавните этого чувака в скваде из одного НПС. 2. Делайте логику перемещения в рестрикторе. 3. Удалите сквад со старого смарта (ну или если очень нужно телепортируйте сквад). 4. Создайте сквад на новом смарте. В обоих вариантах должен быть правильно указан target_smart сквада.
Сообщение отредактировал denis2000 - Понедельник, 12.03.2018, 14:03
Здравтствуйте, мы тут с товарищем пытаемся сделать эффект кровотечения скриптом, мы вставили этот скрипт но он вылетает и краснеет не от кровотечения, а при уроне. Не может ли кто нибудь посмотреть и указать на ошибку или помочь ?
function on_game_start() RegisterScriptCallback("actor_on_update",update) end local often_upd_time function update() if db.actor then local tg = time_global() if tg > (often_upd_time or 50) then often_upd_time = tg+120 blood() end end end local actor_last_health = 0 local bloodtime = 0 local bloodtimeb = 0 local isbleeding = "no" local countblood = 0 function blood() local hud = get_hud() if db.actor:alive() then local current_health = math.floor(db.actor.health*100) local tg = time_global() if tg > bloodtime then if isbleeding == "stopit" then if hud:GetCustomStatic("hud_blood"..countblood) then hud:RemoveCustomStatic("hud_blood"..countblood) end countblood = countblood-1 if countblood == 0 then isbleeding = "no" end bloodtime = time_global()+110 else if actor_last_health ~= 0 and actor_last_health > current_health and db.actor.radiation < 0.12 then if current_health < math.random(100) then isbleeding = "yes" end level.add_pp_effector("bloody.ppe",2010,false) end if isbleeding == "yes" then bloodtime = time_global()+math.random(500,2000) else bloodtime = time_global()+math.random(2000,5000) end actor_last_health = current_health end end if tg > bloodtimeb and isbleeding == "yes" then bloodtimeb = time_global()+130 countblood = countblood+1 hud:AddCustomStatic("hud_blood"..countblood) if countblood == 4 then isbleeding = "stopit" end end else for i=1,4 do if hud:GetCustomStatic("hud_blood"..i) then hud:RemoveCustomStatic("hud_blood"..i) end end end end
Есть где-то инфа или урок по генерации диалогов через скрипт? Или я плохо ищу? На инсайде статья по этому поводу не дописана. В Stalker_ScriptEditor есть функция - создать диалог. Она генерирует это:
function init_traveler_dialog(dialog) local npc = db.actor local npc_community = "stalker" --npc:character_community()
local actor_phrase = dialog:AddPhrase("dm_traveler_what_are_you_doing", "0", "", -10000) local actor_script = actor_phrase:GetPhraseScript()
local npc_phrase = dialog:AddPhrase("if you see this - this is bad", "1", "0", -10000) local npc_phrase_script = npc_phrase:GetPhraseScript() npc_phrase_script:SetScriptText("travel_manager.squad_action_description")
-- Может ли игрок пойти с ними actor_phrase = dialog:AddPhrase("dm_traveler_can_i_go_with_you", "11", "1", -10000) actor_script = actor_phrase:GetPhraseScript() actor_script:AddPrecondition("travel_manager.squad_on_move")
-- Формирование таргетов для проводников local travel_class = get_travel_class() for k,v in pairs(travel_class.smart_travels) do actor_phrase = dialog:AddPhrase(game.translate_string(v.name)..".", v.phrase_id, "121", -10000) actor_script = actor_phrase:GetPhraseScript() actor_script:AddPrecondition("travel_manager.travel_condlist")
npc_phrase = dialog:AddPhrase("if you see this - this is bad", v.phrase_id.."_1", v.phrase_id, -10000) npc_phrase_script = npc_phrase:GetPhraseScript() npc_phrase_script:SetScriptText("travel_manager.get_travel_cost")
-- Игрок выходит из диалога actor_phrase = dialog:AddPhrase("dm_traveler_bye", "13", "1", -10000) end
При этом диалог формируется структурно так-же как и в dialogs.xml, но используя движковые методы: dialog:AddPhrase(text, next_id, cuurent_id,num) где text - текст (аналог <text></text>), next_id - ид следующей фразы (аналог <next></next>), cuurent_id - ид текушей фразы (аналог <phrase id="">) script:AddPrecondition(link_precondition) где link_precondition - ссылка на скрипт предусловия (аналог <precondition></precondition>) script:AddAction(link_action) где link_action - ссылка на скрипт выполняемый при выборе фразы (аналог <action></action>). и т.д.
Сообщение отредактировал denis2000 - Вторник, 13.03.2018, 11:02
В некоторых модах на ЗП видел такую реализацию: Есть подсказки как такое реализовать на чистом ЗП? Или хотя бы напомните, в каких модах я мог такое видеть? Памяти нет совсем Спасибо заранее!