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

Advanced Cheat Spawner v.1.2


SNIPER

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

Выкладываю текст скрипта ui_main_menu.script в котором полноценная адаптация спавнера и амк опций (1.4.1) - теперь всё работает вместе. (Практически вся адаптация была сделана под руководством камрада monk (а он в свою очередь опирался на адаптацию от SNIPER и Shadowman - за что и им респект и уважуха) я всего-лишь "писал под его диктовку", выслушивал его наставления, комментарии, подсказки и проверял работоспособность) :lol:

 

--/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)
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:cheat_spawner(action)
if level.present() and (db.actor ~= nil) and db.actor:alive() then
get_console():execute("main_menu off")
local spwn = ui_cheat_spawner.spawner(get_hud(),action)
level.start_stop_menu(spwn,true)
end
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

-- раскоментируем и заоодно включим убранное спавн меню 
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_M then self:matants() 
--elseif dik == DIK_keys.DIK_Z then self:to_community() 
elseif dik == DIK_keys.DIK_A then
if amk.check_game() then 
self:amk_options()
end 

elseif dik == DIK_keys.DIK_F1 then
ui_cheat_spawner.show_actor_position()

elseif dik == DIK_keys.DIK_F2 then
-- i_cheat_spawner.deadman_to_life()
self:cheat_spawner("find")

elseif dik == DIK_keys.DIK_F3 then
self:cheat_spawner("info")

elseif dik == DIK_keys.DIK_F4 then
self:cheat_spawner("spawn")

elseif dik == DIK_keys.DIK_F5 then
self:cheat_spawner("remove")

elseif dik == DIK_keys.DIK_F9 then
self:cheat_spawner("spawn2inv")

elseif dik == DIK_keys.DIK_F10 then
ui_cheat_spawner.deadman_to_life()

elseif dik == DIK_keys.DIK_F11 then
self:cheat_spawner("set_npc_goodwill")
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

function main_menu:matants()
mutant_manager.effector_spa()
end
function main_menu:to_community()
db.actor:give_info_portion("val_bandit_talk") 
db.actor:set_character_community("stranger", 0, 0)
end

 

 

Также - если кому будет лень прописывать и т.п. - можно скачать этот скрипт - http://file.qip.ru/file/91205748/4e6ece01/ui_main_menu.html

 

ДА, кстати! Делалось это всё под АМК меню (не Дефолт и не с фразой "С каждым днём...", а именно под АМК (там где знак радиации мигает)!)

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

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


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

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