Это популярное сообщение. Dennis_Chikin 3 665 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-847221
shooting unicorn 0 Опубликовано 15 Мая 2010 Поделиться Опубликовано 15 Мая 2010 Сталкеры, подскажите, пожалуйста, как сделать так, чтобы после каждого выброса в определенных мною местах, спаунилось определенное колличество каких-нибудь монстров? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-440597
Kirag 41 Опубликовано 15 Мая 2010 Поделиться Опубликовано 15 Мая 2010 elfog Ну, приступим. Не знаю, что за спавн-мод у тебя стоит, но не важно, работаем с тем, что есть Ты создал функцию function spawner:spawn_zone_mincer_weak() self:spawn_item("zone_mincer_weak", 3) end запускающуюся при нажатии на кнопку. Допустим, до этого момента все правильно - с меню у меня хуже, чем преотвратно, проверить не могу. Обрати внимание, что параметры спавна - секция объекта и расстояние перед носом актора, на котором появится объект - задаются прямо здесь. Вот здесь же и зададим все остальные нужные аномалии параметры. Первым делом убираем из нее строку self:spawn_item("zone_mincer_weak", 3) - спавнить будем другой функцией: an_spawn(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time_d angeros) Пойдем по пунктам: anom_name - секция аномалии, в данном случае "zone_mincer_weak" plosh - радиус аномалии - поставь метра 4, больше не стоит, меньше бессмысленно - "карусель" толком не сработает. position - ты хочешь спавнить в N метрах перед носом. Значит, position = vector():mad(db.actor:position(),db.actor:direction(),N) Само собой, ставить N меньше радиуса аномалии неразумно. level_vertex_id - левел вертекс. Ставим от актора: level_vertex_id = db.actor:level_vertex_id() game_vertex_id - гейм вертекс. Ставим от актора: game_vertex_id = db.actor:game_vertex_id() powers_a - сила аномалии. Для гарантированного летального исхода (как по описанию) ставь 500. time_dangeros - хрен его знает, зачем оно. Ставь nil и не заморачивайся. Теперь собираем все вместе, и заодно проверяем, что игра запущена: 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(),distance) local level_vertex_id = db.actor:level_vertex_id() local game_vertex_id = db.actor:game_vertex_id() local powers_a = 500 an_spawn(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time_danger os) end end И в самом конце файла впиши функцию спавна, что я давал. Должно заработать. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-440789
Darien 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 16 Мая 2010 (изменено) Kirag Небольшая поправочка. Аномалии zone_mincer_weak в ЗП нету. Я проверил все файлы аномалии, вот такая табличка существующих у меня вышла: local zones_mine = { "zone_mine_acidic", -- зелёный пар с кислотой "zone_buzz", -- тоже кислота "zone_mine_electric", -- электра, только видно хуже (как в 'Железном лесу') "zone_witches_galantine", -- электра из тч "zone_mine_gravitational_strong", -- ну тут понятно "zone_mine_thermal", -- жарка "zone_zharka_static" -- тоже самое } Также есть ещё и поля (4 вида), не атакуют, но придают эффект при приближении. Vano_Santuri Всё это конечно хорошо, только смысла от этих weak, average и strong в этом случае нету. Ведь сила аномалии и радиус и так указываются скриптом. Тфу блин, тема то по ТЧ. Kirag извиняюсь за ложную поправку. Изменено 16 Мая 2010 пользователем Darien Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441070
Vano_Santuri 35 Опубликовано 16 Мая 2010 Поделиться Опубликовано 16 Мая 2010 Может мою табличку посмотришь? local anomalies = {"zone_mine_acidic_weak","zone_mine_acidic_average","zone_mine_acidic_strong", "zone_mine_acidic_big","zone_mine_chemical_weak","zone_mine_chemical_average","zone_mine_chemical_strong", "zone_buzz_weak","zone_buzz_average","zone_buzz_strong","zone_mine_electric_weak","zone_mine_electric_average", "zone_mine_electric_strong","zone_witches_galantine_weak","zone_witches_galantine_average","zone_witches_galantine_strong", "zone_mine_gravitational_average","zone_mine_gravitational_weak","zone_mine_gravitational_big","zone_gravi_zone", "zone_mine_thermal_weak","zone_mine_thermal_average","zone_mine_thermal_strong","zone_mine_steam_weak", "zone_mine_steam_average","zone_mine_steam_strong","zone_zharka_static_weak","zone_zharka_static_average", "zone_zharka_static_strong"} Ну как? Что-то кончается, что-то начинается... Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441076
elfog 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441144
Kirag 41 Опубликовано 16 Мая 2010 Поделиться Опубликовано 16 Мая 2010 Darien В ЗП, возможно, аномалии другие, я в нем не копался, но тема ж про ТЧ! По умолчанию, и вопрос считаем про ТЧ. elfog, я ж именно конкретный пример и привел в последнем спойлере, все эти local там стоят неспроста - именно в них и задаются параметры аномалии перед спавном. Имена переменных в них абсолютно намеренно совпадают с именами аргументов функции, это сделано именно затем, чтобы значения, ранее определенные, сами подставились в функцию спавна. В переводе на русский, с моими цифрами, результат выполнения функции "spawner:spawn_zone_mincer_weak() " будет следующий: "заспавнить аномалию "zone_mincer_weak" радиусом 4 метра и мощностью 500 у.е. перед носом актора так, чтобы ближайший край аномалии был от него на расстоянии 4 метра" Если хочешь все то же самое, но в одну строчку, это будет выглядеть так: 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) По второму вопросу - хоть я и плохо понимаю в создании меню, но по-моему тут все нормально, оставь ее как есть. Эта строка гласит "при нажатии на кнопку "btn_zone_mincer_weak" выполнить функцию "spawner:spawn_zone_mincer_weak() " " Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441242
elfog 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441437
Darien 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 16 Мая 2010 elfog У тебя функция спавна называется spawn_zone_mincer_weak(), а ты вызываешь некую ui_anomalii_menu.spawner(). Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441459
elfog 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 16 Мая 2010 ui_spawner_script - описатель самих меню, а не их содержимого. Либо я тебя не понял, либо меня не поняли. morda. cod4 player Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441468
Darien 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 16 Мая 2010 (изменено) elfog Если вот эта строка у тебя должна вызывать спавн аномалии, то замени её self.ui_anomalii_menu_dlg = ui_anomalii_menu.spawner() На вот эту self.ui_anomalii_menu_dlg = ui_anomalii_menu.spawn_zone_mincer_weak() Вариант "чисто попробовать", я не знаю, как у тебя там сейчас функции называются, и не видя полного кода, который у тебя в данный момент, не особо то что скажешь. Изменено 16 Мая 2010 пользователем Darien Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441475
elfog 0 Опубликовано 16 Мая 2010 Поделиться Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441480
Kirag 41 Опубликовано 17 Мая 2010 Поделиться Опубликовано 17 Мая 2010 (изменено) elfog, да-а-а... Прикольнулся ты знатно в функции spawner:spawn_zone_mincer_weak() Либо не нужны все local, либо не нужно те же значения задавать в вызове функции an_spawn. Впрочем, плевать, работать будет и в таком виде. Но, посмотрел файл ui_anomali_menu.script, а где же сама функция an_spawn? Ты пытаешься вызвать несуществующую функцию, как результат - должно послать, правда, не уверен, что именно в той форме, что послало тебя. Но функцию допиши обязательно, без нее работать 100% не будет. Лог переводится (на понятный, а не дословно на русский!) так, что какая-то лажа с файлом ui_anomalii_menu, из-за которой файл не воспринимается. Внимательно проверь, все ли скобки правильно закрыты, end-ы проставлены, везде ли стоит then после if, не перепутал ли операторы сравнения и присваивания. Может еще какой вариант найдется... Изменено 17 Мая 2010 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-441878
elfog 0 Опубликовано 18 Мая 2010 Поделиться Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442024
shooting unicorn 0 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 Люди, подскажите, как сделать так, чтобы сразу на локации ЧАЭС 2 можно было внизу ходить, т.е как убрать от туда радиацию? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442143
Kirag 41 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 elfog Да-а-а... У тебя получилось что-то среднее между вызовом функции и самой функцией... Работоспособность - закономерный ноль... К сожалению, ты пока не понимаешь элементарных вещей, без которых в скриптах ловить ну совсем нечего. Попробую объяснить. Смотри: сама функция выглядит так: function имя_функции(аргументы_функции) последовательность действий end Здесь аргументами будут только переменные, а не конкретные значения. Конкретные значения переменных, с которыми надо производить указанные в функции действия, функция получит в момент вызова. Вызов функции находится в другой функции и выглядит так, если вызываемая функция в том же файле, что и та функция, ИЗ которой происходит вызов: ... имя_функции(аргументы_функции) ... либо так, если вызываемая функция находится в другом файле: ... имя_файла.имя_функции(аргументы_функции) ... Аргументы функции могут быть любыми, и могут задаваться как непосредственно в момент вызова (конкретные значения), так и определяться заранее (переменные). Например, есть функция fun с одним аргументом. Пусть надо ее вызвать с аргументом, равном 2. Вызов fun(2) и конструкция local x = 2 fun(x) эквивалентны. Во втором случае агрументом является переменная Х: сначала определяется переменная Х, ей присваивается значение 2, и затем функция fun вызывается с аргументом, равным 2, как и в первом случае, когда аргументом является число. Писать local x = 2 fun(2) просто бессмысленно, хотя ошибки и не возникнет. Для спавна аномалий тебе нужно из функции spawner:spawn_zone_mincer_weak() вызвать функцию an_spawn с правильными аргументами. То есть функции должно быть как минимум две Попробуй еще раз с новой информацией. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442206
Starter 239 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 Кто-нибудь знает как включить бампы на статике уж очень надо, очень. Сообщение от модератора n6260 "Ковырнуть" движок ЯДиск папка с крутым схроном! Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442212
DiXares 2 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 И всё таки, как сделать страницу дополнительных опций? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442232
elfog 0 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 (изменено) Kirag, И снова я по поводу спавна аномалий... Можешь дать готовую функцию спавна, с её вызовом как пример, а то когда перед глазами есть пример учиться гораздо проще. А ссылку (если есть таковая) на полную статью по функциям можно? А то ведь это основа основ... забегать наперёд для меня было лишним. Изменено 18 Мая 2010 пользователем elfog morda. cod4 player Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442289
Darien 0 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 (изменено) elfog Если хочется научиться основам, то советую настроить Scite с Lua, как это сделать можно прочитать тут - http://www.lua.ru/forum/posts/list/21.page (3 пост, заголовок Настройка компилятора Lua в Scite можно опустить). Когда установишь, там будет оф. справка по языку. Так же советую скачать тутор от хорошего человека Gun12, он не завершён (пока), но читать его легче будет, чем официальный, и инфы больше. Качать отсюда - http://ifolder.ru/17766560 Изменено 18 Мая 2010 пользователем Darien Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442294
Nazgool 251 Опубликовано 18 Мая 2010 Поделиться Опубликовано 18 Мая 2010 (изменено) На счёт слова "ПОКА". Абсолютно не хватает времени для того, чтобы закончить, хотя и есть чем "заполнять". Так же массу времени отнимает оформление. Так что пока слово "пока" останется в силе (намеренная тавтология ). Да и вообще делал в принципе для себя как шпаргалку. Так что есть комментарии, рассуждения и неточности, которые обнаружились уже позже (с опытом так сказать) Изменено 18 Мая 2010 пользователем Gun12 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/215/#findComment-442346
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти