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

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

@Pug-Lover, у меня чинятся все три слота. Было бы неплохо глянуть на твой ui_main_menu.script.

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

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий

@Jekyll, вот полный ui_main_menu.script:
 

Скрытый текст

--/amk_rel_1/
-- File:        UI_MAIN_MENU.SCRIPT
-- Description: Load Dialog for STALKER
-- Created:     28.10.2004
-- Lasd edit:    18.01.2006
-- Copyright:   2004 GSC Game World
-- Author:      Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
-- Version:     0.9

class "main_menu" (CUIScriptWnd)

function main_menu:__init() super()
    self.mbox_mode = 0
   self:InitControls()
   self:InitCallBacks()
end

function main_menu:__finalize()

end

function main_menu:InitControls()
    self:Init(0,0,1024,768)              
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_mm_main.xml")

   
 
    xml:InitStatic("back_movie", self)
    xml:InitStatic("background", self)
   xml:InitStatic("fire_movie", self)
   xml:InitStatic("fire_movie2", self)

    self.shniaga = xml:InitMMShniaga("shniaga_wnd",self);
    
    self.message_box = CUIMessageBoxEx()
    self:Register(self.message_box, "msg_box")    
    
    local _ver = xml:InitStatic        ("static_version",self)
    local mm                        = _G.main_menu.get_main_menu()
    --_ver:SetText                    ("ver. " .. mm:GetGSVer())
    local amk_title         = amk_ver.amk_title
    local amk_version        = amk_ver.amk_version
    local amk_revision    = amk_ver.amk_revision
    local debug_mode = ""
    _ver:SetText("Версия игры - " .. mm:GetGSVer() .. "  " .. amk_title .. " " .. amk_version .. " " .. amk_revision)
end

function main_menu:Show(f)
    self.shniaga:SetVisibleMagnifier(f)
end


function main_menu:InitCallBacks()
    -- new game
    self:AddCallback("btn_novice",        ui_events.BUTTON_CLICKED,                self.OnButton_new_novice_game,        self)
    self:AddCallback("btn_stalker",        ui_events.BUTTON_CLICKED,                self.OnButton_new_stalker_game,        self)
    self:AddCallback("btn_veteran",        ui_events.BUTTON_CLICKED,                self.OnButton_new_veteran_game,        self)
    self:AddCallback("btn_master",        ui_events.BUTTON_CLICKED,                self.OnButton_new_master_game,        self)
    self:AddCallback("btn_spawn",        ui_events.BUTTON_CLICKED,                self.OnButton_load_spawn,            self)
    -- options                                                                                                            
    self:AddCallback("btn_options",     ui_events.BUTTON_CLICKED,                self.OnButton_options_clicked,        self)
    -- load                                                                                                                
    self:AddCallback("btn_load",        ui_events.BUTTON_CLICKED,                self.OnButton_load_clicked,            self)
    -- save                                                                                                                
    self:AddCallback("btn_save",        ui_events.BUTTON_CLICKED,                self.OnButton_save_clicked,            self)
    -- multiplayer                                                                                                        
    self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED,                self.OnButton_multiplayer_clicked,    self)
    -- quit                                                                                                                
    self:AddCallback("btn_quit",        ui_events.BUTTON_CLICKED,                self.OnButton_quit_clicked,            self)
    self:AddCallback("btn_quit_to_mm",    ui_events.BUTTON_CLICKED,                self.OnButton_disconnect_clicked,    self)
    self:AddCallback("btn_ret",            ui_events.BUTTON_CLICKED,                self.OnButton_return_game,            self)
    self:AddCallback("btn_lastsave",    ui_events.BUTTON_CLICKED,                self.OnButton_last_save,            self)
    self:AddCallback("btn_credits",        ui_events.BUTTON_CLICKED,                self.OnButton_credits_clicked,        self)
    -- message box                                                                                                        
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_OK_CLICKED,        self.OnMsgOk,                        self)
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_CANCEL_CLICKED,    self.OnMsgCancel,                    self)
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_YES_CLICKED,        self.OnMsgYes,                        self)
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_NO_CLICKED,        self.OnMsgNo,                        self)
    self:AddCallback("msg_box",            ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame,                self)
    self:AddCallback("msg_box",            ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED,    self.OnMessageQuitWin,                self)
    --amk
    self:AddCallback("btn_amk",        ui_events.BUTTON_CLICKED,                self.amk_options,        self)

