Advertisement
Guest User

STALKER SOC UI_MAIN_MENU DutyStalker666

a guest
Jun 30th, 2012
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.20 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.  
  39. end
  40.  
  41. function main_menu:Show(f)
  42. self.shniaga:SetVisibleMagnifier(f)
  43. end
  44.  
  45.  
  46. function main_menu:InitCallBacks()
  47. -- new game
  48. self:AddCallback("btn_novice", ui_events.BUTTON_CLICKED, self.OnButton_new_novice_game, self)
  49. self:AddCallback("btn_stalker", ui_events.BUTTON_CLICKED, self.OnButton_new_stalker_game, self)
  50. self:AddCallback("btn_veteran", ui_events.BUTTON_CLICKED, self.OnButton_new_veteran_game, self)
  51. self:AddCallback("btn_master", ui_events.BUTTON_CLICKED, self.OnButton_new_master_game, self)
  52. self:AddCallback("btn_spawn", ui_events.BUTTON_CLICKED, self.OnButton_load_spawn, self)
  53. -- options
  54. self:AddCallback("btn_options", ui_events.BUTTON_CLICKED, self.OnButton_options_clicked, self)
  55. -- load
  56. self:AddCallback("btn_load", ui_events.BUTTON_CLICKED, self.OnButton_load_clicked, self)
  57. -- save
  58. self:AddCallback("btn_save", ui_events.BUTTON_CLICKED, self.OnButton_save_clicked, self)
  59. -- multiplayer
  60. self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED, self.OnButton_multiplayer_clicked, self)
  61. -- quit
  62. self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnButton_quit_clicked, self)
  63. self:AddCallback("btn_quit_to_mm", ui_events.BUTTON_CLICKED, self.OnButton_disconnect_clicked, self)
  64. self:AddCallback("btn_ret", ui_events.BUTTON_CLICKED, self.OnButton_return_game, self)
  65. self:AddCallback("btn_lastsave", ui_events.BUTTON_CLICKED, self.OnButton_last_save, self)
  66. self:AddCallback("btn_credits", ui_events.BUTTON_CLICKED, self.OnButton_credits_clicked, self)
  67. -- message box
  68. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMsgOk, self)
  69. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_CANCEL_CLICKED, self.OnMsgCancel, self)
  70. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnMsgYes, self)
  71. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_NO_CLICKED, self.OnMsgNo, self)
  72. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame, self)
  73. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin, self)
  74. --amk
  75. self:AddCallback("btn_amk", ui_events.BUTTON_CLICKED, self.amk_options, self)
  76.  
  77. end
  78. function main_menu:OnMsgOk()
  79. self.mbox_mode = 0
  80. end
  81.  
  82. function main_menu:OnMsgCancel()
  83. self.mbox_mode = 0
  84. end
  85.  
  86. function main_menu:OnMsgYes()
  87.  
  88. if self.mbox_mode == 1 then
  89. self:LoadLastSave()
  90. end
  91.  
  92. self.mbox_mode = 0
  93. end
  94.  
  95. function main_menu:OnMsgNo()
  96. self.mbox_mode = 0
  97. end
  98.  
  99. function main_menu:LoadLastSave()
  100. local console = get_console()
  101. console:execute ("main_menu off")
  102. console:execute ("load_last_save")
  103. end
  104.  
  105. function main_menu:OnButton_last_save()
  106. if (alife() == nil) then
  107. self:LoadLastSave ();
  108. return
  109. end
  110.  
  111. self.mbox_mode = 1
  112. self.message_box:Init ("message_box_confirm_load_save")
  113. self:GetHolder():start_stop_menu(self.message_box, true)
  114. end
  115.  
  116. function main_menu:OnButton_credits_clicked()
  117. -- local console = get_console()
  118. -- console:execute("main_menu off")
  119. game.start_tutorial("credits_seq")
  120. end
  121.  
  122. function main_menu:OnButton_quit_clicked()
  123. self.message_box:Init("message_box_quit_windows")
  124. self:GetHolder():start_stop_menu(self.message_box, true)
  125. end
  126.  
  127.  
  128. function main_menu:OnButton_disconnect_clicked()
  129. self.message_box:Init("message_box_quit_game")
  130.  
  131. if (level.game_id() ~= 1) then
  132. self.message_box:SetText("ui_mm_disconnect_message") -- MultiPlayer
  133. else
  134. self.message_box:SetText("ui_mm_quit_game_message") -- SinglePlayer
  135. end
  136. self:GetHolder():start_stop_menu(self.message_box, true)
  137. end
  138.  
  139. function main_menu:OnMessageQuitGame()
  140. local console = get_console()
  141. console:execute("disconnect")
  142. end
  143.  
  144. function main_menu:OnMessageQuitWin()
  145. local console = get_console()
  146. console:execute("quit")
  147. end
  148.  
  149. function main_menu:OnButton_return_game()
  150. local console = get_console()
  151. console:execute("main_menu off")
  152. end
  153.  
  154. function main_menu:OnButton_new_novice_game()
  155. local console = get_console()
  156. console:execute("g_game_difficulty gd_novice")
  157. self:StartGame()
  158. end
  159.  
  160. function main_menu:OnButton_new_stalker_game()
  161. local console = get_console()
  162. console:execute("g_game_difficulty gd_stalker")
  163. self:StartGame()
  164. end
  165.  
  166. function main_menu:OnButton_new_veteran_game()
  167. local console = get_console()
  168. console:execute("g_game_difficulty gd_veteran")
  169. self:StartGame()
  170. end
  171.  
  172. function main_menu:OnButton_new_master_game()
  173. local console = get_console()
  174. console:execute("g_game_difficulty gd_master")
  175. self:StartGame()
  176. end
  177.  
  178. function main_menu:StartGame()
  179. local console = get_console()
  180.  
  181. if (alife() ~= nil) then
  182. console:execute ("disconnect")
  183. end
  184.  
  185. console:execute("start server(all/single/alife/new) client(localhost)")
  186. console:execute("main_menu off")
  187. end
  188.  
  189. function main_menu:OnButton_load_spawn()
  190. if self.spawn_dlg == nil then
  191. self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
  192. self.spawn_dlg.owner = self
  193. end
  194.  
  195. self:GetHolder():start_stop_menu(self.spawn_dlg, true)
  196. self:GetHolder():start_stop_menu(self, true) --new
  197. self:Show(false)
  198. end
  199.  
  200. function main_menu:OnButton_save_clicked()
  201. if self.save_dlg == nil then
  202. self.save_dlg = ui_save_dialog.save_dialog()
  203. self.save_dlg.owner = self
  204. end
  205.  
  206. self:GetHolder():start_stop_menu(self.save_dlg, true)
  207. self:GetHolder():start_stop_menu(self, true) --new
  208. self:Show(false)
  209. end
  210.  
  211. function main_menu:OnButton_options_clicked()
  212. if self.opt_dlg == nil then
  213. self.opt_dlg = ui_mm_opt_main.options_dialog()
  214. self.opt_dlg.owner = self
  215. end
  216.  
  217. self.opt_dlg:UpdateControls()
  218. self:GetHolder():start_stop_menu(self.opt_dlg, true)
  219. self:GetHolder():start_stop_menu(self, true) --new
  220. self:Show(false)
  221. amk_mod.hud_update=true
  222. end
  223.  
  224. function main_menu:OnButton_load_clicked()
  225. if self.load_dlg ==nil then
  226. self.load_dlg = ui_load_dialog.load_dialog()
  227. self.load_dlg.owner = self
  228. end
  229.  
  230. self:GetHolder():start_stop_menu(self.load_dlg, true)
  231. self:GetHolder():start_stop_menu(self, true) --new
  232. self:Show(false)
  233. end
  234.  
  235. function main_menu:OnButton_multiplayer_clicked()
  236. if self.mp_dlg ==nil then
  237. self.mp_dlg = ui_mp_main.mp_main()
  238. self.mp_dlg.owner = self
  239. end
  240. self.mp_dlg:UpdateControls()
  241. self:GetHolder():start_stop_menu(self.mp_dlg, true)
  242. self:GetHolder():start_stop_menu(self, true) --new
  243. self:Show(false)
  244.  
  245. -- self.mp_dlg:OnBtn_Refresh()
  246.  
  247. local console = get_console()
  248. console:execute ("check_for_updates 0")
  249.  
  250. self.mp_dlg:OnRadio_NetChanged()
  251. end
  252.  
  253. function main_menu:Dispatch(cmd, param) --virtual function
  254. if cmd == 2 then
  255. self:OnButton_multiplayer_clicked()
  256. end
  257. return true
  258. end
  259.  
  260. function main_menu:OnKeyboard(dik, keyboard_action) --virtual function
  261. CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
  262. local bind = dik_to_bind(dik)
  263. local console = get_console()
  264.  
  265. if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
  266. local alive_on_level = level.present() and (db.actor ~= nil) and db.actor:alive()
  267. if dik == DIK_keys.DIK_ESCAPE then
  268. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  269. console:execute("main_menu off")
  270. end
  271. end
  272.  
  273. -- ðàñêîìåíòèðóåì è çàîîäíî âêëþ÷èì óáðàííîå ñïàâí ìåíþ
  274. if dik == DIK_keys.DIK_S then
  275. -- self:OnButton_load_spawn()
  276.  
  277. elseif dik == DIK_keys.DIK_Q then
  278. self:OnMessageQuitWin()
  279.  
  280. elseif dik == DIK_keys.DIK_A then
  281. if amk.check_game() then
  282. self:amk_options()
  283. end
  284.  
  285. end
  286. if dik == DIK_keys.DIK_F2 then
  287. self:start_atlas("spawn")
  288. end
  289.  
  290. if dik == DIK_keys.DIK_F3 then
  291. self:start_atlas2("spawn")
  292. end
  293.  
  294. if dik == DIK_keys.DIK_F4 then
  295. self:start_atlas3("spawn")
  296.  
  297. end
  298.  
  299. return true
  300. end
  301.  
  302. function main_menu:amk_options()
  303. -- åñëè åùå íè ðàçó íå âûçûâàëè, òî îáîçíà÷èì íàø íîâûé ñêðèïò
  304. if self.amk_options_dlg == nil then
  305. self.amk_options_dlg = ui_amk_options.amk_options()
  306. self.amk_options_dlg.owner = self
  307. end
  308. -- îñòàíàâëèâàåì ðîäèòåëüñêèé ýëåìåíò, çàïóñêàåì ñâîé, íî ðîäèòåëÿ ïîêàçûâàåì.
  309. self:GetHolder():start_stop_menu(self.amk_options_dlg, true)
  310. self:GetHolder():start_stop_menu(self, true)
  311. self:Show(false)
  312.  
  313. end
  314.  
  315. function main_menu:start_atlas(action)
  316.  
  317. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  318. get_console():execute("main_menu off")
  319. local target = ui_atlas.atlas(get_hud(),action)
  320. level.start_stop_menu(target, true)
  321. end
  322.  
  323. end
  324.  
  325. function main_menu:start_atlas2(action)
  326.  
  327. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  328. get_console():execute("main_menu off")
  329. local target = ui_atlas2.atlas(get_hud(),action)
  330. level.start_stop_menu(target, true)
  331. end
  332.  
  333. end
  334.  
  335. function main_menu:start_atlas3(action)
  336.  
  337. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  338. get_console():execute("main_menu off")
  339. local target = ui_atlas3.atlas(get_hud(),action)
  340. level.start_stop_menu(target, true)
  341. end
  342.  
  343. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement