Прохождение Народная Солянка +ООП + МАК + ЧШ + Аддон Очаг Семьи
- С-Т
- Не в сети
- НОВИЧОК
- Сообщений: 50
- Спасибо получено: 9
вот от экзы наймитов
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ... shadow of chernobyl\gamedata\scripts\amk_mod.script:2469: attempt to call field 'biodetectorRemove' (a nil value)
Лакацию не указываю поскольку начиная с подземелья всё вылетает где-бы не взял
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Ilia__70
- Не в сети
- ВЕТЕРАН ЗOНЫ
- Сообщений: 1788
- Спасибо получено: 11200
Смотри под спойлером как исправить вылет.
Цитата
открой файл gamegata\scripts\amk_mod.script, найди в нем строку:
biodetector.biodetectorRemove() -- alen-fantom
и поставьте перед ней два знака "минус": "--". Должно получиться вот так:
-- biodetector.biodetectorRemove() -- alen-fantom
Ну это как вариант.
И прежде чем править, сохрани оригинальный файл.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- djkjlz
- Не в сети
- НОВИЧОК
- Сообщений: 106
- Спасибо получено: 40
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- dmitriym
- Не в сети
- ОПЫТНЫЙ
- Сообщений: 206
- Спасибо получено: 153
И еще вопросик, а где и когда заканчивается "Солянка"? Есть желание залезть в Пещеру, но боязно, что не все квесты "Солянки" выполнил.
Старый, спасибо за совет. Я не умею выкладывать сейвы.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- zima59
- Не в сети
- МОДЕРАТОР
- ЛЕГЕНДА ЗОНЫ
- Сообщений: 4504
- Спасибо получено: 29674
dmitriym, а ты до конца доиграл с Гавром? Свои вещи вернул? Если среди них нет того, о чем ты пишешь, значит и не будет. Набери в поисковике "Гид по Народной Солянке" , там всё расписано. Ну а если конкретно на твой вопрос, то Солянка заканчивается в Мертвом городе. В конце переходишь на Затон, но это всё, дальше фриплей. А в этой сборке далее сюжет Чернобыльский шахматист, Кровавый эндшпиль и вот после этого бы и надо начинать Очаг Семьи.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- mby
- Не в сети
- ВЕТЕРАН
- Сообщений: 621
- Спасибо получено: 420
Снова проблема на Затоне. Пытаюсь выйти, но не могу. Обозначенный на карте выход в Х-8 не работает, выхожу на Кордон и .... вылет. Вот лог:
Function : CBlender_default_aref::Compile
File : E:\stalker\patch_1_0004\xr_3da\xrRender_R1\Blender_default_aref.cpp
Line : 75
Description : <no expression>
Arguments : Not enought textures for shader, base tex: prop\prop_barbwire3
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- V7KING
- Не в сети
- ВЕТЕРАН ЗOНЫ
- Сообщений: 1709
- Спасибо получено: 11438
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ...С+ОП+ЧШ+Очаг Семьи\gamedata\scripts\state_mgr.script:197: C stack overflow
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Tirbah
- Не в сети
- ВЕТЕРАН ЗOНЫ
- Сообщений: 600
- Спасибо получено: 3342
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- viktor-156
- Не в сети
- НОВИЧОК
- Сообщений: 89
- Спасибо получено: 17
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- BbIDRA
- Не в сети
- НОВИЧОК
- Сообщений: 100
- Спасибо получено: 60
-- Адаптирован для Менеджера оружия. Rulix aka Bak от 2.07.09
-- Адатировал: Idler.
local upd_time
local upd_time1
local upd_time2
local upd_time3
local upd_time4
local table_sort = table.sort
local math_ceil = math.ceil
function init(obj)
xr_motivator.AddToMotivator(obj)
end
function actor_init(npc)
npc:bind_object(actor_binder(npc))
-- level_tasks.add_location(707,"blue_location","Лукаш")
-- level_tasks.add_location(702,"blue_location","Макс")
-- level_tasks.add_location(728,"blue_location","Повар")
end
local det_suit_id = nil
local game_difficulty_by_num = {
[0] = "gd_novice",
[1] = "gd_stalker",
[2] = "gd_veteran",
[3] = "gd_master"
}
lasthealth = 0
lasttime = 0
post_process = 0
local weapon_hide = false
-- local arts = false
class "actor_binder" (object_binder)
function actor_binder:__init (obj) super(obj)
self.bCheckStart = false
self.weather_manager = level_weathers.WeatherManager()
self.actor_detector = xr_detector.actor_detector()
self.is_saved = false
end
function actor_binder:net_spawn(data)
--amk.updateGameTime()
spawn_level_changer.remove_old_teleport()
printf("actor net spawn")
-- skunk.dbglog("actor net spawn")
zamok.restore()
babah.collectBombs()
level.show_indicators()
self.bCheckStart = true
self.weapon_hide = false -- спрятано или нет оружие при разговоре.
weapon_hide = false -- устанавливаем глобальный дефолтовый флаг.
if object_binder.net_spawn(self,data) == false then
-- skunk.dbglog("actor net spawn 1")
return false
end
-- skunk.dbglog("actor net spawn 2")
db.add_actor(self.object)
if self.st.disable_input_time == nil then
level.enable_input()
end
self.weather_manager:reset()
-- game_stats.initialize ()
if(actor_stats.add_to_ranking~=nil)then
actor_stats.add_to_ranking(self.object:id())
end
--' Загружаем настройки дропа
death_manager.init_drop_settings()
-- added by xStream for AMK miniSDK
if xrs_ai then
xrs_ai.actor_net_spawn(self)
end
if rx_ai then
rx_ai.actor_net_spawn()
end
amk.on_game_load(obj)
art_hit.net_spawn()
--===============================
--[[local bad_object_names = {"wpn_lr30053522", "wpn_lr30058409" } --"wpn_lr30025601", "wpn_lr30028817","wpn_lr30033589"
local i, se_name, se_obj
for i, se_name in ipairs(bad_object_names) do
se_obj = alife():object(se_name)
if se_obj then
news_manager.send_tip(db.actor,"Удалили глючный ствол:"..se_name,nil,nil,1000)
alife():release(se_obj, true)
end
end]]
--===============================
sak.add_tail()
braad_test.false_info()
-- end of addition
meceniy_work.main()
meceniy_utils.net_spawn_callback()
-- kostya_level --
spawn_teleport.spawn_teleport_exit()
spawn_teleport.spawn_teleport_hospital()
bind_det_arts.start_update()
netpacket_pda_id = netpacket_pda_create.create_pda()
return true
end
function actor_binder:net_destroy()
-- added by xStream for AMK miniSDK
amk.on_game_save(obj)
-- end of addition
if(actor_stats.remove_from_ranking~=nil)then
actor_stats.remove_from_ranking(self.object:id())
end
-- game_stats.shutdown ()
db.del_actor(self.object)
sr_light.clean_up ()
self.object:set_callback(callback.inventory_info, nil)
self.object:set_callback(callback.article_info, nil)
self.object:set_callback(callback.on_item_take, nil)
self.object:set_callback(callback.on_item_drop, nil)
--self.object:set_callback(callback.actor_sleep, nil)
self.object:set_callback(callback.task_state, nil)
self.object:set_callback(callback.level_border_enter, nil)
self.object:set_callback(callback.level_border_exit, nil)
self.object:set_callback(callback.take_item_from_box, nil)
if sr_psy_antenna.psy_antenna then
sr_psy_antenna.psy_antenna:destroy()
sr_psy_antenna.psy_antenna = false
end
valerich_treasures.net_destroy()
xr_sound.stop_all_sound_object()
if iniStatistic then
get_console():execute("load ~~~ amk.dump_table(iniLines):")
amk.dump_table(iniLines)
get_console():execute("load ~~~ amk.dump_table(iniOtherLines):")
amk.dump_table(iniOtherLines)
get_console():execute("load ~~~ amk.dump_table(iniStat):")
local t = {}
for sect, count in pairs(iniStat) do
table.insert(t, {sect, count})
end
table_sort(t, sortStat)
amk.dump_table(t)
end
object_binder.net_destroy(self)
end
function sortStat(t1, t2)
return t1[2] > t2[2]
end
function actor_binder:reinit()
object_binder.reinit(self)
local npc_id = self.object:id()
db.storage[npc_id] = { }
self.st = db.storage[npc_id]
self.st.pstor = nil
self.next_restrictors_update_time = -10000
self.object:set_callback(callback.inventory_info, self.info_callback, self)
self.object:set_callback(callback.article_info, self.article_callback, self)
self.object:set_callback(callback.on_item_take, self.on_item_take, self)
self.object:set_callback(callback.on_item_drop, self.on_item_drop, self)
self.object:set_callback(callback.trade_sell_buy_item, self.on_trade, self) -- for game stats
--self.object:set_callback(callback.actor_sleep, self.sleep_callback, self)
self.object:set_callback(callback.task_state, self.task_callback, self)
--self.object:set_callback(callback.map_location_added, self.map_location_added_callback, self)
self.object:set_callback(callback.level_border_enter, self.level_border_enter, self)
self.object:set_callback(callback.level_border_exit, self.level_border_exit, self)
self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)
self.object:set_callback(callback.use_object, self.on_use_object, self)
self.object:set_callback(callback.death, self.death_callback, self)
end
function actor_binder:death_callback(victim, who)
if victim:id() == db.actor:id() then
difficulty_manager.deathStatCollect()
end
end
function actor_binder:take_item_from_box(box, item)
if string.sub(item:section(),1,10)=="val_zapis_" then
valerich_treasures.spawn_next( tonumber(string.sub(item:section(),11,-1)) )
end
--Proper72 удаление рюкзаков
if box:is_inv_box_empty() then
if (string.sub(box:section(),2,15)=="_inventory_box" and string.find(rx_utils.read_from_ini(nil, box:section(), "visual", "", 1),"item_rukzak")) or string.sub(box:section(),1,11)=="val_taynik_" then
level.start_stop_menu(level.main_input_receiver(), true)
alife():create("treasure_item",box:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),0)
alife():release(alife():object(box:id()))
end
end
-- Proper72 end
local story_id = box:story_id()
if story_id == nil then
return
end
treasure_manager.take_item_from_box(box, story_id)
zamok.remove(box, item)
--AMK UTILS--
amk.on_item_take_from_box(box,item)
amk_utils.actor_item_from_box(box, item)
--AMK UTILS--
end
function actor_binder:level_border_enter(npc, info_id)
self.actor_detector:actor_enter()
--AMK UTILS--
amk_utils.actor_level_border_enter(npc, info_id)
--AMK UTILS--
end
function actor_binder:level_border_exit(npc, info_id)
self.actor_detector:actor_exit()
--AMK UTILS--
amk_utils.actor_level_border_exit(npc, info_id)
--AMK UTILS--
end
function actor_binder:info_callback(npc, info_id)
printf("*INFO*: npc='%s' id='%s'", npc:name(), info_id)
--' Сюжет
level_tasks.proceed(self.object)
-- Отметки на карте
hidden_slots.on_info(info_id)
level_tasks.process_info_portion(info_id)
--AMK UTILS--
amk.on_info(npc,info_id)
amk_utils.actor_info(npc, info_id)
inventory.on_inventory_info(info_id)
--AMK UTILS--
if npc:id() == db.actor:id() then
meceniy_spawn.respawn(info_id)
end
end
function actor_binder:on_trade (item, sell_bye, money)
if sell_bye == true then
game_stats.money_trade_update (money)
else
game_stats.money_trade_update (-money)
end
end
function actor_binder:article_callback(npc, group, name)
--printf("article_callback [%s][%s]", group, name)
if device().precache_frame >1 then return end
if group == "Diary" then
news_manager.send_encyclopedy("diary", group)
else
news_manager.send_encyclopedy("encyclopedy", group)
end
--AMK UTILS--
amk.on_info(npc,info_id)
amk_utils.actor_article(npc, group, name)
--AMK UTILS--
end
function actor_binder:on_item_take (obj)
level_tasks.proceed(self.object)
--game_stats.update_take_item (obj, self.object)
local item = obj
--AMK UTILS--
amk.on_item_take(obj)
amk_utils.actor_item_take(obj)
if obj:clsid() == clsid.wpn_ammo then
dunin_ammo.on_take(obj)
end
sak.check_used_item(obj)
braad_test.checking_use_item(obj)
if xrs_ai then xrs_ai.actor_item_take(obj)
end
art_hit.hit_by_art(obj)
--AMK UTILS--
babah.on_item_take(obj)
inventory.on_item_take(item)
spawn_zombi.checking_taken_item(obj)
spawn_zombi.checking_taken_item2(obj)
spawn_zombi.checking_taken_item3(obj)
spawn_zombi.checking_taken_item4(obj)
spawn_zombi.checking_taken_item5(obj)
spawn_zombi.checking_taken_item6(obj)
spawn_zombi.checking_taken_item7(obj)
spawn_zombi.checking_taken_item8(obj)
spawn_zombi.checking_taken_item9(obj)
spawn_zombi.checking_taken_item10(obj)
spawn_zombi.checking_taken_item11(obj)
spawn_zombi.checking_taken_item12(obj)
spawn_zombi.checking_taken_item13(obj)
spawn_zombi.checking_taken_item14(obj)
spawn_zombi.checking_taken_item15(obj)
spawn_zombi.checking_taken_item16(obj)
spawn_zombi.checking_taken_item17(obj)
spawn_zombi.checking_taken_item18(obj)
spawn_teleport.checking_taken_item19(obj)
spawn_teleport.checking_taken_item20(obj)
spawn_teleport.checking_taken_item21(obj)
spawn_teleport.checking_taken_item22(obj)
new_spawn.checking_taken_item23(obj)
spawn_teleport.checking_taken_item24(obj)
spawn_teleport.checking_taken_item25(obj)
spawn_teleport.checking_taken_item26(obj)
spawn_teleport.checking_taken_item27(obj)
spawn_teleport.checking_taken_item28(obj)
spawn_restrictor.checking_taken_item29(obj)
spawn_restrictor.checking_taken_item30(obj)
spawn_teleport.checking_taken_item31(obj)
spawn_restrictor.checking_taken_item32(obj)
spawn_teleport.checking_taken_item33(obj)
spawn_teleport.checking_taken_item34(obj)
spawn_teleport.checking_taken_item35(obj)
spawn_teleport.checking_taken_item36(obj)
new_spawn.checking_taken_item37(obj)
arhara_dialog.checking_taken_item38(obj)
spawn_zombi.checking_taken_item39(obj)
spawn_zombi.checking_taken_item40(obj)
meceniy_utils.on_item_take_callback(obj)
spawn_zombi.checking_taken_item41(obj)
spawn_zombi.checking_taken_item42(obj)
spawn_zombi.checking_taken_item43(obj)
arhara_dialog.checking_taken_item44(obj)
arhara_dialog.checking_taken_item45(obj)
arhara_dialog.checking_taken_item46(obj)
arhara_dialog.checking_taken_item47(obj)
arhara_dialog.checking_taken_item48(obj)
arhara_dialog.checking_taken_item49(obj)
arhara_dialog.checking_taken_item50(obj)
arhara_dialog.checking_taken_item51(obj)
arhara_dialog.checking_taken_item52(obj)
arhara_dialog.checking_taken_item53(obj)
arhara_dialog.checking_taken_item54(obj)
arhara_dialog.checking_taken_item55(obj)
arhara_dialog.checking_taken_item56(obj)
arhara_dialog.checking_taken_item57(obj)
arhara_dialog.checking_taken_item58(obj)
valerich_treasures.on_item_take(obj) -- Тайники Valerich'a
-- Proper70 kostya
kostya_dialog.checking_taken_item59(obj)
-- Proper70 Bitva KL
braad_test.checking_taken_item60(obj)
-- Proper71 docs
kostya_dialog.checking_taken_item61(obj)
-- Proper70 strelok
kostya_dialog.checking_taken_item62(obj)
-- Proper70 end
chess.item_take(obj)
if rx_ai then
rx_ai.actor_item_take(obj)
end
end
function actor_binder:on_item_drop (obj)
babah.li(obj)
-- Vergas ogg-player
player_ogg.lose_item(obj)
level_tasks.proceed(self.object)
--game_stats.update_drop_item (obj, self.object)
-- if level.vertex_position(db.actor:level_vertex_id()):distance_to(db.actor:position())>1 then
-- amk.mylog("Здесь нет вертексов")
-- else
-- amk.mylog("Вертекс "..db.actor:level_vertex_id().." "..db.actor:game_vertex_id())
-- end
--AMK UTILS--
amk.on_item_drop(obj)
amk_utils.actor_item_drop(obj)
--AMK UTILS--
inventory.on_item_drop(obj)
sak.check_droped_item(obj)
braad_test.drop_actor(obj)
braad_test.drop_lim(obj)
--Избавляемся от Зомбирования--
meceniy_work.on_item_use(obj)
meceniy_utils.on_item_drop_callback(obj)
spawn_level_changer.checking_droped_obj(obj)
--[[spawn_level_changer.checking_droped_item(obj)
spawn_level_changer.checking_droped_item2(obj)
spawn_level_changer.checking_droped_item3(obj)
spawn_level_changer.checking_droped_item4(obj)
spawn_level_changer.checking_droped_item5(obj)
spawn_level_changer.checking_droped_item6(obj)
spawn_level_changer.checking_droped_item7(obj)
spawn_level_changer.checking_droped_item8(obj)
spawn_level_changer.checking_droped_item11(obj)
spawn_level_changer.checking_droped_item12(obj)
spawn_level_changer.checking_droped_item13(obj)
spawn_level_changer.checking_droped_item14(obj)]]
--spawn_level_changer.checking_droped_item10(obj)
zamok.add(obj)
chess.on_item_drop(obj)
end
function actor_binder:task_callback(_task, _objective, _state)
task_manager.task_callback(_task:get_id(), _objective:get_idx(), _state)
if _objective:get_idx() == 0 then
if _state == task.fail then
news_manager.send_task(db.actor, "fail", _task, _objective)
elseif _state == task.completed then
task_manager.reward_by_task(_task)
news_manager.send_task(db.actor, "complete", _task, _objective)
else
news_manager.send_task(db.actor, "new", _task, _objective)
end
else
if _task:get_objective(0):get_state() == task.in_progress then
news_manager.send_task(db.actor, "update", _task, _objective)
end
end
--AMK UTILS--
amk_utils.actor_task(_task, _objective, _state)
--AMK UTILS--
end
function actor_binder:map_location_added_callback(spot_type_str, object_id)
if (false==app_ready()) or (device().precache_frame>1) then return end
--'news_manager.send_task(db.actor, "new")
end
-- malandrinus
--watch_value = 0
-- malandrinus
scopeUsed = false
function actor_binder:update(delta)
-- malandrinus
-- watch_value = game.time()
-- /malandrinus
chess.update()
amk.oau_watchdog=200
amk.oau_reason="actor_binder:update"
--amk.updateGameTime()
amk.oau_watchdog=2001
object_binder.update(self, delta)
amk.oau_watchdog=199
local time = time_global()
game_stats.update (delta, self.object)
if db.actor:item_in_slot(6) and db.actor:item_in_slot(6):section() == "exo_doktor_outfit" then
if not det_suit_id then
if db.actor:object("detector_suit") then
det_suit_id = db.actor:object("detector_suit"):id()
else
det_suit_id = (alife():create("detector_suit",db.actor:position(),
db.actor:level_vertex_id(),db.actor:game_vertex_id(),
db.actor:id())).id
end
end
else
if det_suit_id and alife():object(det_suit_id) then
alife():release(alife():object(det_suit_id),true)
det_suit_id = nil
end
end
local fov = device().fov
local wpn
if fov < 35 and xr_logic.pstor_retrieve(db.actor, "use_scope", 0) == 0 then
wpn = db.actor:item_in_slot(db.actor:active_slot())
if wpn and wpn:section() == "wpn_crossbow" then
level.add_pp_effector("bast.ppe", 1034, true)
get_console():execute ("r2_sun_lumscale_amb 3")
get_console():execute ("r2_mblur 0.6")
xr_logic.pstor_store(db.actor, "use_scope", 1)
end
elseif fov > 35 and xr_logic.pstor_retrieve(db.actor, "use_scope", 0) == 1 then
xr_logic.pstor_store(db.actor, "use_scope", 0)
level.remove_pp_effector(1034)
get_console():execute ("r2_sun_lumscale_amb 1")
get_console():execute ("r2_mblur 0.")
end
if upd_time3 == nil then
upd_time3 = time + 500
elseif upd_time3 < time then
upd_time3 = time + 500
local accuracy = math_ceil(db.actor:accuracy()*1000)
if accuracy == 1 then
if not scopeUsed then
local item = db.actor:active_item()
if item then
--get_console():execute("load ~#I#: db.actor:active_item():section()="..tostring(item:section()))
if item:section() == "wpn_binoc" then
scopeUsed = true
elseif IAmAWeapon[item:clsid()] then
local t = amk.get_weapon_data(alife():object(item:id()))
scopeUsed = (bit_and(t.addon_flags, 1) == 1 or rx_utils.get_addon_status(item, "sc") == 1)
--amk.dump_table(t)
end
end
end
else
scopeUsed = false
end
end
-- $DreamMod апдейт схемы сна
if sleep_manager.is_sleep_active() and xr_conditions.actor_dead() then
xr_logic.issue_event(db.actor, db.storage[db.actor:id()]["ar_sleep"], "update")
end
amk.oau_watchdog=198
-- апдейт погоды
self.weather_manager:update()
amk.oau_watchdog=197
-- апдейт схемы детектора
self.actor_detector:update()
amk.oau_watchdog=196
--ms_ai.sleep_manager()
amk.oau_watchdog=195
-- апдейт звуковой схемы актера
xr_sound.update_actor()
amk.oau_watchdog=194
meceniy_work.set_invisible()
amk.oau_watchdog=193
-- meceniy_utils.on_actor_update_callback()
-- by Monnoroch
if upd_time == nil then
upd_time = time + 10000
elseif upd_time < time then
upd_time = time + 10000
monnoroch.upd_time(time)
end
amk.oau_watchdog=1931
if upd_time1 == nil then
upd_time1 = time + 1000
elseif upd_time1 < time then
upd_time1 = time + 1000
-- meceniy_work.set_invisible()
meceniy_utils.on_actor_update_callback()
amk.oau_watchdog=1932
sak.show_time()
amk.oau_watchdog=1933
arc_main.actor_update()
amk.oau_watchdog=1934
meceniy_work.mainw()
end
amk.oau_watchdog=1935
-- sak.out_teleport() --в net_spawn() этому место!
if upd_time2 == nil then
upd_time2 = time + 5000
elseif upd_time2 < time then
upd_time2 = time + 5000
if not self.object:is_talking() then
dunin_ammo.on_update()
end
amk.oau_watchdog=1936
sak.nepis_umer()
amk.oau_watchdog=1937
braad_test.dead_npc()
amk.oau_watchdog=1938
braad_test.check_info()
amk.oau_watchdog=1939
braad_test.new_info()
amk.oau_watchdog=19391
braad_test.kot_info()
amk.oau_watchdog=19392
braad_test.forest_info()
amk.oau_watchdog=19393
braad_test.grib_respawn()
amk.oau_watchdog=19394
braad_test.update_new()
amk.oau_watchdog=19395
braad_test.kot_update()
end
amk.oau_watchdog=192
valerich_treasures.update()
art_hit.update()
--
ARENA_EXTENSION_MOD
aem_manager.get_aem():update()
--
ARENA_EXTENSION_MOD
amk.oau_watchdog=191
--' Проверка потери жизни
--[[
if self.object.health - lasthealth > 0.001 or
self.object.health - lasthealth < -0.001 then
printf("%f | %f", self.object.health, self.object.health - lasthealth, game.time() - lasttime)
lasthealth = self.object.health
lasttime = game.time()
end
]]
-- Обновление отключения ввода с клавиатуры.
if self.st.disable_input_time ~= nil and
game.get_game_time():diffSec(self.st.disable_input_time) >= self.st.disable_input_idle
then
level.enable_input()
self.st.disable_input_time = nil
end
-- Обновление сна с переносом чувака в указанную позицию
if self.st.sleep_relocate_time ~= nil and
game.get_game_time():diffSec(self.st.sleep_relocate_time) >= self.st.sleep_relocate_idle
then
self.object:set_actor_position(self.st.sleep_relocate_point)
local dir = self.st.sleep_relocate_point:sub(self.st.sleep_relocate_look)
self.object:set_actor_direction(dir:getH())
self.st.sleep_relocate_time = nil
end
-- Апдейт прятание оружия игрока во время диалога
if weapon_hide == true or self.object:is_talking() then
if self.weapon_hide == false then
self.object:hide_weapon()
self.weapon_hide = true
end
else
if self.weapon_hide == true then
self.object:restore_weapon()
self.weapon_hide = false
end
end
amk.oau_watchdog=191
-- обновление рестрикторов, которые под логикой, срабатывает через интервалы времени
if self.next_restrictors_update_time < time then
bind_restrictor.actor_update(delta)
-- Апдейтим наш телепорт (Kostya_level)
bind_mteleport.actor_update(delta)
self.next_restrictors_update_time = time + 200
task_manager.actor_update()
end
amk.oau_watchdog=190
-- обновление постпроцессов
if post_process ~= 0 then
if post_process:update () == true then
post_process = 0
end
end
-- обновление пси-антенны
if sr_psy_antenna.psy_antenna then
sr_psy_antenna.psy_antenna:update(delta)
end
--[[ local hud_demo = get_hud()
local custom_static_demo = hud_demo:GetCustomStatic("cs_demo_play")
if custom_static_demo == nil then
hud_demo:AddCustomStatic("cs_demo_play", true)
hud_demo:GetCustomStatic("cs_demo_play"):wnd():SetTextST("st_demo_play")
end
]]
inventory.update()
--' Вывод сообщения о большой радиации
if self.object.radiation >= 0.7 then
local hud = get_hud()
local custom_static = hud:GetCustomStatic("cs_radiation_danger")
if custom_static == nil then
hud:AddCustomStatic("cs_radiation_danger", true)
hud:GetCustomStatic("cs_radiation_danger"):wnd():SetTextST("st_radiation_danger")
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("cs_radiation_danger")
if custom_static ~= nil then
hud:RemoveCustomStatic("cs_radiation_danger")
end
end
amk.oau_watchdog=189
-- if not self.object:is_talking() then
-- dunin_ammo.on_update()
-- end
amk.oau_watchdog=188
if self.bCheckStart then
printf("SET DEFAULT INFOS")
if not has_alife_info("storyline_actor_start") and
(level.name() == "l01_escape")
then
self.object:give_info_portion("storyline_actor_start")
_G.g_start_avi = true
printf("*AVI* RUN START AVI")
end
-- if not has_alife_info("encyclopedy") then
-- self.object:give_info_portion("encyclopedy")
-- end
if not has_alife_info("global_dialogs") then
self.object:give_info_portion("global_dialogs")
end
if not has_alife_info("level_changer_icons") then
self.object:give_info_portion("level_changer_icons")
end
level_tasks.add_lchanger_location()
self.bCheckStart = false
end
amk.oau_watchdog=187
--AMK UTILS--
amk.on_actor_upade(delta)
-- amk_utils.actor_update(delta)
--AMK UTILS--
amk.oau_watchdog=186
-- amk.oau_reason="actor_binder:update"
-- sak.out_teleport()
-- amk.oau_watchdog=185
-- sak.nepis_umer()
-- amk.oau_watchdog=184
-- braad_test.dead_npc()
-- braad_test.check_info()
-- braad_test.new_info()
-- braad_test.kot_info()
-- braad_test.forest_info()
-- braad_test.grib_respawn()
-- braad_test.update_new()
-- braad_test.kot_update()
-- amk.oau_watchdog=183
-- added by Red75. Контроль за переполнением
if self.warning then
self.warning=nil
get_hud():AddCustomStatic("hud_save_warning")
local wnd=get_hud():GetCustomStatic("hud_save_warning"):wnd()
if self.critical==1 then
wnd:SetTextST(game.translate_string("amk_warn_trans"))
self.critical=nil
elseif self.critical==2 then
wnd:SetTextST(game.translate_string("amk_warn_trans_critical"))
self.critical=nil
else
wnd:SetTextST(game.translate_string("amk_warn_attention"))
end
elseif self.wt and self.wt<time_global() then
self.wt=nil
if get_hud():GetCustomStatic("hud_save_warning") then
get_hud():RemoveCustomStatic("hud_save_warning")
end
end
amk.oau_watchdog=182
if xrs_ai then xrs_ai.actor_update(delta) end
if rx_ai then rx_ai.actor_update() end
amk.oau_watchdog=181
-- end of addition
if biodetector then biodetector.update() end
amk.oau_watchdog=180
-- meceniy_work.mains() --/обьекты
-- amk.oau_watchdog=179
-- meceniy_work.mainw() --/Зомбирование
-- amk.oau_watchdog=179
-- by Monnoroch
-- if upd_time == nil then
-- upd_time = time + 10000
-- elseif upd_time < time then
-- upd_time = time + 10000
-- monnoroch.upd_time(time)
-- end
-- by Monnoroch
--проверка зависания биндеров НПЦ и мобов раз в 0,5сек
--закомментировано на случай разбора полётов
--[[ if upd_time3 == nil then
upd_time3 = time + 500
elseif upd_time3 < time then
upd_time3 = time + 500
if db and db.storage then
for k,v in pairs(db.storage) do
if v.us ~= nil and v.us ~= 0 then
abort("binder(%s) zavis(%s)", db.creatures[k]:name(), v.us)
v.us = nil
break
end
end
self.is_saved = false
end
end]]
-- drrr.dropgg()
--[[
Proper70 keylogger
if upd_time5 == nil then
upd_time5 = time + 500
elseif upd_time5 < time then
keylogger.update()
end
Proper70 end]]
if upd_time4 == nil then
upd_time4 = time + 500
elseif upd_time4 < time then
upd_time4 = time + 500
doc_viewer.update()
amk.oau_watchdog=181
babah.update(delta)
amk.oau_watchdog=182
stco.update()
-- if upd_time5 == nil then
-- upd_time5 = time + 1500
-- elseif upd_time5 < time then
-- upd_time5 = time + 1500
--он и так вешается на быстрый вызов с помощью db.actor:set_fastcall(update, db.actor)
--bind_det_arts.update()
amk.oau_watchdog=183
end
--[[тестовый спавн детекторов в инвентаре актора
alife():create('det_artefact_indy', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
alife():create('detektor_amorf', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
alife():create('det_artefact_super', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end]]
amk.oau_watchdog=0
amk.oau_reason=""
--[[
Proper70
Вывод инвормации level_vertex_id, game_vertex_id, pos
if true then
local hud = get_hud()
local cs = hud:GetCustomStatic("cs_debug" )
if cs == nil then
hud:AddCustomStatic("cs_debug", true)
cs = hud:GetCustomStatic("cs_debug" )
end
local lvid, gvid = db.actor:level_vertex_id(), db.actor:game_vertex_id()
local pos, dir = db.actor: position(), db.actor:direction()
local pos2 = level.vertex_position(lvid)
local valid = pos2:distance_to(pos) <= 0.7
local msg = string.format("lvid: %d\\n", lvid) ..
string.format("gvid: %d\\n", gvid) ..
string.format("pos: %f,%f,%f\\n", pos.x, pos.y, pos.z) ..
string.format("dir: %f,%f,%f\\n", dir.x, dir.y, dir.z) ..
string.format("valid: %s", tostring(valid))
if cs ~= nil then
cs:wnd():SetText(msg)
end
end]]
end
function actor_binder:save(packet)
if rx_ai then rx_ai.actor_save(packet) end
art_hit.save()
local pk1=fake_net_packet.fake_net_packet()
self:save_old(pk1)
amk.mylog("Packet size is "..pk1:w_tell())
if pk1:w_tell()>7500 then
self.warning=true
self.critical=1
self.wt=time_global()+60000
amk.emergency_cleanup()
self:save_old(packet)
amk.mylog("Actor packet size is "..packet:w_tell().."!")
-- amk.send_tip("Actor packet size critical=2 >7500 ","Размер нетпакета ГГ критический:"..pk1:w_tell(),0,15,"gen_info") -- это добавляем
amk.emergency_restore()
elseif pk1:w_tell()>6000 then
self.warning=true
self.wt=time_global()+60000
self:save_old(packet)
-- amk.send_tip("Actor packet size critical=1 >6000 ","Размер нетпакета ГГ допустимый:"..pk1:w_tell(),0,15,"gen_info") -- это добавляем
else
self:save_old(packet)
self.wt=time_global()
-- amk.send_tip("Actor packet size <6000 ","Размер нетпакета ГГ мал. Всё ОК:"..pk1:w_tell(),0,15,"gen_info") -- это добавляем
end
self.is_saved = true
end
function actor_binder:save_old(packet)
local save_treasure_manager = true
printf("actor_binder:save(): self.object:name()='%s'", self.object:name())
object_binder.save(self, packet)
--' Сохраняем уровень сложности
if save_treasure_manager == true then
packet:w_u8(level.get_game_difficulty() + 128)
else
packet:w_u8(level.get_game_difficulty())
end
--' Сохраняем данные об отключенном вводе
if self.st.disable_input_time == nil then
packet:w_bool(false)
else
packet:w_bool(true)
utils.w_CTime(packet, self.st.disable_input_time)
end
amk.oAmkLauncher:SaveData(self.object)
xr_logic.pstor_save_all(self.object, packet)
self.weather_manager:save(packet)
sr_psy_antenna.save( packet )
if save_treasure_manager == true then
treasure_manager.save(packet)
end
task_manager.save(packet)
self.actor_detector:save(packet)
end
function actor_binder:load(reader)
printf("actor_binder:load(): self.object:name()='%s'", self.object:name())
object_binder.load(self, reader)
printf("actor_binder:object_binder.load(): self.object:name()='%s'", self.object:name())
--' Загружаем уровень сложности
local game_difficulty = reader:r_u8()
local load_treasure_manager = false
if game_difficulty >= 128 then
game_difficulty = game_difficulty - 128
load_treasure_manager = true
end
get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])
if reader:r_eof() then
abort("SAVE FILE IS CORRUPT actor_binder:load "..self.object:name().." завис актор - сушите весла!")
end
local stored_input_time = reader:r_u8()
if stored_input_time == true then
self.st.disable_input_time = utils.r_CTime(reader)
end
xr_logic.pstor_load_all(self.object, reader)
amk.oAmkLauncher:LoadData(self.object)
self.weather_manager:load(reader)
sr_psy_antenna.load(reader)
if load_treasure_manager == true then
treasure_manager.load(reader)
end
task_manager.load(reader)
self.actor_detector:load(reader)
if xr_logic.pstor_retrieve(self.object,"emerg",false) then -- нельзя использовать amk.load_varible(), так как db.actor ещё не определён
self.warning=true
self.critical=2
self.wt=time_global()+60000
end
end
--старт префетча звуков
--if string.find(command_line(), "-noprefetch") == nil then
-- sound_prefetch.prefetch_sounds()
--end
-- Weapon functions
function hide_weapon()
weapon_hide = true
end
function restore_weapon()
weapon_hide = false
end
--// this is test for section iteration
--/**
local function test_section_iteration(file_name, section_name)
printf ("file : %s",file_name)
printf ("section : %s",section_name)
local file = ini_file(file_name)
local n = file:line_count(section_name)
printf ("lines : %d",n)
local id, value = "", "", result
for i=0,n-1 do
result, id, value = file:r_line(section_name,i,"","")
printf ("line %d : %s = %s",i,id,value)
end
end
test_section_iteration("system.ltx","space_restrictor")
--/**/
function actor_binder:on_use_object(obj)
--medkit_use.lose_item(obj)
meceniy_outfit.on_item_drop(obj)
zvuki.use_snd(obj)
end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- zima59
- Не в сети
- МОДЕРАТОР
- ЛЕГЕНДА ЗОНЫ
- Сообщений: 4504
- Спасибо получено: 29674
if (false==app_ready()) or (device().precache_frame>1) then return end
--'news_manager.send_task(db.actor, "new")
end
-- malandrinus
--watch_value = 0
-- malandrinus
scopeUsed = false
function actor_binder:update(delta)
Только не забывай перед тем как править файл его скопировать. Не получится - пришли мне свой bind_stalker.scripts только нужен сам файл, а не скопированный текст, что ты здесь выложил.
viktor-156, диалог ты до конца читал? Вот и иди к дому, где наймы обычны сидят. Ну а дальше собачки нападут и танки монолита. Вот где танки бегают в этих камнях и ищи.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Ilia__70 Спс файлик я так понимаю в bin с заменой?
Все заработало!!! еще раз спс.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Ilia__70
- Не в сети
- ВЕТЕРАН ЗOНЫ
- Сообщений: 1788
- Спасибо получено: 11200
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- mby
- Не в сети
- ВЕТЕРАН
- Сообщений: 621
- Спасибо получено: 420
В западной части рыжего леса. А лучше посмотри на ютубе "Тайник Коллекционера на холмах Радара". Поставь gamedata этой правки - Все телепорты видимые, проще искать будет.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- goblin777
- Не в сети
- МАСТЕР
- Сообщений: 451
- Спасибо получено: 640
[error]Expression : fatal error
[error]Function : xrServer::Process_update
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_update.cpp
[error]Line : 37
[error]Description : <no expression>
[error]Arguments : Beer from the creator of 'O_ACTOR
Поменял actor.ltx на родной из 10004, то же самое.
Если кому не трудно, скиньте актора из игры.
ArtMoney уже использовал в самом начале игры. Может, деньги обнулить? Или всё необратимо?Да не причем тут actor. Вылет рандомный. Если не используешь трейнер, ArtMoney то достаточно переиграть с другой сохранки.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Ilia__70
- Не в сети
- ВЕТЕРАН ЗOНЫ
- Сообщений: 1788
- Спасибо получено: 11200
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- goblin777
- Не в сети
- МАСТЕР
- Сообщений: 451
- Спасибо получено: 640
Буду очень-преочень признателен!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- дядяВ
- Не в сети
- ВЕТЕРАН ЗOНЫ
- ЛЕГЕНДА ЗОНЫ
- Сообщений: 2151
- Спасибо получено: 16421
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- djkjlz
- Не в сети
- НОВИЧОК
- Сообщений: 106
- Спасибо получено: 40
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Сталкеров в Зоне
|