Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

как добавить в продажу к сидору амк рюкзак? Вроде как его название inventory_box. В общем когда добавляю его в sidr_supl то игра вылетает без лога. В чём проблема?

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Попытался объединить 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

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Подскажите пожалуйста какое название секции у пива?

 

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение
andrewrap, Ага, я нашёл в картонном ящике, в лаборатории X-16. Где-то в углу стоял. У меня АМК 1.4.1.

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

кровоSTALKER, beer мне не помогло пишет что нет такового.

 

-------

 

banderos огромное тебе спасибо всё работает! :lol3:

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Народ помогите, я попытался заспавнить аномалию через своё спавн меню, но вместо аномалии получи только визуальный эффект от нее, что в нее не кидай, как в нее не залезай - ноль реакции. В данный момент привести свой пример не могу.

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Вот наконец-то руки дошли

 

-- инициализация

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, если честно нифига не понял, то есть не хочется полностью переделывать логику спавна, так как умею работать только с этой.

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Я спавню через спавн меню, которое вызывается походу игры через 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

Поделиться этим сообщением


Ссылка на сообщение

Я походу уже всех утомил, но что писать в 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

Поделиться этим сообщением


Ссылка на сообщение

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 и добавляет автомобили.

 

 

 

 

 

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

ui_spawner_script - описатель самих меню, а не их содержимого.

Либо я тебя не понял, либо меня не поняли. :huh:

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

Так?

 

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 и добавляет автомобили.

 

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Kirag, И снова я по поводу спавна аномалий...

Можешь дать готовую функцию спавна, с её вызовом как пример, а то когда перед глазами есть пример учиться гораздо проще.

А ссылку (если есть таковая) на полную статью по функциям можно? А то ведь это основа основ... забегать наперёд для меня было лишним.

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Спавн я всё таки победил спасибо Kirag'у, Вопрос таков, как вызвать преждевременный выброс?

Всё для вызова уже есть. Как называется функция отвечающая за выброс и где она лежит?

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

max_max_08, за саму идею с таймером спасибо, но я не очень понял, что ты имеешь в виду, под именем таймера? Ты имеешь в виду к чему он привязывается? А можно ли напрямую вызвать выброс, без таймера?

 

ЗЫ. Вопрос по тем же аномалиям, почему созданную мной аномалию все, без исключения, НПС не видят в упор, как будто для них ее нету? Аномалия срабатывает ... хрусь и трупы. :mellow:

Ещё один вопрос, аномалия после выбросов исчезать будет?

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

Здрасте, я уже когда-то задавал вопрос про спавн аномалий во время игры через скрипт. Так вот, была проблема с тем что созданную мною аномалию НПС ы не замечали, хотя после выбросов аномалии исчезают и появляются в разных местах, и при этом НПС обходят их очень успешно.

Так вот, можете описать что происходит во время выброса и где можно это посмотреть?

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение

С Новым Годом форумчане :ny_happy: !

У меня созрело пару вопросов ещё со времен первого прохождения ЗП, так вот: можно ли в ТЧ нумеровать варианты ответов в диалогах с НПС'сами

1. .....

2. .....

3. .....

и т.д.;

 

И можно ли сделать так, чтобы по окончании загрузки было действие вроде: "Нажмите ENTER чтобы продолжить"?

-----------

n6260, спасибо, поискал, но не нашёл. =(

 

З.Ы. Про нумерацию, я имею в ввиду, чтобы можно было управлять нажатиями цифр на клавиатуре.

Изменено пользователем elfog

morda. cod4 player

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...