Переспавн убитых квестовиков
Этот раздел можно пропустить, т.к. для переспавна не важно состояние НПС, жив, мертв или сгинул-потерялся - по spawn_id переспавнится в точку входа в игру.
Привет всем, перед тем, как сделать переспавн квестовиков, нужно убедится, действительно ли пропал нпс. Для этого ставьте ему маячок и посмотрите, где он. Для этого:
gamedata /scripts/ui/ui_main_menu
-----после ---------
function main_menu:OnKeyboard(dik, keyboard_action) --virtual function
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
-- local bind = dik_to_bind(dik)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then
if game_is_running() then
ui_mm_opt_add.check_options()
console:execute("main_menu off")
archievements.mm_opt()
end
------прописывем---------
elseif dik == DIK_keys.DIK_1 then --1 условное число, можете любую свободную букву прописать.
add_spot()
---------затем, после ------------
return true
end
------прописывем -------
function add_spot()
local sid = 6
local obj = alife():story_object(19004) --в кавычках пишем story_id с конфигов--game_story_ids--
if obj then
level.map_add_object_spot_ser(obj.id, "blue_location", obj:name())
else
get_console():execute("load ~~~ object with story_id "..tostring(sid).."not found")
end
end
Запуск игры, выход в меню и нажимаем 1, метка установится к нпс. В данном случае Архаре.
gamedata /scripts/ui/ui_main_menu
после
function main_menu:OnKeyboard(dik, keyboard_action) --virtual function
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
-- local bind = dik_to_bind(dik)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then
if game_is_running() then
ui_mm_opt_add.check_options()
console:execute("main_menu off")
archievements.mm_opt()
end
прописывем
elseif dik == DIK_keys.DIK_N then
perespawn()
после
return true
end
прописывем
function perespawn()
local obj
for i=1,65534 do
obj = alife():object(i)
if obj and obj:name() == "mil_stalker0012" then
alife():release(obj)
break
end
end
alife():create(7098)
end
Запуск игры, выход в меню и нажимаем N Псих будет на месте. Это на последний патч от 15.03.2023.
от @Kashafoch
Архара №1 patch 15.03.2023(это видимо "первый" Архара на Агропроме, Якута смотрим в конце списка):
if obj and obj:name() == "yakut_agro" then
alife():create(4262)
Архара №2 patch 15.03.2023(это Архара на Затоне):
if obj and obj:name() == "arhara_zaton" then
alife():create(24565)
Архара №3 patch 15.03.2023(есть еще какой-то третий Архара, видимо со сходки авторитетов):
if obj and obj:name() == "arh2_dell2_restrictor" then
alife():create(4206)
Боров patch 15.03.2023:
if obj and obj:name() == "val_lager_bandits_borov" then
alife():create(5188)
Кузнецов patch 15.03.2023:
if obj and obj:name() == "esc_bridge_soldier5" then
alife():create(3005)
Петруха patch 15.03.2023:
if obj and obj:name() == "esc_novice_attacker1" then
alife():create(2965)
Псих patch 15.03.2023:
if obj and obj:name() == "mil_stalker0012" then
alife():create(7098)
Сепатор patch 15.03.2023:
if obj and obj:name() == "esc_hunter_zaschita_2" then
alife():create(3678)
Шерстюк patch 15.03.2023:
if obj and obj:name() == "sak_military_stalker" then
alife():create(4651)
Якут patch 15.03.2023:
if obj and obj:name() == "yakut_agro2" then
alife():create(7017)
p.s. дальше добавляем только name и ID - функция везде одна и та же..
---===---