Ulman 5 Опубликовано 29 Июля 2011 Реюята, огромное спасибо за то что отозвались, с горем пополам вычислил корень зла. Но вот проблема со строкой con:execute(string.gsub(string.format(fmt,...), " ", "_")) Такой вылет происходит: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: c:\my game$\s.t.a.l.k.e.r\gamedata\scripts\_g.script:21: bad argument #2 to 'format' (string expected, got no value) Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 30 Июля 2011 *Shoker*, лично я никуда такую строку не вставлял, но поискав такие строки, я их нашел почти во все скриптах, как у оригинальных, так и нет, а можно пример строки, как она должна выглядеть? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 30 Июля 2011 И ещё, люди, вот у меня такой вылет: [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...game$\s.t.a.l.k.e.r\gamedata\scripts\xr_logic.script:632: attempt to call local 'func' (a nil value) Вот кусок скрипта: if infop_conditions_met then -- Условия выполнены. Независимо от того, задана ли секция, нужно проставить требуемые -- infoportions: for inum, infop in pairs(cond.infop_set) do if db.actor == nil then abort("TRYING TO SET INFOS THEN ACTOR IS NIL") end if infop.func then local func=nil local module,fname=string.match(infop.func,"(.+)[.](.+)") if not fname then func=xr_effects[infop.func] else if _G[module] and _G[module][fname] then func=_G[module][fname] end end if not func then abort("object '%s': pick_section_from_condlist: function '%s' is " .. "not defined in xr_effects.script", if_then_else(npc, npc:name(), "nil"), infop.func) end if infop.params then func(actor, npc, infop.params) else func(actor, npc)--632 строка end Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 31 Июля 2011 *Shoker*, немного гулаг подпралял, сейчас сделал другую правку и всё нормально. Я думаю это от него зависит? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 2 Августа 2011 Люди, воспользовался вашим советом и решил искать вылет с помощью этих команд con:execute(string.gsub(fmt, " ", "_")) con:execute(string.gsub(string.format(fmt,...), " ", "_")) con:execute("flush") как и ожидалось получил вылет типа: [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: c:\my game$\s.t.a.l.k.e.r\gamedata\scripts\_g.script:22: bad argument #3 to 'format' (string expected, got nil) Но предыдущие строки были такие: * Log file has been saved successfully! ! Unknown command: Selected_[%s] ! Unknown command: Selected_[story] * Log file has been saved successfully! ! Unknown command: *SND*_play_SND_to_[%s]_for_[%s] ! Unknown command: *SND*_play_SND_to_[legend_01]_for_[bar_visitor_4] * Log file has been saved successfully! ! Unknown command: LAST_INTO_ID_for_[%s]_=_[%s],_max_[%s] Вот в каком скрипте есть строка, вызывающая такой вылет? Добавлено через 19 мин.: И ещё, вот у меня рандомный безлоговый вылет, один и тот же сейв могу загружать бывает загружается нормально а бывает загрузился и сразу вылет. И в игре так же бывает если игру оставить на длинное время, ничего не делая, по крайней мере на кордоне, то ничего не вылетит. То есть в основном вылет или сразу случается через минут 2-3 или вообще не вылетит. Есть ли у кого хоть какие-то предположения? Помогите, очень надо. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 2 Августа 2011 (изменено) RvP, спасибо, вроде помогло. _Призрак_, а разве в скриптах такие троки бывают, может быть искать надо хотя бы так: LAST_INTO_ID_for? И кстати ни у кого нет предположений на счёт вылета без лога? P.S. А может ли быть причиной вылета высокая температура ГП, а то у меня сейчас старая видеокарта стоит, так как нормальная в ремонте. Так эта что сейчас стоит, греется где то до 80 градусов, когда максимально рабочая температура 75-80?(Извините что это не в тему.) Изменено 2 Августа 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 7 Августа 2011 (изменено) Ребята, я задавал этот вопрос в другой теме, но мне кажется здесь это будет правильней. Как сделать чтобы уникального нпс не лечили и после смерти не обыскивали его? Добавлено через 259 мин.: И извиняюсь, забыл дописать, мой вопрос по ТЧ. Изменено 7 Августа 2011 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 8 Августа 2011 =VENOM=, спасибо большое, а то как то мимо пропустил таблицу. Disord, я тоже разбирался с этой переменной, туда вроде бы группировку вписывать надо? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 9 Августа 2011 Как я понял в эти 2 файла надо писать имя, которое прописано в all.spawn то есть например name = esc_vagon_wounded, то в скрипт надо писать esc_vagon_wounded. Сделал так, но его продолжают лечить. Чего я ещё неправильно делаю? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 10 Августа 2011 Вот ссылка на мой скрипт, я вроде ничего в нём не делал. Но вот меня всё же волнует то, от куда надо имя брать. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 10 Августа 2011 (изменено) Ну вот я так и думал, только это не помогает, его весь бар сбегается лечить. Может в его "свойствах" что то не так? Вот его секция спавна: [13050] ; cse_abstract properties section_name = stalker name = bar_bar_psih position = 115.516822814941,-5.1480016708374,11.9383907318115 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = bar_psih ; cse_alife_object properties game_vertex_id = 1239 distance = 4.19999980926514 level_vertex_id = 33756 object_flags = 0xfffffff7 custom_data = <<END [smart_terrains] none = true [logic] cfg = scripts\bar_psih.ltx END story_id = 517 ; cse_visual properties visual_name = actors\stalker_zombi\stalker_zombie4 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 5 g_group = 27 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 115.516822814941,-5.1480016708374,11.9383907318115 upd:o_model = 0 upd:o_torso = 0,0,0 upd:g_team = 0 upd:g_squad = 5 upd:g_group = 27 ; cse_alife_monster_abstract properties base_out_restrictors = bar_restrictor upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 2,1,1,0,2 predicate4 = 1,2,2,2 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties И вот его логика: [logic] active = walker@start [walker@start] path_walk = bar_bar_psih_walk path_look = bar_bar_psih_look wounded = wounded@pre_medkit meet = meet@pre_medkit on_info = {+bar_psih_nopain} walker@nopain [meet@pre_medkit] use = true use_wpn = true [wounded@pre_medkit] hp_state = 100|psycho_pain@bar_psycho_pain hp_state_see = 100|psycho_pain@bar_psycho_pain psy_state = 0|psycho_pain@bar_psycho_pain hp_victim = 100|nil hp_cover = 100|false hp_fight = 100|false help_dialog = nil [walker@nopain] path_walk = bar_bar_psih_walk path_look = bar_bar_psih_look wounded = wounded@nopain meet = meet@nopain on_info = {+bar_psih_suicide} walker@suicide [wounded@nopain] hp_state = 100|psycho_pain@nil hp_state_see = 100|psycho_pain@nil psy_state = 0|psycho_pain@nil hp_victim = 100|nil hp_cover = 100|false hp_fight = 100|false help_dialog = nil [meet@nopain] use = true use_wpn = true meet_dialog = bar_bar_psih_start_gorbun [walker@suicide] path_walk = bar_bar_psih_walk path_look = bar_bar_psih_look wounded = wounded@suicide [wounded@suicide] hp_state = 100|psycho_shoot@bar_psycho_goodluck hp_state_see = 100|psycho_shoot@bar_psycho_goodluck psy_state = 0|psycho_shoot@bar_psycho_goodluck hp_victim = 100|nil hp_cover = 100|false hp_fight = 100|false synsound = psycho_shoot@bar_psycho_goodluck help_dialog = nil Может тут что то намудрил? Ничего там не намудрили. Просто он у тебя и правда псих. Дело в том, что его логика целиком опирается на схему wounded, а это схема раненого, только написанная под определенный сценарий, если тебе нужны его анимации суицида и т.д. переписывай логику, если нет - просто убери эту схему от туда. ColR_iT Добавлено через 251 мин.: А на что тогда можно заменить, а то wounded можно допустим заменить на анимки, а вот что с суицидом делать? Добавлено через 325 мин.: Ребята, полный ахтунг, все мои предыдущие вопросы могут подождать, но этот нет, короче, поймал я безлоговый вылет, вот последние строки в логе: ! Unknown command: *INFO:TRADE [bar_dolg_ivancov]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_dolg_ivancov]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_4]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_4]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_bar_psih]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_bar_psih]: sell condition = generic_sell Помогите пожалуйста, заранее бесконечно-огромное спасибо. Изменено 10 Августа 2011 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 11 Августа 2011 Что то я вообще ничего уже не пойму, теперь с теми строками всё нормально, последние теперь такие: ! Unknown command: *INFO:TRADE [bar_bar_psih]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_bar_psih]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_3]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_3]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:_bp: enable_scripts: object 'inventory_box4458' has NO external configuration file, using '<customdata>' * Log file has been saved successfully! ! Unknown command: *INFO:HIT SECTION [nil] * Log file has been saved successfully! ! Unknown command: *INFO:DEBUG: object 'inventory_box4458': activate_by_section: looking for section 'nil' * Log file has been saved successfully! ! Unknown command: *INFO:_bp: reset_generic_schemes_on_scheme_switch: npc:name()='inventory_box4458' И ещё, что то я этого тоже не пойму, это последние строки в логе, или ещё может какая то есть, просто во время вылета она не успела сохраниться? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 11 Августа 2011 Лог был небольшой, когда файл лога весит ~7mb, тогда информация не выводится уже, и просто вылетает(проверено на себе). А у меня в данных случаях оно не превышает 1mb. И ещё, вылет очень рандомный и что я заметил либо при переходе на локацию вылетает в момент когда даже не загорелась надпись "старт сервера". Либо как в последнем случае я перехожу на локацию и где то через секунд 5 игры вылет. НО если такой сейв загрузить 2 раза(вроде так, может совпадение), то он абсолютно нормально загружается, но после нескольких загрузок этого же сейва может опять начать вылетать и тогда опять надо загружать его 2 раза. Я вот думаю, может есть надежда на то что вылет не из-за скриптов? И ещё, я вот сейчас, пока ходил на море, оставил игру включённой, где то часа 2 меня не было, вернулся, игра абсолютно нормально себя вела ничего не вылетело никаких "слётов" апдейта и т.д. И я так делал уже несколько раз, игра не вылетала. Я вот думаю,наверно если бы это были виноваты скрипты, то оно бы вылетело давным давно? Кстати, всё время я пользуюсь услугами проводника(New guiders mod), то есть только через него хожу может ли он в этом быть виновен? Kirag, а на счёт апдейта, попробовать только в bind_stalker или вообще по всем пройтись? Просто во втором случае это очень трудно, так как я не уверен, что где то ещё, что то добавлял от себя, кроме как в bind_stalker. P.S. Извините за такое количество вопросов в одном посте, но просто такое дело, что я один и не справлюсь. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 12 Августа 2011 =VENOM=, нет, только этого психа лечат. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 12 Августа 2011 Kirag, да вроде всё обошлось, похоже всё таки виноват проводник, я оббегал весь бар, там где вылетало, потом на склады бегал, вернулся, ещё побегал по бару, посейвился позагружал его так что вроде всё в порядке, по крайней мере очень надеюсь. А вот что всё же делать с Психом моим не подскажете? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 13 Августа 2011 И ещё вот такая неувязко-проблема появилась, у меня стоит AI additions - Rulix (Bak), когда НПС меняет винтовку на пистолет, то как я понял винтовка пропадает навсегда, потому что у них в продаже появляются магазины с патронами. Чего я так думаю, что это связанно, потому что когда у НПС есть оружие и патроны к нему, то патроны он не продаёт. Да и когда враг находится от НПС на большом расстоянии, он должен достать винтовку, но такое не происходит, он продолжает стрелять из пистолета. Чего с этим делать? И вопрос с Психом меня так же волнует. Заранее огромное спасибо Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 14 Августа 2011 Artos, да вот у меня как раз мысль, может имя я не то использую, так как в character_desc_bar у него имя bar_psih, но в секции спавна он bar_bar_psih. Хотя имена которые написаны в табличке, это имена из секций спавна. И кстати, а какие ещё схемы лекарей есть, хотя бы известные, может у меня такова ещё стоит? Хотя на деле я знаю только xrs_medic. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 14 Августа 2011 *Shoker*, да, написал то, что в all.spawn`е, но его пихают все аптечками, проверил, думал схема глючит, так нет, бедного Толика никто не вылечил. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 15 Августа 2011 Вот ссылка на мой скрипт. Я вот думаю, а можно попробовать "обойти психа" таким способом, мне так =VENOM= советовал обойти обыск трупа: if IsStalker(obj) and obj:name() == "stalker_name" then return false end Так вот оно действительно помогло, только вот я не знаю где в xrs_medic это прописать. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 15 Августа 2011 *Shoker*, можно подробнее про этот способ? Его что в _g.script в функцию printf прописать? Поделиться этим сообщением Ссылка на сообщение