end
function main_menu:OnMsgOk()
    self.mbox_mode = 0
end

function main_menu:OnMsgCancel()
    self.mbox_mode = 0
end

function main_menu:OnMsgYes()
    
    if     self.mbox_mode == 1 then
        self:LoadLastSave()    
    end

    self.mbox_mode = 0
end

function main_menu:OnMsgNo()
    self.mbox_mode = 0
end

function main_menu:LoadLastSave()
    local                    console = get_console()
    console:execute            ("main_menu off")
    console:execute            ("load_last_save")
end

function main_menu:OnButton_last_save()
    if (alife() == nil) then
        self:LoadLastSave    ();
        return
    end
    
    self.mbox_mode            = 1
    self.message_box:Init    ("message_box_confirm_load_save")
    self:GetHolder():start_stop_menu(self.message_box, true)
end

function main_menu:OnButton_credits_clicked()
--    local console = get_console()
--    console:execute("main_menu off")
    game.start_tutorial("credits_seq")
end

function main_menu:OnButton_quit_clicked()
    self.message_box:Init("message_box_quit_windows")
    self:GetHolder():start_stop_menu(self.message_box, true)
end


function main_menu:OnButton_disconnect_clicked()
    self.message_box:Init("message_box_quit_game")
    
    if (level.game_id() ~= 1) then        
        self.message_box:SetText("ui_mm_disconnect_message")    -- MultiPlayer
    else
        self.message_box:SetText("ui_mm_quit_game_message")        -- SinglePlayer
    end
    self:GetHolder():start_stop_menu(self.message_box, true)
end

function main_menu:OnMessageQuitGame()
    local console = get_console()
    console:execute("disconnect")
end

function main_menu:OnMessageQuitWin()
    local console = get_console()
    console:execute("quit")
end

function main_menu:OnButton_return_game()
    local console = get_console()
    console:execute("main_menu off")
end

function main_menu:OnButton_new_novice_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_novice")
    self:StartGame()    
end

function main_menu:OnButton_new_stalker_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_stalker")
    self:StartGame()
end

function main_menu:OnButton_new_veteran_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_veteran")
    self:StartGame()
end

function main_menu:OnButton_new_master_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_master")
    self:StartGame()
end

function main_menu:StartGame()
    local console = get_console()
    
    if (alife() ~= nil) then
        console:execute    ("disconnect")    
    end
    
    console:execute("start server(all/single/alife/new) client(localhost)")
    console:execute("main_menu off")
end

