Byurrer 0 Опубликовано 4 Июля 2010 (изменено) кровоSTALKER а можешь по подробнее про тот способ который ты предложил геймдатовцу? Я пробовал удалять и тут же спавнить через скрипт прямо во время игры (скрипт работает при определенных условия через биндер) но эт не выход ведь если играть с снимаемым прицелом то он не спавнить на калаше к примеру! Тогда по другому вопрос поставлю если на этот нет ответа: как заспавнить к примеру калаш с надетым но снимаемым прицелом через скрипт в руках или в инвентарь к ГГ? Изменено 4 Июля 2010 пользователем Byurrer Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 4 Июля 2010 Stalk15 нет нет с этим мне все понятно, пробовал получилось (спасибо что откликнулся) я не знаю как заспавнитьь ак с снимаемым но одетым прцелом, вот что меня интересует!!! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 5 Июля 2010 кровоSTALKER я этот вопрос задаю не первый раз и все путают! Надо чтоб спавнился с снимаемым апгрейдом в руках у ГГ!!! У неписей это все ясно тут ничего сложного, но вот с ГГ!!! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 5 Июля 2010 кровоSTALKER я не восклицаю а уточняю этим что мне нужно! Спасибо спрошу! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 6 Июля 2010 Knight мне нужно чтоб в при определенных условиях (они уже написаны и работают) при перезараядке (это уже тоже написано) через скрипт удалялся (это тоже все сделано) калаш с одетым (но снимаемым прицелом) а за место него спавнился другой, но уже с одетым прицелом, но снимаемым, чтоб это перемена старого калаша на новый не была заметна! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 7 Июля 2010 malandrinus спасибо, понял, но вот еще вопрос правда я его уже задавал ... о веж! Как можно сменить визуал оружия в руках ГГ прямо во время игры? Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 7 Июля 2010 кровоSTALKER а по подробнее о подмене скажи пожалуйста! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 7 Июля 2010 кровоSTALKER боольшое тебе спасибо за скрипт, подбросил ты мне идейку, а этот способ подмены к сожалению я знаю, и за счет него и хочу сделать! Похоже сменить файл конфига оружия во время игры ни как не получиться также как и визуал по настоящему, выход только этот способ RE спавна, буду пробовать, результаты выложу сюда (ну в отдельную тему) спасибо вам большое что откликнулись, много где искал но ответа ... но теперь получил!!! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 8 Июля 2010 кровоSTALKER для ТЧ Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 5 Августа 2010 Здравствуйте! Возник такой вопрос: вот я сделал свое окно, для ремонта, активируется при разговоре с Сидоровичем, и там кнопки, 1слот 2 слот и броня, и вот как сделать чтоб при нажатии на одну из кнопок появлялась иконка выбранного оружия или брони? Как прописать такую команду, скрипт? Или если так не получиться то как можно в это новое окно вывести весь инвентарь? Добавлено через 5 мин.: malandrinus тож хочу внести свою копейку, мне всегда нравились скрипты, но почему то обычный спавн иногда тупо не срабатывает! Все проверю все правильно, пытаюсь заспавнить и нифига! Наверное просматриваю ошибку ... Добавлено через 50 мин.: У меня получилось сделать вывод, но через ж... путем условий и появления кнопок при выполнении этого условия, но как сделать по более так сказать приличней, мож есть такой метод ... или там еще ченить? Строгое предупреждение от модератора n6260 За завуалируваную ругать следующий раз будет "адекватное наказание". Это я про твое "ж...". Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 5 Августа 2010 (изменено) В lua_help не нашел такого ... Изменено 6 Августа 2010 пользователем Byurrer Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 6 Августа 2010 (изменено) Извините тупанул ... условия срабатывают и иконка появляется, но возможно ли както подругому, более проще вывести иконку? --в таком виде строяться апгрейды, но устанавливать с первого раза можно любой!!! --mag_list_prugina_tormoz function hud() level.start_stop_menu(hud_ui(get_hud()), true) end ----------------------------------------- class "hud_ui" (CUIScriptWnd) function hud_ui:__init(owner) super() self.owner = owner self:InitControls() self:InitCallBacks() end function hud_ui:__finalize() end ----------------------------------------- ----------------------------------------- ----------------------------------------- function hud_ui:InitControls() self:Init(0,0,1024,768) local hud = CScriptXmlInit() hud:ParseFile("upgrade.xml") hud:InitStatic("background", self) self:Register(hud:Init3tButton("slot_1", self),"slot_1") self:Register(hud:Init3tButton("slot_2", self),"slot_2") self:Register(hud:Init3tButton("slot_3", self),"slot_3") self:Register(hud:Init3tButton("mag_1", self),"mag_1") self:Register(hud:Init3tButton("mag_2", self),"mag_2") self:Register(hud:Init3tButton("mag_3", self),"mag_3") self:Register(hud:Init3tButton("list_1", self),"list_1") self:Register(hud:Init3tButton("list_2", self),"list_2") self:Register(hud:Init3tButton("list_3", self),"list_3") self:Register(hud:Init3tButton("prugina_1", self),"prugina_1") self:Register(hud:Init3tButton("prugina_2", self),"prugina_2") self:Register(hud:Init3tButton("prugina_3", self),"prugina_3") self:Register(hud:Init3tButton("tormoz_1", self),"tormoz_1") self:Register(hud:Init3tButton("tormoz_2", self),"tormoz_2") self:Register(hud:Init3tButton("tormoz_3", self),"tormoz_3") self:Register(hud:Init3tButton("quits", self),"quits") end function hud_ui:InitCallBacks() self:AddCallback("slot_1", ui_events.BUTTON_CLICKED, self.slot_1, self) self:AddCallback("slot_2", ui_events.BUTTON_CLICKED, self.slot_2, self) --self:AddCallback("slot_3", ui_events.BUTTON_CLICKED, self.slot_3, self) self:AddCallback("quits", ui_events.BUTTON_CLICKED, self.quits, self) end function hud_ui:slot_1() level.start_stop_menu(hud_slot_1(get_hud()), true) self:quits() end function hud_ui:slot_2() level.start_stop_menu(hud_slot_2(get_hud()), true) self:quits() end --[[function hud_ui:slot_3() level.start_stop_menu(hud_slot_3(get_hud()), true) self:quits() end]] function hud_ui:quits() self:GetHolder():start_stop_menu(self,true) end --Окно --для --апгрейда --оружия в --1 слоте ----------------------------------------- class "hud_slot_1" (CUIScriptWnd) function hud_slot_1:__init(owner) super() self.owner = owner self:S1Controls() self:S1CallBacks() end function hud_ui:__finalize() end ----------------------------------------- function hud_slot_1:S1Controls() self:Init(0,0,1024,768) local hud = CScriptXmlInit() hud:ParseFile("upgrade.xml") hud:InitStatic("background", self) self:Register(hud:Init3tButton("slot_1", self),"slot_1") self:Register(hud:Init3tButton("slot_2", self),"slot_2") self:Register(hud:Init3tButton("slot_3", self),"slot_3") self:Register(hud:Init3tButton("mag_1", self),"mag_1") self:Register(hud:Init3tButton("mag_2", self),"mag_2") self:Register(hud:Init3tButton("mag_3", self),"mag_3") self:Register(hud:Init3tButton("list_1", self),"list_1") self:Register(hud:Init3tButton("list_2", self),"list_2") self:Register(hud:Init3tButton("list_3", self),"list_3") self:Register(hud:Init3tButton("prugina_1", self),"prugina_1") self:Register(hud:Init3tButton("prugina_2", self),"prugina_2") self:Register(hud:Init3tButton("prugina_3", self),"prugina_3") self:Register(hud:Init3tButton("quits", self),"quits") ------------------------------------------------------------------------ local weapon = db.actor:item_in_slot(1) if weapon ~= nil then local wpn = weapon:section() ------------------------------------------------------------------------ if string.sub(wpn,1,7) == "wpn_pm_" then self:Register(hud:Init3tButton("pm_",self),"pm_") elseif string.sub(wpn,1,7) == "wpn_pb_" then self:Register(hud:Init3tButton("pb_",self),"pb_") elseif string.sub(wpn,1,12) == "wpn_beretta_" then self:Register(hud:Init3tButton("beretta_",self),"beretta_") elseif string.sub(wpn,1,13) == "wpn_colt1911_" then self:Register(hud:Init3tButton("colt1911_",self),"colt1911_") elseif string.sub(wpn,1,17) == "wpn_desert_eagle_" then self:Register(hud:Init3tButton("desert_eagle_",self),"desert_eagle_") elseif string.sub(wpn,1,9) == "wpn_fort_" then self:Register(hud:Init3tButton("fort_",self),"fort_") elseif string.sub(wpn,1,9) == "wpn_hpsa_" then self:Register(hud:Init3tButton("hpsa_",self),"hpsa_") elseif string.sub(wpn,1,11) == "wpn_sig220_" then self:Register(hud:Init3tButton("sig220_",self),"sig220_") elseif string.sub(wpn,1,12) == "wpn_walther_" then self:Register(hud:Init3tButton("walther_",self),"walther_") ------------------------------------------------------------ else return end else return end end function hud_slot_1:S1CallBacks() self:AddCallback("slot_1", ui_events.BUTTON_CLICKED, self.slot_1, self) self:AddCallback("slot_2", ui_events.BUTTON_CLICKED, self.slot_2, self) --self:AddCallback("slot_3", ui_events.BUTTON_CLICKED, self.slot_3, self) self:AddCallback("quits", ui_events.BUTTON_CLICKED, self.quits, self) end function hud_slot_1:slot_1() level.start_stop_menu(hud_slot_1(get_hud()), true) self:quits() end function hud_slot_1:slot_2() level.start_stop_menu(hud_slot_2(get_hud()), true) self:quits() end --[[function hud_slot_1:slot_3() level.start_stop_menu(hud_slot_3(get_hud()), true) self:quits() end]] function hud_slot_1:quits() self:GetHolder():start_stop_menu(self,true) end --Окно --для --апгрейда --оружия в --2 слоте ----------------------------------------- class "hud_slot_2" (CUIScriptWnd) function hud_slot_2:__init(owner) super() self.owner = owner self:S2Controls() self:S2CallBacks() end function hud_ui:__finalize() end ----------------------------------------- function hud_slot_2:S2Controls() self:Init(0,0,1024,768) local hud = CScriptXmlInit() hud:ParseFile("upgrade.xml") hud:InitStatic("background", self) self:Register(hud:Init3tButton("slot_1", self),"slot_1") self:Register(hud:Init3tButton("slot_2", self),"slot_2") self:Register(hud:Init3tButton("slot_3", self),"slot_3") self:Register(hud:Init3tButton("mag_1", self),"mag_1") self:Register(hud:Init3tButton("mag_2", self),"mag_2") self:Register(hud:Init3tButton("mag_3", self),"mag_3") self:Register(hud:Init3tButton("list_1", self),"list_1") self:Register(hud:Init3tButton("list_2", self),"list_2") self:Register(hud:Init3tButton("list_3", self),"list_3") self:Register(hud:Init3tButton("prugina_1", self),"prugina_1") self:Register(hud:Init3tButton("prugina_2", self),"prugina_2") self:Register(hud:Init3tButton("prugina_3", self),"prugina_3") self:Register(hud:Init3tButton("tormoz_1", self),"tormoz_1") self:Register(hud:Init3tButton("tormoz_2", self),"tormoz_2") self:Register(hud:Init3tButton("tormoz_3", self),"tormoz_3") self:Register(hud:Init3tButton("quits", self),"quits") ------------------------------------------------------------------------ local weapon = db.actor:item_in_slot(2) if weapon ~= nil then local wpn = weapon:section() ------------------------------------------------------------------------ if string.sub(wpn,1,11) == "wpn_abakan_" then self:Register(hud:Init3tButton("abakan_", self),"abakan_") elseif string.sub(wpn,1,9) == "wpn_ak74_" then self:Register(hud:Init3tButton("ak74_",self),"ak74_") elseif string.sub(wpn,1,10) == "wpn_ak74u_" then self:Register(hud:Init3tButton("ak74u_",self),"ak74u_") elseif string.sub(wpn,1,9) == "wpn_bm16_" then self:Register(hud:Init3tButton("bm16_",self),"bm16_") elseif string.sub(wpn,1,11) == "wpn_fn2000_" then self:Register(hud:Init3tButton("fn2000_",self),"fn2000_") elseif string.sub(wpn,1,8) == "wpn_g36_" then self:Register(hud:Init3tButton("g36_",self),"g36_") elseif string.sub(wpn,1,10) == "wpn_lr300_" then self:Register(hud:Init3tButton("lr300_",self),"lr300_") elseif string.sub(wpn,1,10) == "wpn_groza_" then self:Register(hud:Init3tButton("groza_",self),"groza_") elseif string.sub(wpn,1,11) == "wpn_sig550_" then self:Register(hud:Init3tButton("sig550_",self),"sig550_") elseif string.sub(wpn,1,20) == "wpn_wincheaster1300_" then self:Register(hud:Init3tButton("wincheaster1300_",self),"wincheaster1300_") elseif string.sub(wpn,1,8) == "wpn_svd_" then self:Register(hud:Init3tButton("svd_",self),"svd_") elseif string.sub(wpn,1,8) == "wpn_svu_" then self:Register(hud:Init3tButton("svu_",self),"svu_") elseif string.sub(wpn,1,10) == "wpn_mac10_" then self:Register(hud:Init3tButton("mac10_",self),"mac10_") elseif string.sub(wpn,1,13) == "wpn_vintorez_" then self:Register(hud:Init3tButton("vintorez_",self),"vintorez_") elseif string.sub(wpn,1,8) == "wpn_val_" then self:Register(hud:Init3tButton("val_",self),"val_") elseif string.sub(wpn,1,10) == "wpn_spas12_" then self:Register(hud:Init3tButton("spas12_",self),"spas12_") elseif string.sub(wpn,1,8) == "wpn_l85_" then self:Register(hud:Init3tButton("l85_",self),"l85_") elseif string.sub(wpn,1,10) == "wpn_toz34_" then self:Register(hud:Init3tButton("toz34_",self),"toz34_") elseif string.sub(wpn,1,8) == "wpn_mp5_" then self:Register(hud:Init3tButton("mp5_",self),"mp5_") elseif string.sub(wpn,1,9) == "wpn_rpg7_" then self:Register(hud:Init3tButton("rpg7_",self),"rpg7_") ------------------------------------------------------ else return end else return end end function hud_slot_2:S2CallBacks() self:AddCallback("slot_1", ui_events.BUTTON_CLICKED, self.slot_1, self) self:AddCallback("slot_2", ui_events.BUTTON_CLICKED, self.slot_2, self) --self:AddCallback("slot_3", ui_events.BUTTON_CLICKED, self.slot_3, self) self:AddCallback("quits", ui_events.BUTTON_CLICKED, self.quits, self) end function hud_slot_2:slot_1() level.start_stop_menu(hud_slot_1(get_hud()), true) self:quits() end function hud_slot_2:slot_2() level.start_stop_menu(hud_slot_2(get_hud()), true) self:quits() end --[[function hud_slot_2:slot_3() level.start_stop_menu(hud_slot_3(get_hud()), true) self:quits() end]] function hud_slot_2:quits() self:GetHolder():start_stop_menu(self,true) end Но вот подумал в инвентаре ведь отображаются иконки оружия и брони в слотах, и если ствол апгрейдный то и иконка меняется, если с прицелом то и иконка соответствующая ... значит нужно найти этот скрипт ... Извините если кому чем помешал ... просто эта проблема меня уже неделю мучает ... вернее я ее и она меня ... --------------------------------------------------------------------------------------------------------------------------- Вот еще вопрос назрел вот это совмещение строк: "wpn_".."mag_1" ну это я так к примеру написал, но можно ли сделать удаление символа? Изменено 7 Августа 2010 пользователем Byurrer Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 31 Августа 2010 (изменено) Мужики выручайте застрял по полной! Проблема такова, я сделал смарт-террейн по статье на инсайде, вот что у меня получаеться в коде: [logic@esc_bandits_smart_terrain_bandit1_walker] active = walker@esc_bandits_smart_terrain_bandit1 [walker@esc_bandits_smart_terrain_bandit1] path_walk = bandit1_walk danger = danger_condition@esc_bandits_smart_terrain def_state_moving1 = patrol def_state_moving2 = patrol def_state_moving3 = patrol meet = no_meet [logic@esc_bandits_smart_terrain_bandit1_kamp] active = kamp@esc_bandits_smart_terrain_bandit1 [kamp@esc_bandits_smart_terrain_bandit1] center_point = bandit_kamp path_walk = bandit_kamp_task [logic@esc_bandits_smart_terrain_bandit2_walker] active = walker@esc_bandits_smart_terrain_bandit2 [walker@esc_bandits_smart_terrain_bandit2] path_walk = bandit2_walk path_look = bandit2_look danger = danger_condition@esc_bandits_smart_terrain [logic@esc_bandits_smart_terrain_bandit2_sleeper] active = sleeper@esc_bandits_smart_terrain_bandit2 [sleeper@esc_bandits_smart_terrain_bandit2] path_main = bandit2_sleep wakeable = false [logic@esc_bandits_smart_terrain_bandit3_walker] active = walker@esc_bandits_smart_terrain_bandit3 [walker@esc_bandits_smart_terrain_bandit3] path_walk = bandit3_walk path_look = bandit3_look [danger_condition@esc_bandits_smart_terrain] ignore_distance_corpse = 0 ignore_distance = 0 [871]; сам смарт ; cse_abstract properties section_name = smart_terrain name = esc_bandits_smart_terrain position = -179.694000,-2.288012,-53.680004 direction = 0.062321275472641,0.00316426996141672,0.0140644172206521 ; cse_alife_object properties game_vertex_id = 68 distance = 4.19999980926514 level_vertex_id = 70925 object_flags = 0xffffffbe custom_data = <<END [smart_terrain] type = esc_bandits_smart_terrain capacity = 3 squad = 1 groups = 5 respawn = esc_respawn_inventory_box_0000 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 4.5480751991272 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties [872];НПСы для смарта ; cse_abstract properties section_name = stalker name = esc_kancler position = -179.694000,-2.288012,-53.680004 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_senya ; cse_alife_object properties game_vertex_id = 68 distance = 0 level_vertex_id = 70925 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_bandits_smart_terrain = true END story_id = 10020 ; cse_visual properties visual_name = actors\soldier\soldier_beret_1 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 5 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -179.694000,-2.288012,-53.680004 upd:o_model = 0 upd:o_torso = 0.0280130300670862,0,0.999607563018799 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 5 ; cse_alife_monster_abstract properties 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 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties [873] ; cse_abstract properties section_name = stalker name = esc_kancler position = -179.694000,-2.288012,-53.680004 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_senya ; cse_alife_object properties game_vertex_id = 68 distance = 0 level_vertex_id = 70925 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_bandits_smart_terrain = true END story_id = 10021 ; cse_visual properties visual_name = actors\soldier\soldier_beret_1 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 5 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -179.694000,-2.288012,-53.680004 upd:o_model = 0 upd:o_torso = 0.0280130300670862,0,0.999607563018799 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 5 ; cse_alife_monster_abstract properties 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 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties [874] ; cse_abstract properties section_name = stalker name = esc_kancler position = -179.694000,-2.288012,-53.680004 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_senya ; cse_alife_object properties game_vertex_id = 68 distance = 0 level_vertex_id = 70925 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_bandits_smart_terrain = true END story_id = 10022 ; cse_visual properties visual_name = actors\soldier\soldier_beret_1 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 5 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -179.694000,-2.288012,-53.680004 upd:o_model = 0 upd:o_torso = 0.0280130300670862,0,0.999607563018799 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 5 ; cse_alife_monster_abstract properties 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 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties [bandit1_walk] points = p0,p1 p0:name = name00 p0:position = -175.667084,-4.136031,-47.569859 p0:game_vertex_id = 71 p0:level_vertex_id = 74841 p0:links = p1(1) p1:name = name01 p1:position = -168.147858,-4.774074,-45.499973 p1:game_vertex_id = 68 p1:level_vertex_id = 65072 p1:links = p0(1) [bandit_kamp] points = p0 p0:name = name00 p0:position = -179.694000,-2.288012,-53.680004 p0:game_vertex_id = 68 p0:level_vertex_id = 70925 [bandit_kamp_task] points = p0 p0:name = name00 p0:position = -175.667084,-4.136031,-47.569859 p0:game_vertex_id = 71 p0:level_vertex_id = 74841 [bandit2_walk] points = p0,p1 p0:name = name00 p0:position = -175.667084,-4.136031,-47.569859 p0:game_vertex_id = 71 p0:level_vertex_id = 74841 p0:links = p1(1) p1:name = name01 p1:position = -180.488449,-1.720561,-3-62.376045 p1:game_vertex_id = 68 p1:level_vertex_id = 70256 p1:links = p0(1) [bandit2_look] points = p0 p0:name = name00 p0:position = -179.694000,-2.288012,-53.680004 p0:game_vertex_id = 68 p0:level_vertex_id = 70925 [bandit2_sleep] points = p0 p0:name = name00 p0:position = -180.488449,-1.720561,-3-62.376045 p0:game_vertex_id = 68 p0:level_vertex_id = 70256 [bandit3_walk] points = p0,p1 p0:name = name00 p0:position = -180.488449,-1.720561,-3-62.376045 p0:game_vertex_id = 68 p0:level_vertex_id = 70256 p0:links = p1(1) p1:name = name01 p1:position = -175.667084,-4.136031,-47.569859 p1:game_vertex_id = 71 p1:level_vertex_id = 74841 p1:links = p0(1) [bandit3_look] points = p0 p0:name = name00 p0:position = -179.694000,-2.288012,-53.680004 p0:game_vertex_id = 68 p0:level_vertex_id = 70925 function load_job(sj, gname, type, squad, groups) ... if type == "esc_bandits_smart_terrain" then t = {section = "logic@esc_bandits_smart_terrain_bandit1_walker", idle = 0, timeout = 0, prior = 100, state = {0}, squad = squad, group = groups[1], position_threshold = 100, online = true, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_bandits_smart_terrain_bandit1_kamp", idle = 0, timeout = 0, prior = 100, state = {1},squad = squad, group = groups[1], position_threshold = 100, online = true, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_bandits_smart_terrain_bandit2_walker", idle = 0, prior = 5, state = {0}, squad = squad, group = groups[1], in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_bandits_smart_terrain_bandit2_sleeper", idle = 0, prior = 5, state = {1}, squad = squad, group = groups[1], in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_bandits_smart_terrain_bandit3_walker", idle = 0, prior = 5, state = {0, 1}, squad = squad, group = groups[1], in_rest = "", out_rest = ""} table.insert(sj, t) end ... ... function load_states(gname, type) ... if type == "esc_bandits_smart_terrain" then return function(gulag) if not db.actor then return gulag.state end if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then return 0 -- переключает всех мутантов/нпс на дневную работу else return 1 -- ереключает всех мутантов/нпс на ночную работу end end end ... ... function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "esc_bandits_smart_terrain" then return npc_community == "dolg" end ... И НПС спавняться прям на месте смарта и стоят а потом уходят в сторону лагеря новичков и вылет с логм: 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:\s.t.a.l.k.e.r\gamedata\scripts\state_mgr.script:145: C stack overflow Я понял что эта ошибка значит переполнение стека в скрипте (указанном) на 145 строке, как я понял подробнее это НПС переходят в смарт и не могут найти там работу либо смарт принимает их но число выше указанного (кол-ва людей)! И не могут они никак принять это смарт либо он их, помогите пожалуйста разобраться мне с этой проблемой! Изменено 31 Августа 2010 пользователем Byurrer Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 3 Сентября 2010 Kolmogor спасибо конечно, но я уж разобрался ... тупанул и задавал обычные вейпоинты, указывая поинты путей ... а надо было имя_смарта..поинт! А долговцев я прописал в комьюнити профилей созданных НПС! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 12 Сентября 2010 (изменено) malandrinus как сделать чтоб он не удалялся это я понял как, но как добавить свои строчки в контекстное меню (правая кнопка мыши) к примеру строчку "сделать" и при нажатии на нее выполнялся мой скрипт: upgr_1.script Или как назначить на использование предмета свой скрипт? Заранее спасибо! Добавлено через 2 мин.: Scarabay да дело не в юзабельности предмета, а использовании своего скрипта при использовании этого предмета! Все в чем вся проблема, думал думал и никак не могу найти где это прописать! И во еще вопрос: как можно через скрипт определить что игра началась и лока загружена? Изменено 12 Сентября 2010 пользователем Byurrer Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 17 Сентября 2010 (изменено) Garry_Galler спасибо! Но вот вопрос к твоему ответу: как я понял это идет проверка на калбэк юзанья? db.actor:set_callback(callback.use_object, this.OnUseActorObject) И вот: function OnUseObject(obj, who) Аргументы, следуя логическим размышлениям означают obj - юзенный объект, who - кто (но кто это?)? Извините за тупые вопросы но меня это интересует! Изменено 17 Сентября 2010 пользователем Byurrer Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 17 Ноября 2010 Мужики возник вопрос: как отследить последний воспроизведенный НПСом звук? Я конечно понимаю что это все происходит в xr_sound.script в функции: function play_sound(npc, themes, timeout) --// а именно на строке: --// для входных npc:play_sound(snd.into_id, 1, 0, 1, 0, db.sound[npc_id].last_snd[snd.into_id]+1) --// для рандомных npc:play_sound(snd.rnd_id, timeout+1, timeout, 1, 0, s) ... Но само воспроизведение звука немного не ясно ... тут испоьзуеться вроде такой метод: function play_sound(number, number, number, number, number, number); И все агрументы являються числами, и не могу понять что эти числа занчат, кто знает помогите пожалуйста! Еще пробовал просто вместо npc ставить db.actor либо переопределял ГГ как объект но все-равно не хочет воспроизводить звук возле ГГ. НПС проверял так: if type(npc) == 'number' then news_manager.send_tip(db.actor,"НПС = числу",0,"project_sip",10000) elseif type(npc) == 'table' then news_manager.send_tip(db.actor,"НПС = таблице",0,"project_sip",10000) elseif type(npc) == 'string' then news_manager.send_tip(db.actor,"НПС = строке",0,"project_sip",10000) else news_manager.send_tip(db.actor,"НПС = чему-то другому",0,"project_sip",10000) end Ставил сразу после воспроизведения звука. Выводит: "НПС = чему-то другому". Также копался в sound_theme.script но так и не нашел как формируеться название звука. Надеюсь на вашу помощь Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 18 Ноября 2010 bogdan.dm, на счет выбросов не знаю, а вот про спавн рандомных артов могу подсказать, тебе нужен к примеру такой скрипт: function random_spawn() local tab_art = {} -- сюда запишешь все секции артефактов, отсюда возьмешь artefacts.ltx local sect_art = tab_art[math.random(1,#tab_art)] alife():create(sect_art, вертексы и координаты сам пропиши) end Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 6 Декабря 2010 Возник очередной вопрос: как сделать типа просматриваемый список, типа если большой текст то активизируеться скрулбар(или как его еще называют точно не помню, ну типа ползунок чтобы вниз пролистать) а не весь текст выходит наружу? Я подумал что нужен такой метод: hud:InitSpinText("list", self) И правда он инициализирует маленькую фигню со стрелками, но текста внутри нее нету, а как сделать внутри нее текст и растянуть ее? Пробовал так: hud:InitSpinText("list", self):SetTextST("Модернизация оружия") Вылетает и пишет что метод не применим ... Заранее спасибо! Поделиться этим сообщением Ссылка на сообщение
Byurrer 0 Опубликовано 26 Декабря 2010 Здравтсвуйте! А кто-нибудь знает каким образом устоена работа приемника у Сидоровича? Каким образом сделать подобный приемник, не присваивая ему логику проигрывания? Поделиться этим сообщением Ссылка на сообщение