Skocz do zawartości

Wylot do pulpitu po rozpoczęciu nowej gry - Can't open section 'wpn_mossberg590'


Rekomendowane odpowiedzi

Witajcie!

Po wielu zmarnowanych godzinach i trzech podejściach w ciągu kilku miesięcy, udało mi się wreszcie uruchomić grę z Soljanką. Jednak moja radość długo nie trwała, bo po rozpoczęciu nowej gry po paru sekundach wywala do pulpitu i pojawia się monit o tym, że aplikacja została nieoczekiwanie zamknięta. Wersja gry to 1.0004, system to Windows 7 64-bit. Ramu sześć giga, procesor AMD E2-3000M z zintegrowaną grafiką ATI HD 6380G (zintegrowana nie znaczy zła, bo ta jest całkiem niezła). Gram na cracku, bo do szału doprowadza mnie hałas napędu w laptopie. Mod instalowany na świeżo zainstalowanej grze, wszystkie aktualizacje i spolszczenie zainstalowane. Dodam, że vanilla działa jak powinna. Oto log:

FATAL ERROR[error]Expression    : fatal error[error]Function      : CInifile::r_section[error]File          : E:stalkerpatch_1_0004xrCoreXr_ini.cpp[error]Line          : 342[error]Description   : <no expression>[error]Arguments     : Can't open section 'wpn_mossberg590'stack trace:

Mi to wygląda na błąd związany z bronią, może ktoś by podesłał inną kopię pliku tej broni?

 

 

EDIT:

Przed chwilą odkryłem, że braknie pliku mossberga w folderze weapons. Przeszukałem również pliki od arsenala i innych, jednak szukając nie znajduje frazy "mossberg" w żadnym z plików. Moja hipoteza jest taka, że któryś z plików zawiera odniesienie do wpn_mossberg590, ale nie jest on obecny w plikach,  więc wywala do pulpitu...

 

EDIT2:

Razem brakowało trzech broni: Mossberga, G3 i M14. Skopiowałem istniejące pliki, pozmieniałem nazwy w konfigach i podpiąłem pod weapons.ltx. Zaczęło się normalnie ładować, ale przy "Przygotuj się do gry" wywaliło (tak po połowie minuty). Log następujący:

FATAL ERROR[error]Expression    : fatal error[error]Function      : CScriptEngine::lua_error[error]File          : E:stalkerpatch_1_0004xr_3daxrGamescript_engine.cpp[error]Line          : 73[error]Description   : <no expression>[error]Arguments     : LUA error: ...ow of chernobylgamedatascriptsbind_stalker.script:94: attempt to index global 'art_hit' (a nil value) 
Odnośnik do komentarza
Udostępnij na innych stronach

 

-- kumul 04.08.10 tłumaczenie trurl3-- patch 08.04.13 PL Yurek-- ôŕéë čç ěîäŕ "Íŕđîäíîé ńîë˙íęč 2009" îň 14.06.-- Ŕäŕďňčđîâŕí äë˙ Ěĺíĺäćĺđŕ îđóćč˙. Rulix aka Bak îň 2.07.09-- Ŕäŕňčđîâŕë: Idler.local upd_timelocal upd_time1local upd_time2local upd_time3local upd_time4local table_sort = table.sortlocal math_ceil = math.ceilfunction init(obj)  xr_motivator.AddToMotivator(obj)endfunction actor_init(npc)  npc:bind_object(actor_binder(npc))  -- level_tasks.add_location(707,"blue_location","Łukasz")  -- level_tasks.add_location(702,"blue_location","Maks")  -- level_tasks.add_location(728,"blue_location","Kuchmistrz")endlocal det_suit_id = nillocal game_difficulty_by_num = {  [0] = "gd_novice",  [1] = "gd_stalker",  [2] = "gd_veteran",  [3] = "gd_master"  }lasthealth  = 0lasttime  = 0post_process = 0local 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 = falseend----------------------------------------------------------------------------------------------------------------------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_objfor 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,"Usunięto błędną broń:"..se_name,nil,nil,1000)    alife():release(se_obj, true)  endend]]--===============================  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 trueend----------------------------------------------------------------------------------------------------------------------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)endfunction 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()	endendfunction 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	if box:is_inv_box_empty() then	  if box:section()=="m_inventory_box" 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())		alife():release(alife():object(box:id()))	  elseif 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------------  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)    endend----------------------------------------------------------------------------------------------------------------------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	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)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-- malandrinusscopeUsed = falsefunction actor_binder:update(delta)-- malandrinus--    watch_value = game.time()-- /malandrinus  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" thenif not det_suit_id thenif db.actor:object("detector_suit") thendet_suit_id = db.actor:object("detector_suit"):id()elsedet_suit_id = (alife():create("detector_suit",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())).idendendelseif det_suit_id and alife():object(det_suit_id) thenalife():release(alife():object(det_suit_id),true)det_suit_id = nilendendlocal fov = device().fovlocal wpnif fov < 35 and xr_logic.pstor_retrieve(db.actor, "use_scope", 0) == 0 thenwpn = db.actor:item_in_slot(db.actor:active_slot())if wpn and wpn:section() == "wpn_crossbow" thenlevel.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)endelseif fov > 35 and xr_logic.pstor_retrieve(db.actor, "use_scope", 0) == 1 thenxr_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()  if upd_time4 == nil then      upd_time4 = time + 500  elseif upd_time4 < time then      upd_time4 = time + 500      doc_viewer.update()      amk.oau_watchdog=181babah.update(delta)      amk.oau_watchdog=182stco.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=""    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 ","Rozmiar netpakietu GG krytyczny:"..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 ","Rozmiar netpakietu GG dopuszczalny:"..pk1:w_tell(),0,15,"gen_info") -- ýňî äîáŕâë˙ĺě  else    self:save_old(packet)    self.wt=time_global()-- amk.send_tip("Actor packet size <6000 ","Rozmiar netpakietu GG mały. Wszystko O.K.:"..pk1:w_tell(),0,15,"gen_info") -- ýňî äîáŕâë˙ĺě  end  self.is_saved = trueendfunction 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  endend------------------------------------------------------------------------------------------------------------------------ńňŕđň ďđĺôĺň÷ŕ çâóęîâ--if string.find(command_line(), "-noprefetch") == nil then--  sound_prefetch.prefetch_sounds()--end-- Weapon functionsfunction hide_weapon()  weapon_hide = trueendfunction restore_weapon()  weapon_hide = falseend--// 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)  endendtest_section_iteration("system.ltx","space_restrictor")--/**/function actor_binder:on_use_object(obj)	--medkit_use.lose_item(obj)	meceniy_outfit.on_item_drop(obj)end