function main_menu:OnButton_load_spawn()
    if self.spawn_dlg == nil then
        self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
        self.spawn_dlg.owner = self
    end
    
    self:GetHolder():start_stop_menu(self.spawn_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
end

function main_menu:OnButton_save_clicked()
    if self.save_dlg == nil then
        self.save_dlg = ui_save_dialog.save_dialog()
        self.save_dlg.owner = self
    end
    
    self:GetHolder():start_stop_menu(self.save_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
end

function main_menu:OnButton_options_clicked()
    if self.opt_dlg == nil then
        self.opt_dlg = ui_mm_opt_main.options_dialog()
        self.opt_dlg.owner = self
    end
    
    self.opt_dlg:UpdateControls()
    self:GetHolder():start_stop_menu(self.opt_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
  amk_mod.hud_update=true
end

function main_menu:OnButton_load_clicked()
    if self.load_dlg ==nil then
        self.load_dlg = ui_load_dialog.load_dialog()
        self.load_dlg.owner = self
    end
    
    self:GetHolder():start_stop_menu(self.load_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
end

function main_menu:OnButton_multiplayer_clicked()
    if self.mp_dlg ==nil then
        self.mp_dlg = ui_mp_main.mp_main()
        self.mp_dlg.owner = self
    end
    self.mp_dlg:UpdateControls()
    self:GetHolder():start_stop_menu(self.mp_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
    
--    self.mp_dlg:OnBtn_Refresh()
    
    local console            = get_console()
    console:execute            ("check_for_updates 0")
    
    self.mp_dlg:OnRadio_NetChanged()
end

function main_menu:Dispatch(cmd, param)  --virtual function
    if cmd == 2 then
        self:OnButton_multiplayer_clicked()
    end
    return true
end

function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
    local bind = dik_to_bind(dik)
    local console = get_console()
    
    if keyboard_action == ui_events.WINDOW_KEY_PRESSED then

 if dik==DIK_keys.DIK_R then
  local slot = {1,2,6}
   for n = 1,table.getn(slot) do
   local item = db.actor:item_in_slot(slot[n])
    if item ~= nil then
     item:set_condition(1)
    end
   end
  end

        if dik == DIK_keys.DIK_ESCAPE then
            if level.present() and (db.actor ~= nil) and db.actor:alive() then
                console:execute("main_menu off")
            end
        end

        elseif db.actor~=nil and dik==DIK_keys.DIK_F then
                dialogs.relocate_money(db.actor,math.random(10000,10000),"in")
        console:execute("main_menu off")

        elseif db.actor~=nil and dik==DIK_keys.DIK_C then
        local dir = db.actor:direction()
        local pos = db.actor:position()
        pos = pos:add(dir:mul(5))

        db.actor:set_actor_position(pos)
        console:execute("main_menu off")

elseif db.actor~=nil and dik==DIK_keys.DIK_E then
        db.actor.health = 1.0
        db.actor.radiation = -1.0
        db.actor.power = 1.0
        db.actor.psy_health = 1.0
        db.actor.bleeding = 1.0
        console:execute("main_menu off")
        console:execute("Здоров_как_кровосос!")  

function bndgcheck()
return first_speaker:object("bandage") ~= nil
end
alife():create("bandage",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
local alc = db.actor:object("bandage") 
    if alc then 
       db.actor:eat(alc)
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc)  
function bndgdlt()
local oItem = db.actor:object("bandage")
if oItem then
db.actor:drop_item(oItem)
db.actor:drop_item(oItem)
alife():release(alife():object(oItem:id()), true)
end
end
    end
function foodcheck()
return first_speaker:object("conserva") ~= nil
end
alife():create("conserva",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
local alc = db.actor:object("conserva") 
    if alc then 
       db.actor:eat(alc)
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc)  
function fooddlt()
local oItem = db.actor:object("conserva")
if oItem then
db.actor:drop_item(oItem)
db.actor:drop_item(oItem)
alife():release(alife():object(oItem:id()), true)
end
end
    end

        elseif db.actor~=nil and dik==DIK_keys.DIK_B then
        local a = vector()
        a.x = 0
        a.y = 20
        a.z = 0
        db.actor:set_actor_position(a)
        console:execute("main_menu off")
        
        elseif db.actor~=nil and dik==DIK_keys.DIK_V then
        local dir = db.actor:direction()
        local pos = db.actor:position()
        pos = pos:add(dir:mul(0))
        pos.y = pos.y + 5

        db.actor:set_actor_position(pos)
        console:execute("main_menu off")
        
        -- раскоментируем и заоодно включим убранное спавн меню 
        if    dik == DIK_keys.DIK_S then
        --    self:OnButton_load_spawn()
        
        elseif     dik == DIK_keys.DIK_Q then
            self:OnMessageQuitWin()
            
        elseif     dik == DIK_keys.DIK_A then
            if amk.check_game() then 
                self:amk_options()
            end    
            
        end
        
    end
   
    return true
end

function main_menu:amk_options()
-- если еще ни разу не вызывали, то обозначим наш новый скрипт
    if self.amk_options_dlg == nil then
        self.amk_options_dlg = ui_amk_options.amk_options()
        self.amk_options_dlg.owner = self
    end
-- останавливаем родительский элемент, запускаем свой, но родителя показываем.
    self:GetHolder():start_stop_menu(self.amk_options_dlg, true)
    self:GetHolder():start_stop_menu(self, true)
    self:Show(false)

end


 

 

Ссылка на комментарий

@Pug-Lover, не представляю, как у тебя ЭТО вообще запускается...

Попробуй для начала заменить свою функцию function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function на эту:

Скрытый текст

function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
     CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
     local bind = dik_to_bind(dik)
     local console = get_console()
    
 if keyboard_action == ui_events.WINDOW_KEY_PRESSED then

 if dik==DIK_keys.DIK_R then
  local slot = {1,2,6}
  for n = 1,table.getn(slot) do
   local item = db.actor:item_in_slot(slot[n])
   if item ~= nil then
    item:set_condition(1)
   end
  end
 end

 if dik == DIK_keys.DIK_ESCAPE then
  if level.present() and (db.actor ~= nil) and db.actor:alive() then
   console:execute("main_menu off")
  end
 end
 
end

Только бэкап сделай.

Что за версия? 1.0006? 1.0004?

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

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий

@Pug-Lover, сорян, end пропустил. Попробуй так

Скрытый текст

function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
     CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
     local bind = dik_to_bind(dik)
     local console = get_console()
    
 if keyboard_action == ui_events.WINDOW_KEY_PRESSED then

  if dik==DIK_keys.DIK_R then
   local slot = {1,2,6}
   for n = 1,table.getn(slot) do
    local item = db.actor:item_in_slot(slot[n])
    if item ~= nil then
     item:set_condition(1)
    end
   end
  end

  if dik == DIK_keys.DIK_ESCAPE then
   if level.present() and (db.actor ~= nil) and db.actor:alive() then
    console:execute("main_menu off")
   end
  end
 end
 
end

 

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий

@Pug-Lover

1) в первоначальном своем скрипте найди строчку function main_menu:amk_options()

2) поднимись чуть выше, к куску

Скрытый текст

-- раскоментируем и заоодно включим убранное спавн меню
        if dik == DIK_keys.DIK_S then
         --    self:OnButton_load_spawn()
        elseif dik == DIK_keys.DIK_Q then
             self:OnMessageQuitWin()
        elseif dik == DIK_keys.DIK_A then
            if amk.check_game() then
                self:amk_options()
            end
        end
        
    end
   
    return true
end

3) и сделай так

Скрытый текст

       -- раскоментируем и заоодно включим убранное спавн меню
        if dik == DIK_keys.DIK_S then
         --    self:OnButton_load_spawn()
        elseif dik == DIK_keys.DIK_Q then
             self:OnMessageQuitWin()
        elseif dik == DIK_keys.DIK_A then
            if amk.check_game() then
                self:amk_options()
            end
        end
  
  if dik==DIK_keys.DIK_R then
   local slot = {1,2,6}
   for n = 1,table.getn(slot) do
    local item = db.actor:item_in_slot(slot[n])
    if item ~= nil then
     item:set_condition(1)
    end
   end
  end
        
    end
   
    return true
end

Если это не поможет...

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий

@Jekyll, сделал как надо, запускается, но теперь не чинит ни броню, ни пистолет, ни пушку.

 

Скрытый текст

--/amk_rel_1/
-- File:        UI_MAIN_MENU.SCRIPT
-- Description: Load Dialog for STALKER
-- Created:     28.10.2004
-- Lasd edit:    18.01.2006
-- Copyright:   2004 GSC Game World
-- Author:      Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
-- Version:     0.9

class "main_menu" (CUIScriptWnd)

function main_menu:__init() super()
    self.mbox_mode = 0
   self:InitControls()
   self:InitCallBacks()
end

function main_menu:__finalize()

end

function main_menu:InitControls()
    self:Init(0,0,1024,768)              
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_mm_main.xml")

   
 
    xml:InitStatic("back_movie", self)
    xml:InitStatic("background", self)
   xml:InitStatic("fire_movie", self)
   xml:InitStatic("fire_movie2", self)

    self.shniaga = xml:InitMMShniaga("shniaga_wnd",self);
    
    self.message_box = CUIMessageBoxEx()
    self:Register(self.message_box, "msg_box")    
    
    local _ver = xml:InitStatic        ("static_version",self)
    local mm                        = _G.main_menu.get_main_menu()
    --_ver:SetText                    ("ver. " .. mm:GetGSVer())
    local amk_title         = amk_ver.amk_title
    local amk_version        = amk_ver.amk_version
    local amk_revision    = amk_ver.amk_revision
    local debug_mode = ""
    _ver:SetText("Версия игры - " .. mm:GetGSVer() .. "  " .. amk_title .. " " .. amk_version .. " " .. amk_revision)
end

function main_menu:Show(f)
    self.shniaga:SetVisibleMagnifier(f)
end


function main_menu:InitCallBacks()
    -- new game
    self:AddCallback("btn_novice",        ui_events.BUTTON_CLICKED,                self.OnButton_new_novice_game,        self)
    self:AddCallback("btn_stalker",        ui_events.BUTTON_CLICKED,                self.OnButton_new_stalker_game,        self)
    self:AddCallback("btn_veteran",        ui_events.BUTTON_CLICKED,                self.OnButton_new_veteran_game,        self)
    self:AddCallback("btn_master",        ui_events.BUTTON_CLICKED,                self.OnButton_new_master_game,        self)
    self:AddCallback("btn_spawn",        ui_events.BUTTON_CLICKED,                self.OnButton_load_spawn,            self)
    -- options                                                                                                            
    self:AddCallback("btn_options",     ui_events.BUTTON_CLICKED,                self.OnButton_options_clicked,        self)
    -- load                                                                                                                
    self:AddCallback("btn_load",        ui_events.BUTTON_CLICKED,                self.OnButton_load_clicked,            self)
    -- save                                                                                                                
    self:AddCallback("btn_save",        ui_events.BUTTON_CLICKED,                self.OnButton_save_clicked,            self)
    -- multiplayer                                                                                                        
    self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED,                self.OnButton_multiplayer_clicked,    self)
    -- quit                                                                                                                
    self:AddCallback("btn_quit",        ui_events.BUTTON_CLICKED,                self.OnButton_quit_clicked,            self)
    self:AddCallback("btn_quit_to_mm",    ui_events.BUTTON_CLICKED,                self.OnButton_disconnect_clicked,    self)
    self:AddCallback("btn_ret",            ui_events.BUTTON_CLICKED,                self.OnButton_return_game,            self)
    self:AddCallback("btn_lastsave",    ui_events.BUTTON_CLICKED,                self.OnButton_last_save,            self)
    self:AddCallback("btn_credits",        ui_events.BUTTON_CLICKED,                self.OnButton_credits_clicked,        self)
    -- message box                                                                                                        
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_OK_CLICKED,        self.OnMsgOk,                        self)
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_CANCEL_CLICKED,    self.OnMsgCancel,                    self)
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_YES_CLICKED,        self.OnMsgYes,                        self)
    self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_NO_CLICKED,        self.OnMsgNo,                        self)
    self:AddCallback("msg_box",            ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame,                self)
    self:AddCallback("msg_box",            ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED,    self.OnMessageQuitWin,                self)
    --amk
    self:AddCallback("btn_amk",        ui_events.BUTTON_CLICKED,                self.amk_options,        self)

