Advertisement
Guest User

ITEM VACUUM SCRIPT - AMK AE 1.4.1+OWR+ARSENAL+SWO merge

a guest
Oct 14th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.77 KB | None | 0 0
  1. --/amk_rel_1/
  2. -- File:        UI_MAIN_MENU.SCRIPT
  3. -- Description: Load Dialog for STALKER
  4. -- Created:     28.10.2004
  5. -- Lasd edit:   18.01.2006
  6. -- Copyright:   2004 GSC Game World
  7. -- Author:      Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
  8. -- Version:     0.9
  9.  
  10. class "main_menu" (CUIScriptWnd)
  11.  
  12. function main_menu:__init() super()
  13.     self.mbox_mode = 0
  14.    self:InitControls()
  15.    self:InitCallBacks()
  16. end
  17.  
  18. function main_menu:__finalize()
  19.  
  20. end
  21.  
  22. function main_menu:InitControls()
  23.     self:Init(0,0,1024,768)          
  24.     local xml = CScriptXmlInit()
  25.     xml:ParseFile("ui_mm_main.xml")
  26.      
  27.     --xml:InitStatic("back_movie", self)
  28.     xml:InitStatic("background", self)
  29.    -- xml:InitStatic("fire_movie", self)
  30.     self.shniaga = xml:InitMMShniaga("shniaga_wnd",self);
  31.    
  32.     self.message_box = CUIMessageBoxEx()
  33.     self:Register(self.message_box, "msg_box") 
  34.    
  35.     local _ver = xml:InitStatic     ("static_version",self)
  36.     local mm                        = _G.main_menu.get_main_menu()
  37.     --_ver:SetText                  ("ver. " .. mm:GetGSVer())
  38.     local amk_title         = amk_ver.amk_title
  39.     local amk_version       = amk_ver.amk_version
  40.     local amk_revision  = amk_ver.amk_revision
  41.                                          
  42.                                              
  43.     local debug_mode = ""
  44.     _ver:SetText("Game Version - " .. mm:GetGSVer() .. "  " .. amk_title .. " " .. amk_version .. "" .. amk_revision)
  45. end
  46.  
  47. function main_menu:Show(f)
  48.     self.shniaga:SetVisibleMagnifier(f)
  49. end
  50.  
  51.  
  52. function main_menu:InitCallBacks()
  53.     -- new game
  54.     self:AddCallback("btn_novice",      ui_events.BUTTON_CLICKED,               self.OnButton_new_novice_game,      self)
  55.     self:AddCallback("btn_stalker",     ui_events.BUTTON_CLICKED,               self.OnButton_new_stalker_game,     self)
  56.     self:AddCallback("btn_veteran",     ui_events.BUTTON_CLICKED,               self.OnButton_new_veteran_game,     self)
  57.     self:AddCallback("btn_master",      ui_events.BUTTON_CLICKED,               self.OnButton_new_master_game,      self)
  58.     self:AddCallback("btn_spawn",       ui_events.BUTTON_CLICKED,               self.OnButton_load_spawn,           self)
  59.     -- options                                                                                                         
  60.     self:AddCallback("btn_options",     ui_events.BUTTON_CLICKED,               self.OnButton_options_clicked,      self)
  61.     -- load                                                                                                            
  62.     self:AddCallback("btn_load",        ui_events.BUTTON_CLICKED,               self.OnButton_load_clicked,         self)
  63.     -- save                                                                                                            
  64.     self:AddCallback("btn_save",        ui_events.BUTTON_CLICKED,               self.OnButton_save_clicked,         self)
  65.     -- multiplayer                                                                                                     
  66.     self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED,               self.OnButton_multiplayer_clicked,  self)
  67.     -- quit                                                                                                            
  68.     self:AddCallback("btn_quit",        ui_events.BUTTON_CLICKED,               self.OnButton_quit_clicked,         self)
  69.     self:AddCallback("btn_quit_to_mm",  ui_events.BUTTON_CLICKED,               self.OnButton_disconnect_clicked,   self)
  70.     self:AddCallback("btn_ret",         ui_events.BUTTON_CLICKED,               self.OnButton_return_game,          self)
  71.     self:AddCallback("btn_lastsave",    ui_events.BUTTON_CLICKED,               self.OnButton_last_save,            self)
  72.     self:AddCallback("btn_credits",     ui_events.BUTTON_CLICKED,               self.OnButton_credits_clicked,      self)
  73.     -- message box                                                                                                     
  74.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_OK_CLICKED,       self.OnMsgOk,                       self)
  75.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_CANCEL_CLICKED,   self.OnMsgCancel,                   self)
  76.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_YES_CLICKED,      self.OnMsgYes,                      self)
  77.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_NO_CLICKED,       self.OnMsgNo,                       self)
  78.     self:AddCallback("msg_box",         ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame,             self)
  79.     self:AddCallback("msg_box",         ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin,              self)
  80.     --amk
  81.     self:AddCallback("btn_amk",     ui_events.BUTTON_CLICKED,               self.amk_options,       self)
  82.  
  83. end
  84. function main_menu:OnMsgOk()
  85.     self.mbox_mode = 0
  86. end
  87.  
  88. function main_menu:OnMsgCancel()
  89.     self.mbox_mode = 0
  90. end
  91.  
  92. function main_menu:OnMsgYes()
  93.    
  94.     if  self.mbox_mode == 1 then
  95.         self:LoadLastSave()
  96.     end
  97.  
  98.     self.mbox_mode = 0
  99. end
  100.  
  101. function main_menu:OnMsgNo()
  102.     self.mbox_mode = 0
  103. end
  104.  
  105. function main_menu:LoadLastSave()
  106.     local                   console = get_console()
  107.     console:execute         ("main_menu off")
  108.     console:execute         ("load_last_save")
  109. end
  110.  
  111. function main_menu:OnButton_last_save()
  112.     if (alife() == nil) then
  113.         self:LoadLastSave   ();
  114.         return
  115.     end
  116.    
  117.     self.mbox_mode          = 1
  118.     self.message_box:Init   ("message_box_confirm_load_save")
  119.     self:GetHolder():start_stop_menu(self.message_box, true)
  120. end
  121.  
  122. function main_menu:OnButton_credits_clicked()
  123. --  local console = get_console()
  124. --  console:execute("main_menu off")
  125.     game.start_tutorial("credits_seq")
  126. end
  127.  
  128. function main_menu:OnButton_quit_clicked()
  129.     self.message_box:Init("message_box_quit_windows")
  130.     self:GetHolder():start_stop_menu(self.message_box, true)
  131. end
  132.  
  133.  
  134. function main_menu:OnButton_disconnect_clicked()
  135.     self.message_box:Init("message_box_quit_game")
  136.    
  137.     if (level.game_id() ~= 1) then     
  138.         self.message_box:SetText("ui_mm_disconnect_message")    -- MultiPlayer
  139.     else
  140.         self.message_box:SetText("ui_mm_quit_game_message")     -- SinglePlayer
  141.     end
  142.     self:GetHolder():start_stop_menu(self.message_box, true)
  143. end
  144.  
  145. function main_menu:OnMessageQuitGame()
  146.     local console = get_console()
  147.     console:execute("disconnect")
  148. end
  149.  
  150. function main_menu:OnMessageQuitWin()
  151.     local console = get_console()
  152.     console:execute("quit")
  153. end
  154.  
  155. function main_menu:OnButton_return_game()
  156.     local console = get_console()
  157.     console:execute("main_menu off")
  158. end
  159.  
  160. function main_menu:OnButton_new_novice_game()
  161.     local console = get_console()
  162.     console:execute("g_game_difficulty gd_novice")
  163.     self:StartGame()   
  164. end
  165.  
  166. function main_menu:OnButton_new_stalker_game()
  167.     local console = get_console()
  168.     console:execute("g_game_difficulty gd_stalker")
  169.     self:StartGame()
  170. end
  171.  
  172. function main_menu:OnButton_new_veteran_game()
  173.     local console = get_console()
  174.     console:execute("g_game_difficulty gd_veteran")
  175.     self:StartGame()
  176. end
  177.  
  178. function main_menu:OnButton_new_master_game()
  179.     local console = get_console()
  180.     console:execute("g_game_difficulty gd_master")
  181.     self:StartGame()
  182. end
  183.  
  184. function main_menu:StartGame()
  185.     local console = get_console()
  186.    
  187.     if (alife() ~= nil) then
  188.         console:execute ("disconnect") 
  189.     end
  190.    
  191.     console:execute("start server(all/single/alife/new) client(localhost)")
  192.     console:execute("main_menu off")
  193. end
  194.  
  195. function main_menu:OnButton_load_spawn()
  196.     if self.spawn_dlg == nil then
  197.         self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
  198.         self.spawn_dlg.owner = self
  199.     end
  200.    
  201.     self:GetHolder():start_stop_menu(self.spawn_dlg, true)
  202.     self:GetHolder():start_stop_menu(self, true) --new
  203.     self:Show(false)
  204. end
  205.  
  206. function main_menu:OnButton_save_clicked()
  207.     if self.save_dlg == nil then
  208.         self.save_dlg = ui_save_dialog.save_dialog()
  209.         self.save_dlg.owner = self
  210.     end
  211.    
  212.     self:GetHolder():start_stop_menu(self.save_dlg, true)
  213.     self:GetHolder():start_stop_menu(self, true) --new
  214.     self:Show(false)
  215. end
  216.  
  217. function main_menu:OnButton_options_clicked()
  218.     if self.opt_dlg == nil then
  219.         self.opt_dlg = ui_mm_opt_main.options_dialog()
  220.         self.opt_dlg.owner = self
  221.     end
  222.    
  223.     self.opt_dlg:UpdateControls()
  224.     self:GetHolder():start_stop_menu(self.opt_dlg, true)
  225.     self:GetHolder():start_stop_menu(self, true) --new
  226.     self:Show(false)
  227.   amk_mod.hud_update=true
  228. end
  229.  
  230. function main_menu:OnButton_load_clicked()
  231.     if self.load_dlg ==nil then
  232.         self.load_dlg = ui_load_dialog.load_dialog()
  233.         self.load_dlg.owner = self
  234.     end
  235.    
  236.     self:GetHolder():start_stop_menu(self.load_dlg, true)
  237.     self:GetHolder():start_stop_menu(self, true) --new
  238.     self:Show(false)
  239. end
  240.  
  241. function main_menu:OnButton_multiplayer_clicked()
  242.     if self.mp_dlg ==nil then
  243.         self.mp_dlg = ui_mp_main.mp_main()
  244.         self.mp_dlg.owner = self
  245.     end
  246.     self.mp_dlg:UpdateControls()
  247.     self:GetHolder():start_stop_menu(self.mp_dlg, true)
  248.     self:GetHolder():start_stop_menu(self, true) --new
  249.     self:Show(false)
  250.    
  251. --  self.mp_dlg:OnBtn_Refresh()
  252.    
  253.     local console           = get_console()
  254.     console:execute         ("check_for_updates 0")
  255.    
  256.     self.mp_dlg:OnRadio_NetChanged()
  257. end
  258.  
  259. function main_menu:Dispatch(cmd, param)  --virtual function
  260.     if cmd == 2 then
  261.         self:OnButton_multiplayer_clicked()
  262.     end
  263.     return true
  264. end
  265.  
  266. function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
  267.     CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
  268.     local bind = dik_to_bind(dik)
  269.     local console = get_console()
  270.    
  271.     if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
  272.         if dik == DIK_keys.DIK_ESCAPE then
  273.             if level.present() and (db.actor ~= nil) and db.actor:alive() then
  274.                 console:execute("main_menu off")
  275.             end
  276.         end
  277.        
  278.         -- раскоментируем и заоодно включим убранное спавн меню
  279.         if  dik == DIK_keys.DIK_S then
  280.         --  self:OnButton_load_spawn()
  281.        
  282.         elseif  dik == DIK_keys.DIK_Q then
  283.             self:OnMessageQuitWin()
  284.            
  285.         elseif  dik == DIK_keys.DIK_A then
  286.             if amk.check_game() then
  287.                 self:amk_options()
  288.             end
  289.        
  290.         -- Hoover up items under the map
  291.         elseif dik == DIK_keys.DIK_F1 then
  292.             for id = 0, 65535 do
  293.                 local obj = level.object_by_id(id)
  294.                 if obj and not obj:parent() then
  295.                     local distance = obj:position():distance_to_xz(db.actor:position())
  296.                     if distance < 5 then
  297.                         db.actor:transfer_item(obj, db.actor)
  298.                     end
  299.                 end
  300.             end
  301.         end
  302.     end
  303.    
  304.     return true
  305. end
  306.  
  307. function main_menu:amk_options()
  308. -- если еще ни разу не вызывали, то обозначим наш новый скрипт
  309.     if self.amk_options_dlg == nil then
  310.         self.amk_options_dlg = ui_amk_options.amk_options()
  311.         self.amk_options_dlg.owner = self
  312.     end
  313. -- останавливаем родительский элемент, запускаем свой, но родителя показываем.
  314.     self:GetHolder():start_stop_menu(self.amk_options_dlg, true)
  315.     self:GetHolder():start_stop_menu(self, true)
  316.     self:Show(false)
  317.  
  318. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement