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

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

@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) или обязательно нужно прописывать рестриктору логику и т.д. (чего я пока делать не умею...)

 

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

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

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

Слава монолиту! У меня к вам, братья, простая просьба. Пытаюсь из главного меню спавнить красную, взрывную бочку, но ничего не получается.
Вот  мои строчки:
 

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

elseif db.actor~=nil and dik==DIK_keys.DIK_A then
alife():create("explosive_barrel",db.actor:position(),db.actor:level_vertex_id
(),db.actor:game_vertex_id

explosive_barrel - полазив в файлах нашёл, что это название entity бочки, но всё равно не робит

 

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

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

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

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

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

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

Войти

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

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

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