end
function main_menu:OnMsgOk()
    self.mbox_mode = 0
end

function main_menu:OnMsgCancel()
    self.mbox_mode = 0
end

function main_menu:OnMsgYes()
    
    if     self.mbox_mode == 1 then
        self:LoadLastSave()    
    end

    self.mbox_mode = 0
end

function main_menu:OnMsgNo()
    self.mbox_mode = 0
end

function main_menu:LoadLastSave()
    local                    console = get_console()
    console:execute            ("main_menu off")
    console:execute            ("load_last_save")
end

function main_menu:OnButton_last_save()
    if (alife() == nil) then
        self:LoadLastSave    ();
        return
    end
    
    self.mbox_mode            = 1
    self.message_box:Init    ("message_box_confirm_load_save")
    self:GetHolder():start_stop_menu(self.message_box, true)
end

function main_menu:OnButton_credits_clicked()
--    local console = get_console()
--    console:execute("main_menu off")
    game.start_tutorial("credits_seq")
end

function main_menu:OnButton_quit_clicked()
    self.message_box:Init("message_box_quit_windows")
    self:GetHolder():start_stop_menu(self.message_box, true)
end


function main_menu:OnButton_disconnect_clicked()
    self.message_box:Init("message_box_quit_game")
    
    if (level.game_id() ~= 1) then        
        self.message_box:SetText("ui_mm_disconnect_message")    -- MultiPlayer
    else
        self.message_box:SetText("ui_mm_quit_game_message")        -- SinglePlayer
    end
    self:GetHolder():start_stop_menu(self.message_box, true)