Proszę bardzo. A czy ma ktoś może pliki od tych broni, których u mnie brakowało? To jest G3, Mossberg 590 i M14.

Odnośnik do komentarza
Udostępnij na innych stronach

Pierwsza sprawa - edytuj poprzedni post, dodając całość w spoiler - tak duże pliki należy odpowiednio tagować. Popraw też 1 post - zanim administrator zareaguje. Jeśli chodzi o błąd - w swojej wersji pliku bind_stalker.script z Solijanki którą ukończyłem pół roku temu - nie znalazłem wpisu art_hit.net_spawn(), który w twoim pliku znajduje się w wierszu nr. 94 - o czym wspomina log.

Spróbuj zakomentować ten wiersz dopisując przed wyróżnionym wpisem --

W praktyce ma wyglądać tak:

--art_hit.net_spawn()

W/w sposobem wyłączasz funkcje z użycia...ciekaw tylko jestem konsekwencji.  Ponadto wpis odsyła do funkcji net_spawn() zawartej w pliku art_hit.script, którego brakuje w mojej wersji Solijanki.

Jeśli nie będzie działać - podrzuć mi spakowany cały folder skryptów, wrzucając na bezpłatny hosting plików.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja w skryptach nie taki nowy, możesz mi bardziej w naszym (programistów) języku tłumaczyć. Mi się wydaje, że z loga wynika to, że funkcja/zmienna net_spawn nie może być pusta. W każdym bądź razie moja specjalizacja to php i pochodne C, więc mogę się mylić. Zaraz napiszę, jak zareagowała gra po tym, co mi kazałeś zrobić.

FATAL ERROR[error]Expression : fatal error[error]Function : CScriptEngine::lua_error[error]File : E:stalkerpatch_1_0004xr_3daxrGamescript_engine.cpp[error]Line : 73[error]Description : <no expression>[error]Arguments : LUA error: ...ow of chernobylgamedatascriptsbind_stalker.script:265: attempt to index global 'hidden_slots' (a nil value) 

Z tą zmienną to samo zrobić?

EDIT:

Wywaliłem, kolejne błędy się posypały (choćby niepoprawne ścieżki do modeli czy dźwięków broni).

EDIT2:

Teraz już natrafiłem na coś, z czym nie dam rady:

w modelu bizona braknie jointa/grupy/bipa "muzzle". To już jest dla mnie problem nie do przejścia, bo ja kuśkę zrobię w modelu, programów brak, umiejętności też.

Edytowane przez metek58
Usunięcie wulgara
Odnośnik do komentarza
Udostępnij na innych stronach

Za-komentowany fragment odsyła do funkcji net_spawn() w pliku art_hit.script, o czym pisałem powyżej. Przywróć poprzednią wersję skryptu i sprawdź ten fragment ze swoją wersją funkcji:

function net_spawn()local sim=alife()local sobjfor i=1,65534 do    sobj=sim:object(i)    if sobj and art_hit[sobj:section_name()] and sobj.parent_id == 0 then        art_cnt=art_cnt+1    endendend

Drugi błąd świadczy o źle wykonanym modelu, więc rozważ ponowną instalację gry z uwagi na bardzo dużą ilość błędów. Czy aby nie masz wersji z Torrent'a? z najnowszym patchem 8.04.2013 ?

Odnośnik do komentarza
Udostępnij na innych stronach

