elfog 0 Опубликовано 27 Марта 2010 (изменено) как добавить в продажу к сидору амк рюкзак? Вроде как его название inventory_box. В общем когда добавляю его в sidr_supl то игра вылетает без лога. В чём проблема? Изменено 27 Марта 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 27 Марта 2010 LithOS спасибо morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 27 Марта 2010 (изменено) Попытался объединить Spawnermod (atom mod 5 сборка) и AMK 1.4.1, просто замещая файлы. Это привело к Expression : no_assert Function : CXML_IdToIndex<class CCharacterInfo>::GetById File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h Line : 112 Description : item not found, id Arguments : amk_artem_kulinar Попробовал объединить через smart mod manager 1.8.3. Заработало но хочется исправить ручками. Всё, сам разобрался. Проблема была в system.ltx Изменено 28 Марта 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 3 Апреля 2010 (изменено) Подскажите пожалуйста какое название секции у пива? Изменено 3 Апреля 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 3 Апреля 2010 andrewrap, Ага, я нашёл в картонном ящике, в лаборатории X-16. Где-то в углу стоял. У меня АМК 1.4.1. morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 8 Апреля 2010 (изменено) кровоSTALKER, beer мне не помогло пишет что нет такового. ------- banderos огромное тебе спасибо всё работает! Изменено 9 Апреля 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 13 Мая 2010 (изменено) Народ помогите, я попытался заспавнить аномалию через своё спавн меню, но вместо аномалии получи только визуальный эффект от нее, что в нее не кидай, как в нее не залезай - ноль реакции. В данный момент привести свой пример не могу. Изменено 13 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 14 Мая 2010 (изменено) Вот наконец-то руки дошли -- инициализация class "spawner" (CUIScriptWnd) -- инициализируем элементы интерфейса и каллбаки function spawner:__init(owner) super() self.owner = owner self:InitControls() self:InitCallBacks() end function spawner:__finalize() end function spawner:InitControls() self:SetWndRect (Frect():set(0,0,1000,1000)) -- файл-описатель наших элементов local xml = CScriptXmlInit() xml:ParseFile("ui_anomalii_menu.xml") -- видео на заднем плане xml:InitStatic("back_video", self) -- рамка xml:InitStatic("background", self) -- кнопки self:Register(xml:Init3tButton("btn_zone_mincer_weak", self),"btn_zone_mincer_weak") ------------------------------------------------------------------------------------ -- кнопка выхода self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") ----------------------------------------------------------------------------------------------------- xml:InitStatic("Info", self) end function spawner:InitCallBacks() self:AddCallback("btn_zone_mincer_weak", ui_events.BUTTON_CLICKED, self.spawn_zone_mincer_weak, self) self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) ----------------------------------- self:AddCallback("btn_back", ui_events.BUTTON_CLICKED, self.on_back, self) ------------------ end -- сразу создадим ф-ию для выхода function spawner:on_quit() -- убираем наше окно, показываем предыдущее (или возвращаемся в игру) local console = get_console() self:GetHolder():start_stop_menu (self.owner, true) self:GetHolder():start_stop_menu (self,true) self.owner:Show (true) -- скрытие главного меню только если запущена игра if self:check_game() then console:execute("main_menu off") end end -- spawn_item - необходимый предмет -- dist - радиус появления (случайно) function spawner:spawn_item(spawn_item, dist) -- спавним только в игре if self:check_game() then -- self:on_quit() local pos = db.actor:position() local dir = db.actor:direction() pos = pos:add(dir:mul(dist)) alife():create(spawn_item, pos, 1, db.actor:game_vertex_id()) end end function spawner:spawn_item_inv(spawn_item) -- спавним только в игре if self:check_game() then -- self:on_quit() alife():create (spawn_item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end function spawner:check_game() -- возвращает true если запущена игра local check = false if level.present() and (db.actor ~= nil) and db.actor:alive() then check = true end return check end function spawner:spawn_zone_mincer_weak() self:spawn_item("zone_mincer_weak", 3) end ---------------------Back------------------ function spawner:on_back() -- если еще ни разу не вызывали, то обозначим наш новый скрипт if self.ui_spawnerdlg == nil then self.ui_spawner_dlg = ui_spawner.spawner() self.ui_spawner_dlg.owner = self end -- останавливаем родительский элемент, запускаем свой, но родителя показываем. self:GetHolder():start_stop_menu(self.ui_spawner_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end Что здесь не так? Kirag, если честно нифига не понял, то есть не хочется полностью переделывать логику спавна, так как умею работать только с этой. Изменено 14 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 15 Мая 2010 Я спавню через спавн меню, которое вызывается походу игры через F1. Мне надо чтобы аномалия спавнилась в нескольких метрах от ГГ. Значит position не подходит - аномалия будет спавнится каждый раз в одном и том-же месте. За радиус появления предмета (аномалии), наверное отвечают эти строки -- spawn_item - необходимый предмет -- dist - радиус появления (случайно) function spawner:spawn_item(spawn_item, dist) -- спавним только в игре if self:check_game() then -- self:on_quit() local pos = db.actor:position() local dir = db.actor:direction() pos = pos:add(dir:mul(dist)) alife():create(spawn_item, pos, 1, db.actor:game_vertex_id()) end end function spawner:spawn_item_inv(spawn_item) -- спавним только в игре if self:check_game() then -- self:on_quit() alife():create (spawn_item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end function spawner:check_game() -- возвращает true если запущена игра local check = false if level.present() and (db.actor ~= nil) and db.actor:alive() then check = true end return check end И ссылку на теорию по вертексам можно? morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 16 Мая 2010 Я походу уже всех утомил, но что писать в an_spawn. Просто у меня снова встал вопрос с position. Можете привести конкретный пример для zone_mincer_weak значениями, а не an_spawn(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time_danger os) Ворос № 2, что делать со строкой self:AddCallback("btn_zone_mincer_weak", ui_events.BUTTON_CLICKED, self.spawn_zone_mincer_weak, self) morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 16 Мая 2010 (изменено) Kirag, Сделал, вроде, всё как надо function spawner:spawn_zone_mincer_weak() if self:check_game() then local anom_name = "zone_mincer_weak" local plosh = 4 local distance = plosh = 4 -- расстояние до границы аномалии local position = vector():mad(db.actor:position(),db.actor:direction(),8) local level_vertex_id = db.actor:level_vertex_id() local game_vertex_id = db.actor:game_vertex_id() local powers_a = 500 an_spawn("zone_mincer_weak",4,vector():mad(db.actor:position(),db.actor:direction(),8),db.actor:level_vertex_id(),db.actor:game_vertex_id(),500,nil) end 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: ...adow of chernobyl\gamedata\scripts\ui_spawner.script:419: attempt to index global 'ui_anomalii_menu' (a nil value) Где ui_spawner.script - описатель всех меню, хотя там всё правильно т.к. до новой функции меню работало нормально. Судя по логу ошибка в 419 строке function spawner:OnButton_anomalii_menu() if self.ui_anomalii_menu_dlg == nil then self.ui_anomalii_menu_dlg = ui_anomalii_menu.spawner() --- 419 строка self.ui_anomalii_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_anomalii_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end Что я накосячил либо не учёл? ------------------------------------ Кстати стоит ли выкладывать адаптированное под АМК 1.4.1. спавн меню, если да то надо ли создавать для этого отдельную тему в мастерской ТЧ? (Если заработает то даже с аномалиями) atom mod (spwnermod) + FIX для AMK 1.4.1. Кроме того что оно просто адаптировано лля АМК, я ещё и ввёл изменения ------>>> Оружие: Изменил названия на те что в АМК Добавил Огнемёт Исправил спавн Грозы (кнопка была, но не более) AMK: Спальный мешок Рюкзак GPS метка Элитный детектор аномалий Канистра Баллон Еда: Добавил пиво Разное: Добавил гитару и гармошку Монстры: Исправил спавн собаки (вместо нее спавнилась защита от пси воздействия) Кот Излом Тушкан Полтергейст Химера Зомби Ворона Бюрер Электро Химера Огненный Полтергейст Пси Собака Костюмы: Заменил старые(нерабочие) костюмы на нормальные. Добавил Скат-10 Добавил уникльную броню и оружие. Добавил все артефакты из амк. Добавил спавн всех предметов в радиусе 1-5 метров от ГГ. Остальное осталось тем же (оружие, медикаменты, боеприпасы, НПС, автомобили...) ВНИМАНИЕ!!! Мод затрагивает ui_main_menu.script, system.ltx и добавляет автомобили. Изменено 16 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 16 Мая 2010 ui_spawner_script - описатель самих меню, а не их содержимого. Либо я тебя не понял, либо меня не поняли. morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 16 Мая 2010 Darien, Скоро совсем запутаюсь. Итак... в ui_spawner могут быть интересны строки: конец строк self:register.... ,конец строк self:addcallback... и самый почти самый конец, где фигурирует функция function spawner:OnButton_anomalii_menu()... Извеняюсь что очень много function spawner:OnButton_anomalii_menu() -- Atom mod: micromod (Сборка 1) -- инициализация class "spawner" (CUIScriptWnd) -- инициализируем элементы интерфейса и каллбаки function spawner:__init(owner) super() self.owner = owner self:InitControls() self:InitCallBacks() end function spawner:__finalize() end function spawner:InitControls() self:SetWndRect (Frect():set(50,50,1000,1000)) -- файл-описатель наших элементов local xml = CScriptXmlInit() xml:ParseFile("ui_atom_mod.xml") -- видео на заднем плане xml:InitStatic("back_video", self) -- рамка xml:InitStatic("background", self) xml:InitStatic("Info", self) -- кнопки self:Register(xml:Init3tButton("btn_ammo_menu", self),"btn_ammo_menu") self:Register(xml:Init3tButton("btn_art_menu", self),"btn_art_menu") self:Register(xml:Init3tButton("btn_eat_menu", self),"btn_eat_menu") self:Register(xml:Init3tButton("btn_medic_menu", self),"btn_medic_menu") self:Register(xml:Init3tButton("btn_misc_menu", self),"btn_misc_menu") self:Register(xml:Init3tButton("btn_monster_menu", self),"btn_monster_menu") self:Register(xml:Init3tButton("btn_outfit_menu", self),"btn_outfit_menu") self:Register(xml:Init3tButton("btn_people_menu", self),"btn_people_menu") self:Register(xml:Init3tButton("btn_vehicles_menu", self),"btn_vehicles_menu") self:Register(xml:Init3tButton("btn_weapon_menu", self),"btn_weapon_menu") self:Register(xml:Init3tButton("btn_amk_menu", self),"btn_amk_menu") self:Register(xml:Init3tButton("btn_amkart_menu", self),"btn_amkart_menu") self:Register(xml:Init3tButton("btn_unique_menu", self),"btn_unique_menu") self:Register(xml:Init3tButton("btn_ammo_menu_out", self),"btn_ammo_menu_out") self:Register(xml:Init3tButton("btn_art_menu_out", self),"btn_art_menu_out") self:Register(xml:Init3tButton("btn_eat_menu_out", self),"btn_eat_menu_out") self:Register(xml:Init3tButton("btn_medic_menu_out", self),"btn_medic_menu_out") self:Register(xml:Init3tButton("btn_misc_menu_out", self),"btn_misc_menu_out") self:Register(xml:Init3tButton("btn_outfit_menu_out", self),"btn_outfit_menu_out") self:Register(xml:Init3tButton("btn_weapon_menu_out", self),"btn_weapon_menu_out") self:Register(xml:Init3tButton("btn_amk_menu_out", self),"btn_amk_menu_out") self:Register(xml:Init3tButton("btn_amkart_menu_out", self),"btn_amkart_menu_out") self:Register(xml:Init3tButton("btn_unique_menu_out", self),"btn_unique_menu_out") self:Register(xml:Init3tButton("btn_anomalii_menu", self),"btn_anomalii_menu") self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") end function spawner:InitCallBacks() -- тут интерактивные элементы, при определенном действии выполняется заданная ф-ия self:AddCallback("btn_ammo_menu", ui_events.BUTTON_CLICKED, self.OnButton_ammo_menu, self) self:AddCallback("btn_art_menu", ui_events.BUTTON_CLICKED, self.OnButton_art_menu, self) self:AddCallback("btn_eat_menu", ui_events.BUTTON_CLICKED, self.OnButton_eat_menu, self) self:AddCallback("btn_medic_menu", ui_events.BUTTON_CLICKED, self.OnButton_medic_menu, self) self:AddCallback("btn_misc_menu", ui_events.BUTTON_CLICKED, self.OnButton_misc_menu, self) self:AddCallback("btn_monster_menu", ui_events.BUTTON_CLICKED, self.OnButton_monster_menu, self) self:AddCallback("btn_outfit_menu", ui_events.BUTTON_CLICKED, self.OnButton_outfit_menu, self) self:AddCallback("btn_people_menu", ui_events.BUTTON_CLICKED, self.OnButton_people_menu, self) self:AddCallback("btn_vehicles_menu", ui_events.BUTTON_CLICKED, self.OnButton_vehicles_menu, self) self:AddCallback("btn_weapon_menu", ui_events.BUTTON_CLICKED, self.OnButton_weapon_menu, self) self:AddCallback("btn_amk_menu", ui_events.BUTTON_CLICKED, self.OnButton_amk_menu, self) self:AddCallback("btn_amkart_menu", ui_events.BUTTON_CLICKED, self.OnButton_amkart_menu, self) self:AddCallback("btn_unique_menu", ui_events.BUTTON_CLICKED, self.OnButton_unique_menu, self) self:AddCallback("btn_ammo_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_ammo_menu_out, self) self:AddCallback("btn_art_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_art_menu_out, self) self:AddCallback("btn_eat_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_eat_menu_out, self) self:AddCallback("btn_medic_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_medic_menu_out, self) self:AddCallback("btn_misc_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_misc_menu_out, self) self:AddCallback("btn_outfit_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_outfit_menu_out, self) self:AddCallback("btn_weapon_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_weapon_menu_out, self) self:AddCallback("btn_amk_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_amk_menu_out, self) self:AddCallback("btn_amkart_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_amkart_menu_out, self) self:AddCallback("btn_unique_menu_out", ui_events.BUTTON_CLICKED, self.OnButton_unique_menu_out, self) self:AddCallback("btn_anomalii_menu", ui_events.BUTTON_CLICKED, self.OnButton_anomalii_menu, self) ---quit--- self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) end -- сразу создадим ф-ию для выхода function spawner:on_quit() -- убираем наше окно, показываем предыдущее (или возвращаемся в игру) local console = get_console() self:GetHolder():start_stop_menu (self.owner, true) self:GetHolder():start_stop_menu (self,true) self.owner:Show (true) -- скрытие главного меню только если запущена игра if self:check_game() then console:execute("main_menu off") end end -- spawn_item - необходимый предмет -- dist - радиус появления (случайно) function spawner:spawn_item(spawn_item, dist) -- спавним только в игре if self:check_game() then -- self:on_quit() alife():create (spawn_item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end function spawner:spawn_item_inv(spawn_item) -- спавним только в игре if self:check_game() then -- self:on_quit() local pos = db.actor:position() local dir = db.actor:direction() pos = pos:add(dir:mul(dist)) alife():create(spawn_item, pos, 1, db.actor:game_vertex_id()) end end function spawner:check_game() -- возвращает true если запущена игра local check = false if level.present() and (db.actor ~= nil) and db.actor:alive() then check = true end return check end ------------------------------------------- function spawner:OnButton_weapon_menu() if self.ui_weapon_menu_dlg == nil then self.ui_weapon_menu_dlg = ui_weapon_menu.spawner() self.ui_weapon_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_weapon_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_ammo_menu() if self.ui_ammo_menu_dlg == nil then self.ui_ammo_menu_dlg = ui_ammo_menu.spawner() self.ui_ammo_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_ammo_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_eat_menu() if self.ui_eat_menu_dlg == nil then self.ui_eat_menu_dlg = ui_eat_menu.spawner() self.ui_eat_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_eat_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_art_menu() if self.ui_art_menu_dlg == nil then self.ui_art_menu_dlg = ui_art_menu.spawner() self.ui_art_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_art_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_medic_menu() if self.ui_medic_menu_dlg == nil then self.ui_medic_menu_dlg = ui_medic_menu.spawner() self.ui_medic_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_medic_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_people_menu() if self.ui_people_menu_dlg == nil then self.ui_people_menu_dlg = ui_people_menu.spawner() self.ui_people_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_people_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_monster_menu() if self.ui_monster_menu_dlg == nil then self.ui_monster_menu_dlg = ui_monster_menu.spawner() self.ui_monster_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_monster_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_vehicles_menu() if self.ui_vehicles_menu_dlg == nil then self.ui_vehicles_menu_dlg = ui_vehicles_menu.spawner() self.ui_vehicles_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_vehicles_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_outfit_menu() if self.ui_outfit_menu_dlg == nil then self.ui_outfit_menu_dlg = ui_outfit_menu.spawner() self.ui_outfit_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_outfit_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_misc_menu() if self.ui_misc_menu_dlg == nil then self.ui_misc_menu_dlg = ui_misc_menu.spawner() self.ui_misc_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_misc_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_amk_menu() if self.ui_amk_menu_dlg == nil then self.ui_amk_menu_dlg = ui_amk_menu.spawner() self.ui_amk_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_amk_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_amkart_menu() if self.ui_amkart_menu_dlg == nil then self.ui_amkart_menu_dlg = ui_amkart_menu.spawner() self.ui_amkart_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_amkart_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_unique_menu() if self.ui_unique_menu_dlg == nil then self.ui_unique_menu_dlg = ui_unique_menu.spawner() self.ui_unique_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_unique_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_weapon_menu_out() if self.ui_weapon_menu_out_dlg == nil then self.ui_weapon_menu_out_dlg = ui_weapon_menu_out.spawner() self.ui_weapon_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_weapon_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_ammo_menu_out() if self.ui_ammo_menu_out_dlg == nil then self.ui_ammo_menu_out_dlg = ui_ammo_menu_out.spawner() self.ui_ammo_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_ammo_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_eat_menu_out() if self.ui_eat_menu_out_dlg == nil then self.ui_eat_menu_out_dlg = ui_eat_menu_out.spawner() self.ui_eat_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_eat_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_art_menu_out() if self.ui_art_menu_out_dlg == nil then self.ui_art_menu_out_dlg = ui_art_menu_out.spawner() self.ui_art_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_art_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_medic_menu_out() if self.ui_medic_menu_out_dlg == nil then self.ui_medic_menu_out_dlg = ui_medic_menu_out.spawner() self.ui_medic_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_medic_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_outfit_menu_out() if self.ui_outfit_menu_out_dlg == nil then self.ui_outfit_menu_out_dlg = ui_outfit_menu_out.spawner() self.ui_outfit_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_outfit_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_misc_menu_out() if self.ui_misc_menu_dlg == nil then self.ui_misc_menu_out_dlg = ui_misc_menu_out.spawner() self.ui_misc_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_misc_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_amk_menu_out() if self.ui_amk_menu_out_dlg == nil then self.ui_amk_menu_out_dlg = ui_amk_menu_out.spawner() self.ui_amk_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_amk_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_amkart_menu_out() if self.ui_amkart_menu_out_dlg == nil then self.ui_amkart_menu_out_dlg = ui_amkart_menu_out.spawner() self.ui_amkart_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_amkart_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_unique_menu_out() if self.ui_unique_menu_out_dlg == nil then self.ui_unique_menu_out_dlg = ui_unique_menu_out.spawner() self.ui_unique_menu_out_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_unique_menu_out_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end function spawner:OnButton_anomalii_menu() if self.ui_anomalii_menu_dlg == nil then self.ui_anomalii_menu_dlg = ui_anomalii_menu.spawner() self.ui_anomalii_menu_dlg.owner = self end self:GetHolder():start_stop_menu(self.ui_anomalii_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end --------------------------------------------------------------------------------------------------------- function spawner:OnButton_next_menu() -- если еще ни разу не вызывали, то обозначим наш новый скрипт if self.ui_spawner_menu_dlg == nil then self.ui_spawner_menu_dlg = ui_spawner_menu.spawner() self.ui_spawner_menu_dlg.owner = self end -- останавливаем родительский элемент, запускаем свой, но родителя показываем. self:GetHolder():start_stop_menu(self.ui_spawner_menu_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------- А так же ui_anomalii_menu.script, если у кого-то будет желание разгребать... -- Atom mod: micromod (Сборка 1) -- инициализация class "spawner" (CUIScriptWnd) -- инициализируем элементы интерфейса и каллбаки function spawner:__init(owner) super() self.owner = owner self:InitControls() self:InitCallBacks() end function spawner:__finalize() end function spawner:InitControls() self:SetWndRect (Frect():set(0,0,1000,1000)) -- файл-описатель наших элементов local xml = CScriptXmlInit() xml:ParseFile("ui_anomalii_menu.xml") -- видео на заднем плане xml:InitStatic("back_video", self) -- рамка xml:InitStatic("background", self) -- кнопки self:Register(xml:Init3tButton("btn_zone_mincer_weak", self),"btn_zone_mincer_weak") ------------------------------------------------------------------------------------ -- кнопка выхода self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") ----------------------------------------------------------------------------------------------------- xml:InitStatic("Info", self) end function spawner:InitCallBacks() self:AddCallback("btn_zone_mincer_weak", ui_events.BUTTON_CLICKED, self.spawn_zone_mincer_weak, self) self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) ----------------------------------- self:AddCallback("btn_back", ui_events.BUTTON_CLICKED, self.on_back, self) ------------------ end -- сразу создадим ф-ию для выхода function spawner:on_quit() -- убираем наше окно, показываем предыдущее (или возвращаемся в игру) local console = get_console() self:GetHolder():start_stop_menu (self.owner, true) self:GetHolder():start_stop_menu (self,true) self.owner:Show (true) -- скрытие главного меню только если запущена игра if self:check_game() then console:execute("main_menu off") end end -- spawn_item - необходимый предмет -- dist - радиус появления (случайно) function spawner:spawn_item(spawn_item, dist) -- спавним только в игре if self:check_game() then -- self:on_quit() local pos = db.actor:position() local dir = db.actor:direction() pos = pos:add(dir:mul(dist)) alife():create(spawn_item, pos, 1, db.actor:game_vertex_id()) end end function spawner:spawn_item_inv(spawn_item) -- спавним только в игре if self:check_game() then -- self:on_quit() alife():create (spawn_item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end function spawner:check_game() -- возвращает true если запущена игра local check = false if level.present() and (db.actor ~= nil) and db.actor:alive() then check = true end return check end function spawner:spawn_zone_mincer_weak() if self:check_game() then local anom_name = "zone_mincer_weak" local plosh = 4 local distance = plosh = 4 -- расстояние до границы аномалии local position = vector():mad(db.actor:position(),db.actor:direction(),8) local level_vertex_id = db.actor:level_vertex_id() local game_vertex_id = db.actor:game_vertex_id() local powers_a = 500 an_spawn("zone_mincer_weak",4,vector():mad(db.actor:position(),db.actor:direction(),8),db.actor:level_ vertex_id(),db.actor:game_vertex_id(),500,nil) end end ---------------------Back------------------ function spawner:on_back() -- если еще ни разу не вызывали, то обозначим наш новый скрипт if self.ui_spawnerdlg == nil then self.ui_spawner_dlg = ui_spawner.spawner() self.ui_spawner_dlg.owner = self end -- останавливаем родительский элемент, запускаем свой, но родителя показываем. self:GetHolder():start_stop_menu(self.ui_spawner_dlg, true) self:GetHolder():start_stop_menu(self, true) self:Show(false) end morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 18 Мая 2010 (изменено) Так? function: an_spawn ("zone_mincer_weak",4,vector():mad(db.actor:position(),db.actor:direction(),8),db.actor:level_ vertex_id(),db.actor:game_vertex_id(),500,nil) if self:check_game() then local anom_name = "zone_mincer_weak" local plosh = 4 local distance = plosh = 4 -- расстояние до границы аномалии local position = vector():mad(db.actor:position(),db.actor:direction(),8) local level_vertex_id = db.actor:level_vertex_id() local game_vertex_id = db.actor:game_vertex_id() local powers_a = 500 end end ---------- Кстати как на этом сайте плюсы давать, а то я чего то не могу их найти. ---------- Стоит ли выкладывать адаптированное под АМК 1.4.1. спавн меню, если да то надо ли создавать для этого отдельную тему в мастерской ТЧ? (Если заработает то даже с аномалиями) atom mod (spwnermod) + FIX для AMK 1.4.1. Кроме того что оно просто адаптировано лля АМК, я ещё и ввёл изменения ------>>> Оружие: Изменил названия на те что в АМК Добавил Огнемёт Исправил спавн Грозы (кнопка была, но не более) AMK: Спальный мешок Рюкзак GPS метка Элитный детектор аномалий Канистра Баллон Еда: Добавил пиво smile.gif Разное: Добавил гитару и гармошку Монстры: Исправил спавн собаки (вместо нее спавнилась защита от пси воздействия) Кот Излом Тушкан Полтергейст Химера Зомби Ворона Бюрер Электро Химера Огненный Полтергейст Пси Собака Костюмы: Заменил старые(нерабочие) костюмы на нормальные. Добавил Скат-10 Добавил уникльную броню и оружие. Добавил все артефакты из амк. Добавил спавн всех предметов в радиусе 1-5 метров от ГГ. Остальное осталось тем же (оружие, медикаменты, боеприпасы, НПС, автомобили...) ВНИМАНИЕ!!! Мод затрагивает ui_main_menu.script, system.ltx и добавляет автомобили. Изменено 19 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 18 Мая 2010 (изменено) Kirag, И снова я по поводу спавна аномалий... Можешь дать готовую функцию спавна, с её вызовом как пример, а то когда перед глазами есть пример учиться гораздо проще. А ссылку (если есть таковая) на полную статью по функциям можно? А то ведь это основа основ... забегать наперёд для меня было лишним. Изменено 18 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 20 Мая 2010 (изменено) Спавн я всё таки победил спасибо Kirag'у, Вопрос таков, как вызвать преждевременный выброс? Всё для вызова уже есть. Как называется функция отвечающая за выброс и где она лежит? Изменено 20 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 21 Мая 2010 (изменено) max_max_08, за саму идею с таймером спасибо, но я не очень понял, что ты имеешь в виду, под именем таймера? Ты имеешь в виду к чему он привязывается? А можно ли напрямую вызвать выброс, без таймера? ЗЫ. Вопрос по тем же аномалиям, почему созданную мной аномалию все, без исключения, НПС не видят в упор, как будто для них ее нету? Аномалия срабатывает ... хрусь и трупы. Ещё один вопрос, аномалия после выбросов исчезать будет? Изменено 21 Мая 2010 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 24 Августа 2010 Здрасте, я уже когда-то задавал вопрос про спавн аномалий во время игры через скрипт. Так вот, была проблема с тем что созданную мною аномалию НПС ы не замечали, хотя после выбросов аномалии исчезают и появляются в разных местах, и при этом НПС обходят их очень успешно. Так вот, можете описать что происходит во время выброса и где можно это посмотреть? morda. cod4 player Поделиться этим сообщением Ссылка на сообщение
elfog 0 Опубликовано 31 Декабря 2010 (изменено) С Новым Годом форумчане :ny_happy: ! У меня созрело пару вопросов ещё со времен первого прохождения ЗП, так вот: можно ли в ТЧ нумеровать варианты ответов в диалогах с НПС'сами 1. ..... 2. ..... 3. ..... и т.д.; И можно ли сделать так, чтобы по окончании загрузки было действие вроде: "Нажмите ENTER чтобы продолжить"? ----------- n6260, спасибо, поискал, но не нашёл. =( З.Ы. Про нумерацию, я имею в ввиду, чтобы можно было управлять нажатиями цифр на клавиатуре. Изменено 2 Января 2011 пользователем elfog morda. cod4 player Поделиться этим сообщением Ссылка на сообщение