end

function main_menu:OnMessageQuitGame()
    local console = get_console()
    console:execute("disconnect")
end

function main_menu:OnMessageQuitWin()
    local console = get_console()
    console:execute("quit")
end

function main_menu:OnButton_return_game()
    local console = get_console()
    console:execute("main_menu off")
end

function main_menu:OnButton_new_novice_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_novice")
    self:StartGame()    
end

function main_menu:OnButton_new_stalker_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_stalker")
    self:StartGame()
end

function main_menu:OnButton_new_veteran_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_veteran")
    self:StartGame()
end

function main_menu:OnButton_new_master_game()
    local console = get_console()
    console:execute("g_game_difficulty gd_master")
    self:StartGame()
end

function main_menu:StartGame()
    local console = get_console()
    
    if (alife() ~= nil) then
        console:execute    ("disconnect")    
    end
    
    console:execute("start server(all/single/alife/new) client(localhost)")
    console:execute("main_menu off")
end

function main_menu:OnButton_load_spawn()
    if self.spawn_dlg == nil then
        self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
        self.spawn_dlg.owner = self
    end
    
    self:GetHolder():start_stop_menu(self.spawn_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
end

function main_menu:OnButton_save_clicked()
    if self.save_dlg == nil then
        self.save_dlg = ui_save_dialog.save_dialog()
        self.save_dlg.owner = self
    end
    
    self:GetHolder():start_stop_menu(self.save_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
end

function main_menu:OnButton_options_clicked()
    if self.opt_dlg == nil then
        self.opt_dlg = ui_mm_opt_main.options_dialog()
        self.opt_dlg.owner = self
    end
    
    self.opt_dlg:UpdateControls()
    self:GetHolder():start_stop_menu(self.opt_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
  amk_mod.hud_update=true
end

function main_menu:OnButton_load_clicked()
    if self.load_dlg ==nil then
        self.load_dlg = ui_load_dialog.load_dialog()
        self.load_dlg.owner = self
    end
    
    self:GetHolder():start_stop_menu(self.load_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
end

function main_menu:OnButton_multiplayer_clicked()
    if self.mp_dlg ==nil then
        self.mp_dlg = ui_mp_main.mp_main()
        self.mp_dlg.owner = self
    end
    self.mp_dlg:UpdateControls()
    self:GetHolder():start_stop_menu(self.mp_dlg, true)
    self:GetHolder():start_stop_menu(self, true) --new
    self:Show(false)
    
--    self.mp_dlg:OnBtn_Refresh()
    
    local console            = get_console()
    console:execute            ("check_for_updates 0")
    
    self.mp_dlg:OnRadio_NetChanged()
end

function main_menu:Dispatch(cmd, param)  --virtual function
    if cmd == 2 then
        self:OnButton_multiplayer_clicked()
    end
    return true
end

function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
    local bind = dik_to_bind(dik)
    local console = get_console()
    
    if keyboard_action == ui_events.WINDOW_KEY_PRESSED then


        if dik == DIK_keys.DIK_ESCAPE then
            if level.present() and (db.actor ~= nil) and db.actor:alive() then
                console:execute("main_menu off")
            end
        end

        elseif db.actor~=nil and dik==DIK_keys.DIK_F then
                dialogs.relocate_money(db.actor,math.random(10000,10000),"in")
        console:execute("main_menu off")

        elseif db.actor~=nil and dik==DIK_keys.DIK_C then
        local dir = db.actor:direction()
        local pos = db.actor:position()
        pos = pos:add(dir:mul(5))

        db.actor:set_actor_position(pos)
        console:execute("main_menu off")

elseif db.actor~=nil and dik==DIK_keys.DIK_E then
        db.actor.health = 1.0
        db.actor.radiation = -1.0
        db.actor.power = 1.0
        db.actor.psy_health = 1.0
        db.actor.bleeding = 1.0
        console:execute("main_menu off")
        console:execute("Здоров_как_кровосос!")  

function bndgcheck()
return first_speaker:object("bandage") ~= nil
end
alife():create("bandage",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
local alc = db.actor:object("bandage") 
    if alc then 
       db.actor:eat(alc)
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc)  
function bndgdlt()
local oItem = db.actor:object("bandage")
if oItem then
db.actor:drop_item(oItem)
db.actor:drop_item(oItem)
alife():release(alife():object(oItem:id()), true)
end
end
    end
function foodcheck()
return first_speaker:object("conserva") ~= nil
end
alife():create("conserva",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
local alc = db.actor:object("conserva") 
    if alc then 
       db.actor:eat(alc)
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc) 
       db.actor:eat(alc)  
function fooddlt()
local oItem = db.actor:object("conserva")
if oItem then
db.actor:drop_item(oItem)
db.actor:drop_item(oItem)
alife():release(alife():object(oItem:id()), true)
end
end
    end

        elseif db.actor~=nil and dik==DIK_keys.DIK_B then
        local a = vector()
        a.x = 0
        a.y = 20
        a.z = 0
        db.actor:set_actor_position(a)
        console:execute("main_menu off")
        
        elseif db.actor~=nil and dik==DIK_keys.DIK_V then
        local dir = db.actor:direction()
        local pos = db.actor:position()
        pos = pos:add(dir:mul(0))
        pos.y = pos.y + 5

        db.actor:set_actor_position(pos)
        console:execute("main_menu off")
        
        -- раскоментируем и заоодно включим убранное спавн меню 
        if    dik == DIK_keys.DIK_S then
        --    self:OnButton_load_spawn()
        
        elseif     dik == DIK_keys.DIK_Q then
            self:OnMessageQuitWin()
            
        elseif     dik == DIK_keys.DIK_A then
            if amk.check_game() then 
                self:amk_options()
            end    
            
        end
        
if dik==DIK_keys.DIK_R then
   local slot = {1,2,6}
   for n = 1,table.getn(slot) do
    local item = db.actor:item_in_slot(slot[n])
    if item ~= nil then
     item:set_condition(1)
    end
   end
  end
        
    end
   
    return true
end

function main_menu:amk_options()
-- если еще ни разу не вызывали, то обозначим наш новый скрипт
    if self.amk_options_dlg == nil then
        self.amk_options_dlg = ui_amk_options.amk_options()
        self.amk_options_dlg.owner = self
    end
-- останавливаем родительский элемент, запускаем свой, но родителя показываем.
    self:GetHolder():start_stop_menu(self.amk_options_dlg, true)
    self:GetHolder():start_stop_menu(self, true)
    self:Show(false)

end


 

 

Ссылка на комментарий

Подскажите, как в чистом ТЧ будет функция:

если отношение группировки к гг => n , то вернуть true, иначе false.

Нужно для прекондишена в ветке диалога.

Изменено пользователем dPlayer
Ссылка на комментарий

Здрасте всем, не знаю что я сделал, но починка заработала! Я переписал эти строчки из sgm и поставил функцию (или как она там называется, вообщем elseif db.actor~=nil and dik==DIK_keys.DIK_R then) чутка по выше и всё заработало! Внизу код, вдруг кому-то понадобится.
 

Скрытый текст

elseif db.actor~=nil and dik==DIK_keys.DIK_R then
                local pistol_in_slot=db.actor:item_in_slot(1)
                local rifle_in_slot=db.actor:item_in_slot(2)
                local outfit_in_slot=db.actor:item_in_slot(6)
                if outfit_in_slot~=nil then outfit_in_slot:set_condition(1.0) end
                if pistol_in_slot~=nil then pistol_in_slot:set_condition(1.0) end
                if rifle_in_slot~=nil then rifle_in_slot:set_condition(1.0) end

 

Изменено пользователем Pug-Lover
Ссылка на комментарий

А как задать новый шрифт (я вроде бы разобрался как его добавить) для элемента GUI вместо стандартного?
 

Скрытый текст



	self.ZatvorEnergy = CUIStatic()
	self.ZatvorEnergy:SetAutoDelete(true)
	self.ZatvorEnergy:SetText("Текст")
	self.ZatvorEnergy:SetTextColor(255, 255, 0, 0)
	self.ZatvorEnergy:SetFont("что сюда писать?") --пробовал имя секции шрифта из файла config/font.ltx вместо GetFontLetterica16Russian()
	self.ZatvorEnergy:Init(128, 178, 100, 20)
	self:AttachChild(self.ZatvorEnergy)


 

 

Изменено пользователем W.A.S.P.
Ссылка на комментарий

@Kash, GetFontLetterica16Russian() и прочие функции получения шрифтов - в движке, только через ковыряние движка добавлять новые.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

Вот это вылетает. Почему, в нарсоли аналогичная функция работает.
 

Скрытый текст



function dolg_bad()
	if relation_registry.community_goodwill("dolg", db.actor:id()) >= -5000 then
			return true
		else
			return false
	end
end


 

Диалог без этого прекондишена работает, долг не враждебные.

Изменено пользователем W.A.S.P.
Ссылка на комментарий

@Pug-Lover, у тебя функции (bndgcheck... fooddlt) в середине function main_menu:OnKeyboard - перемести их в конец файла.

 

@dPlayer, в ТЧ есть такая проверка (xr_conditions.script), перед барьером на складах.

function mil_actor_enemy_freedom(actor, npc)
	if relation_registry.community_goodwill("freedom", actor:id()) < -500 then
		return true
	end
	return false
end

 

  • Спасибо 1
Ссылка на комментарий

Вопрос, скорее всего нубовский, т.к. только недавно обратил внимание на проблему. Однако, у меня одного исчезают артефакты, рождённые "электрой"? Пропадают даже без сейв/лоада, при удалении от них на определённую дистанцию. Для спавна артов использую скрипт art_mgr (Artefact Respawn Script 1.01 by kstn). Если это проблема ПЫС, сорри за невнимательность. 

Здесь могла быть ваша реклама.

Ссылка на комментарий

Всем привет!

Вопрос следующий:

1) Если я создам совершенно пустой "space_restrictor", без ничего: без логики, без срабатывания на попадания в него и т.д., просто как задел на будущее, вот таким способом:

   

Скрытый текст

 

local sobj = nil

sobj = alife():create("space_restrictor", vector():set(61.13, 1.45, 2.90), 297338, 462)

amk.save_variable("na_potom", sobj.id)

 

 

2) то не будет ли вылетов по этому поводу?

3) вообще так можно делать?

4) или обязательно нужно прописывать рестриктору логику и т.д. (чего я пока делать не умею...)

 

Заранее спасибо! 

Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... ©

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...