Spróbuj wyłączyć antywirusa podczas wypakowywania plików. Czasami taka błahostka może wpłynąć na brak kompletu wymaganych do gry plików. Jeśli chodzi o modele broni - niewykluczone, że akurat ten może zawierać błędy. Jeśli błąd z modelem bizona lub inną bronią - powtórzy się, postaram się wysłać pliki z mojej wersji. Pamiętaj o sprawdzeniu podanej funkcji z posta nr. 6  - ze swoją wersją w pliku art_hit.script.

Odnośnik do komentarza
Udostępnij na innych stronach

Akurat antywirusa to ja nie miałem, nie mam i nie będę miał ;) A co do pliku art_hit.script, to dziwne wydaje się to, że go również nie mam. W bind_stalker.script doszukałem się kolejnego odwołania do nieistniejącego pliku - hiddenslots.script. Wygląda to na to, że wgrałem jakiegoś złego patcha... Dzisiaj zainstaluję wszystko od nowa, tylko z inną wersją spolszczenia, tą bez patcha z 2013. Wczoraj nie miałem siły się za to zabrać, poza tym cały wieczór prądu nie było.

EDIT:

Cóż, działać to działa, ale lagi są niebotyczne... Czyste Niebo z TFW + AF też niezbyt dobrze chodzi, ale nieporównywalnie lepiej. Zauważyłem jeszcze to, że jeżeli kamera zwrócona jest na ziemię, to wszystko bardzo płynnie chodzi, więc chyba problem leży w renderowaniu nieba. Mi chyba format tylko został, bo karta graficzna sprawia wrażenie, jakby chciała odmówić posłuszeństwa (ostatnio w ogóle musiałem przeinstalować sterowniki, bo gry ledwo chodziły).

Edytowane przez Szachraj
Odnośnik do komentarza
Udostępnij na innych stronach

Zanim zaczniesz realizować pomysł z formatowaniem...wpierw przeczytaj ten dział dot. optymalizacji gry. Może spróbuj zainstalować Solijankę, wg. tej porady. Skoro brakuje wielu plików - zainstaluj bez ostatniego patcha - dobrym pomysłem będzie przeczytanie pozostałych postów ze wspomnianego powyżej linka.

Odnośnik do komentarza
Udostępnij na innych stronach

Soljanka ruszyła, zero błędów, tylko właśnie te lagi (około 10fps, więc gra na tym mija się z celem). Czyste Niebo na TFW + AF niewiele lepiej. Dopiero teraz ogarnąłem, że mój folder z danymi i innym ścierwem jest na dysku C i waży... 70 giga!!! Powywalam wszystko, co niepotrzebne, przeniosę na D, zrobię totalne oczyszczanie systemu i wszystko raczej pójdzie.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

Mam problem z Soljanką, podstawa 1.0004. Po następnej x wizycie wywala mnie z Baru - nie mogę podejść do budynku 100 radów , to samo przed Monolitem w sarkofagu.Proszę o pomoc. Pozdrawiam. FATAL ERROR [error]Expression : xml_doc.NavigateToNode(path,index) [error]Function : CUIXmlInit::InitStatic [error]File : E:stalkerpatch_1_0004xr_3daxrGameuiUIXmlInit.cpp [error]Line : 172 [error]Description : XML node not found [error]Arguments : target_dot_26

Odnośnik do komentarza
Udostępnij na innych stronach

@Arni68

niech pomyślę...masz bioradar na pasie, czyż nie? Znany błąd występujący, gdy w naszym otoczeniu przebywa więcej niż 20 NPC'ów. Najprostsze rozwiązanie to zdjęcie bioradaru przed wejściem na dany obszar: Bar, baza Wolności, Pieczara (kryjówka monolitu), Stara Wieś, Warlab. Możesz również zmodyfikować bioradar - przeczytaj ten temat, wątek opisany przez Kobala (przedostatnia z porad w pierwszym poście).

Odnośnik do komentarza
Udostępnij na innych stronach

@Arni68

niech pomyślę...masz bioradar na pasie, czyż nie? Znany błąd występujący, gdy w naszym otoczeniu przebywa więcej niż 20 NPC'ów. Najprostsze rozwiązanie to zdjęcie bioradaru przed wejściem na dany obszar: Bar, baza Wolności, Pieczara (kryjówka monolitu), Stara Wieś, Warlab. Możesz również zmodyfikować bioradar - przeczytaj ten temat, wątek opisany przez Kobala (przedostatnia z porad w pierwszym poście).

@Arni68

niech pomyślę...masz bioradar na pasie, czyż nie? Znany błąd występujący, gdy w naszym otoczeniu przebywa więcej niż 20 NPC'ów. Najprostsze rozwiązanie to zdjęcie bioradaru przed wejściem na dany obszar: Bar, baza Wolności, Pieczara (kryjówka monolitu), Stara Wieś, Warlab. Możesz również zmodyfikować bioradar - przeczytaj ten temat, wątek opisany przez Kobala (przedostatnia z porad w pierwszym poście).

Dziękuję za pomoc.Pozdrawiam.

Pomogło, dzięki.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.