Старлей 88 Опубликовано 4 Декабря 2010 Народ! Я в ЧН сделал так что в группировку можно вступить (actor_army) прописал в game_relations.ltx(communities, [communities_relations], [actor_communities], [communities_sympathy]) и в sim_board.script (local actor_communitites) Игра начинается все ОК но при открытии ПДА раздел СТАТИСТИКА - вылет вот лог: Expression : fatal error Function : CScriptEngine::lua_error File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp Line : 180 Description : <no expression> Arguments : LUA error: ...Ð. - ×èñòîå Íåáî\gamedata\scripts\sim_faction.script:656: attempt to index field '?' (a nil value) В чем причина и причем здесь sim.faction?Если кто-то имел с этим дело то плиз скажите как правильно сделать! Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 5 Декабря 2010 Alastar разве надо в ПДА прописывать actor_army?!У меня вылетает при войне группировок Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 5 Декабря 2010 Ага все разобрался терь все ОК Ну уж тода еще 2 вопроса: 1. Вот смотри заспавню я actora в другом месте и вся проблема будет в том что как я понял только после выброса и вступления в чистое небо запускается война группировок глобальная а вместе с ней чн и ренегатов у остальных стоит элементарное ограничение по заданию тип ток после отдавания хабара сидоровича нач война сталкеров и бандосов {+esc_take_habar_complete} а у чистого неба такой штуки нет с ренегатами да и ваще глобал вар не запуститься Как сделать чтоб война сразу запускалась? 2.Допустим я заспавню лидера торговца военным иль монолиту а вот награда за захват точки будет ли у него браться автоматически ? иль надо чето в логике прописать или еще где? Подскажи плиз Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 11 Декабря 2010 IQDDD , могут быть несколько причин: 1. [expansion_4] ; Уничтожить базу base_squad_number = 50 precondition_target_eliminate = gar_smart_terrain_3_5 war_target_title = st_faction_war_stalker_eliminate_base war_stage_icon = st_stage_icon_stalker_eliminate_bandit_no war_stage_icon_complete = st_stage_icon_stalker_eliminate_bandit_yes war_stage_icon_hint = st_stage_icon_stalker_eliminate_bandit_no war_stage_icon_hint_complete = st_stage_icon_stalker_eliminate_bandit_yes level_up_snd = esc_stalker_expansion_4_up level_down_snd = esc_stalker_expansion_4_down Как видишь здесь есть параметр base_squad_number = 50 (точно не знаю по-моему это сила и кол-во отряда в целом не занятых экспансией ,т.е. закрепленные на смартах и никуда не идут 2.Военный блокпост?! Хммм в оригинале такого нет ,в буре на зоне и на свалке есть но там все работает если ты сам добавлял может где описался 3. открой faction_stalker в config/misc и посмотри есть ли там такая штука какую я тебе написал 4. может стоять ограничение по прохождению precondition_cond = {+esc_join_stalker_on} true, false если есть то убери эту строку Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 1 Сентября 2011 Народ, help! Разговор с лебедевым в чистом небе не начинается, он просто стоит и все... Естественно изменял скрипты, а где функции и скрипты отвечающие за эту сцену? Заранее спасибо! Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 29 Ноября 2011 AutoGnom, нет не правильно on_info = {условие(это инфопоршень)} ph_door@open, т.е on_info = {+actor_talked_with_wolf} ph_door@open это означает, что после того как нам выдадут инфу(actor_talked_with_wolf) дверь откроется а + это если есть инфа а - это если инфы еще нет Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 30 Ноября 2011 AutoGnom, Сейчас не скажу не дома, но посмотри в логике выключателя выжигателя, и соответственно логику антенн(скорее всего рестриктор), и добавь код, чтобы получился период (скоко угодно включай выключай) Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 9 Декабря 2011 Shadows, ты имеешь ввиду, когда actor не заспавнен? Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 11 Декабря 2011 (изменено) Если конкретный непись - в логике указываешь, если вообще всем, то добавь в character_descr ссыль на папку со своей озвучкой, но смотри чтобы все файлы присутствовали, например у зомби нет половины озвучки в отличие от сталкеров, потому что не предусмотрено скриптом, что они будут говорить. Изменено 12 Декабря 2011 пользователем ColR_iT Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 12 Декабря 2011 Конкретнее... Вообще логику никак не реанимируешь - надо самому ее прописать. А сам вертолет и все его движения типа, атаки, перемещения заложены в движке. Разговоры пилотов - в скрипте. Логику надо писать самому, почитай здесь пункт 15.3.12 Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 15 Декабря 2011 qwqwqw, Определись уже наконец! 1. Ты спавнишь его раненым, а в логике просто прописываешь камп, и под действием аллайфа после выздоровления он пойдет на камп 2. спавнишь живого-здорового но указываешь в логике wound и условия перехода на kamp НО НЕ НАДО ДЕЛАТЬ ВСЕ СРАЗУ!Сложно будет... Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 17 Декабря 2011 В своем моде сумашедшему я сделал такую логику: ;marsh crazy sniper [logic] active = {-mar_want_to_talk_sniper} camper@sniper, {+mar_want_to_talk_sniper} remark@sniper relation = enemy sympathy = 0 on_death = death [death] on_info = %+mar_sniper_dead% [camper@sniper] path_walk = mar_crazy_1_walk path_look = mar_crazy_1_look out_restr = mar_crazy_restrictor def_state_moving = sneak_run def_state_campering = hide_na def_state_campering_fire = hide_sniper_fire sniper = true on_info = {+mar_sniper_must_go_away} %=destroy_object% [remark@sniper] anim = guard target = actor meet = meet combat_ignore_cond = true on_info = {+mar_enemy_sniper_talke_bad} camper@sniper on_info2 = {+mar_sniper_must_go_away} %=destroy_object% [meet] НАС ИТЕРЕСУЕТ ЭТО: meet_state = 3|ward@nil meet_state_wpn = 6|backoff@threat_weap victim = 3|actor victim_wpn = 6|actor use = true use_wpn = false sound_start = mar_crazy_sniper_meet -------------звук привет sound_stop = mar_crazy_sniper_meet_bye -------звук пока trade_enable = false quest_npc = true ----------ставим это обязательно!иначе будут дефолтные звуки ;marsh crazy sniper [logic] active = {-mar_want_to_talk_sniper} camper@sniper, {+mar_want_to_talk_sniper} remark@sniper relation = enemy sympathy = 0 on_death = death [death] on_info = %+mar_sniper_dead% [camper@sniper] path_walk = mar_crazy_1_walk path_look = mar_crazy_1_look out_restr = mar_crazy_restrictor def_state_moving = sneak_run def_state_campering = hide_na def_state_campering_fire = hide_sniper_fire sniper = true on_info = {+mar_sniper_must_go_away} %=destroy_object% [remark@sniper] anim = guard target = actor meet = meet combat_ignore_cond = true on_info = {+mar_enemy_sniper_talke_bad} camper@sniper on_info2 = {+mar_sniper_must_go_away} %=destroy_object% [meet] НАС ИТЕРЕСУЕТ ЭТО: meet_state = 3|ward@nil meet_state_wpn = 6|backoff@threat_weap victim = 3|actor victim_wpn = 6|actor use = true use_wpn = false sound_start = mar_crazy_sniper_meet -------------звук привет sound_stop = mar_crazy_sniper_meet_bye -------звук пока trade_enable = false quest_npc = true ----------ставим это обязательно!иначе будут дефолтные звуки Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 30 Декабря 2011 Всем привет! Делаю мод на ЧН, и вот столкнулся со следуещей проблемой: В ЧН работа некоторым смартам не прописана(нпс тупо сидят в центре) и вот я прописываю в all.spawn смарту [exclusive] ...... END Но при заселение этого смарта происходит безлоговый вылет, скорее всего из-за того что точки path_walk находятся еще дальше чем def_restr И как это исправить? Заданием out_restr в файле логике? Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 6 Января 2012 losiara у тебя нет завершенности алгоритма, добавь в [sr_sound2] вот что: on_signal = sound_end | sr_idleon_signal = sound_end | sr_idle И тогда все будет хорошо Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 7 Января 2012 *Shoker* А может просто эту вещь в исключения в death_generic добавить надо?А что ты спавнил? Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 25 Ноября 2012 Вот кусок кода из ТЧ(1.004) local ini = system_ini() local weather = level.get_weather() -- тип погоды local weather_sect = ini:r_string("weathers", weather) -- секция погоды, соответствующая типу local ini = system_ini() local weather = level.get_weather() -- тип погоды local weather_sect = ini:r_string("weathers", weather) -- секция погоды, соответствующая типу В ЧН работать не хочет, вылет... Попробовал заменить на такой код: local ini = ini_file("game.ltx") local weather = utils.cfg_get_string(ini, level.name(), "weathers", db.actor, false, "", "[default]") local weather_sect = ini:r_string("weathers", weather) -- секция погоды, соответствующая типу local ini = ini_file("game.ltx") local weather = utils.cfg_get_string(ini, level.name(), "weathers", db.actor, false, "", "[default]") local weather_sect = ini:r_string("weathers", weather) -- секция погоды, соответствующая типу Тоже будет вылет(через раз), иногда загружается игра. Вот лог вылета: Лог (Показать) Клиент: Синхронизация... * phase time: 9 ms * phase cmem: 221717 K * [win32]: free[3093848 K], reserved[108356 K], committed[992036 K] * [ D3D ]: textures[364135 K] * [x-ray]: crt heap[221717 K], process heap[8541 K], game lua[92729 K], render[185 K] * [x-ray]: economy: strings[15913 K], smem[1050 K] ! Cannot find saved game ~:ogsm_cleaner_release_wpn_mp51258 * Log file has been saved successfully! ! Can't find texture 'tree\tree_fuflo' * MEMORY USAGE: 271197 K * End of synchronization A[1] R[1] FATAL ERROR [error]Expression : fatal error [error]Function : CInifile::r_section [error]File : E:\priquel\sources\engine\xrCore\Xr_ini.cpp [error]Line : 443 [error]Description : [error]Arguments : Can't open section 'weathers' stack trace: Так вот вопрос, как заставить его работать в чн? Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 30 Ноября 2012 За'use'в поиск в данной теме нашел, что данный вылет: Вылет (Показать) FATAL ERROR [error]Expression : motion_ID.valid() [error]Function : CKinematicsAnimated::ID_Cycle [error]File : E:\priquel\sources\engine\Layers\xrRender\SkeletonAnimated.cpp [error]Line : 208 [error]Description : ! MODEL: can't find cycle: [error]Arguments : $editor stack trace: при спавне вертолета, происходит, т.к. " При спавне вертолёта через скрипт, обязательно требуется перепаковка net_packet, с переназначением параметров:" skeleton_name = idle startup_animation = idleskeleton_name = idle startup_animation = idle Для спавна вертолета я использую такую функцию: Код (Показать) function heli(section,posx,posy,posz,lvid,gvid,logic) local obj = alife():create(section,vector():set(posx,posy,posz),lvid,gvid) local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_s32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_s32 = packet:r_s32() -- свойства cse_visual local visual = packet:r_stringZ() local cse_visual__unk1_u8 = packet:r_u8() -- свойства cse_motion local motion_name = packet:r_stringZ() -- свойства cse_ph_skeleton local skeleton_name = packet:r_stringZ() local cse_ph_skeleton__unk1_u8 = packet:r_u8() local cse_ph_skeleton__unk2_u16 = packet:r_u16() -- свойства cse_alife_helicopter local cse_alife_helicopter__unk1_sz = packet:r_stringZ() local engine_sound = packet:r_stringZ() --устанавливаем логику custom_data = "[logic]\ncfg = scripts\\heli\\"..logic..".ltx" -- теперь заполняем нужные параметры -- свойства cse_alife_object packet:w_begin(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_s32) packet:w_s32(level_vertex_id) object_flags = bit_not(5) -- ~5 = 0xfffffffa packet:w_s32(object_flags) packet:w_stringZ(custom_data) packet:w_s32(-1) packet:w_s32(cse_alife_object__unk3_s32) -- свойства cse_visual packet:w_stringZ(visual) packet:w_u8(cse_visual__unk1_u8) -- свойства cse_motion packet:w_stringZ(motion_name) -- свойства cse_ph_skeleton skeleton_name = "idle" packet:w_stringZ(skeleton_name) packet:w_u8(cse_ph_skeleton__unk1_u8) packet:w_u16(cse_ph_skeleton__unk2_u16) -- свойства cse_alife_helicopter cse_alife_helicopter__unk1_sz = "idle" engine_sound = "vehicles\\helicopter\\helicopter" packet:w_stringZ(cse_alife_helicopter__unk1_sz) packet:w_stringZ(engine_sound) -- считываем скорректированные параметры packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) return obj end Так вот подскажите, что сюда добавить, чтобы устанавливолось startup_animation = idle? Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 15 Декабря 2012 (изменено) Я опять про спавн предметов в ящик: Код (Показать) local spawn_item1 = { "Имя предмета который спауним(если несколько то через запятую)"}local function spawn_item_to_box(items_table, count, inv_box_story_id)local inv_box = alife():object(get_story_object_id(inv_box_story_id))for i = 1,count doalife():create(items_table[math.random(#items_table)],inv_box.position,inv_box.m_level_vertex_id,inv_box.m_game_vertex_id,inv_box.id)endendfunction spawn_item_to_treasure(actor, obj, p)spawn_item_to_box(spawn_item1, 1, "Стори айди тайника")end Вылетает с руганью на get_story_object_id, якобы не знает что это за функция, чем исправить, не подскажете? Изменено 15 Декабря 2012 пользователем Старлей Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 12 Февраля 2013 (изменено) Есть такой мод на ЧН "Наемники", позволяет нанимать отряды. Этот мод добавлялся в разные солянки, но у всех одна и та же проблема, вылет при попыке нанять отряд: Вылет (Показать) FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp [error]Line : 180 [error]Description : [error]Arguments : LUA error: ...er clear sky\gamedata\scripts\actor_need_help.script:744: attempt to index field '?' (a nil value) stack trace: Что ж идем туда, куда нас послали: в 744 строку скрипта. smart = squad.board.smarts[v].smrt smart = squad.board.smarts[v].smrt Это из куска функции, в функцию передается параметр squad, который равен local se_npc = alife():object(npc:id()) local squad = se_npc.board.squads[se_npc.squad_id] local se_npc = alife():object(npc:id()) local squad = se_npc.board.squads[se_npc.squad_id] Так вот вопрос какое значение он не может получить? Подскажите, или хотя бы пошлите меня туда, куда ссылается smart = squad.board.smarts[v].smrt на какую там функцию, или скрипт. Вот сам скрипт целиком: http://yadi.sk/d/Ob8RCGAn2ZHOG Изменено 12 Февраля 2013 пользователем Старлей 1 1 Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение
Старлей 88 Опубликовано 9 Марта 2013 Скажите пожалуйста, как по нет-пакету получить имя профиля сталкера? и можно ли его получить так: Показать function get_npc_character(p_obj) if p_obj then local params = read_stalker_params(p_obj) character_profile = params.character_profile return character_profile end endfunction get_npc_character(p_obj) if p_obj then local params = read_stalker_params(p_obj) character_profile = params.character_profile return character_profile end end Или вот так: Показать function get_npc_name(p_obj_id) local obj = alife():object(p_obj_id) if not obj then return "none" end stpk:w_begin(0) stpk:r_seek(2) obj:STATE_Write(stpk) local game_vertex_id = stpk:r_u16() local distance = stpk:r_float() local direct_control = stpk:r_s32() local level_vertex_id = stpk:r_s32() local object_flags = stpk:r_s32() local character_profile = stpk:r_stringZ() if not character_profile then return "none" end return character_profile endfunction get_npc_name(p_obj_id) local obj = alife():object(p_obj_id) if not obj then return "none" end stpk:w_begin(0) stpk:r_seek(2) obj:STATE_Write(stpk) local game_vertex_id = stpk:r_u16() local distance = stpk:r_float() local direct_control = stpk:r_s32() local level_vertex_id = stpk:r_s32() local object_flags = stpk:r_s32() local character_profile = stpk:r_stringZ() if not character_profile then return "none" end return character_profile end Ray Of Hope - кооператив сталкера OldStory Поделиться этим сообщением Ссылка на сообщение