Guest User

Coordinate position script for Stalker CoP by xStream

a guest
Jan 14th, 2015
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.11 KB | None | 0 0
  1. -- File: UI_MAIN_MENU.SCRIPT
  2. -- Description: Load Dialog for STALKER
  3. -- Created: 28.10.2004
  4. -- Lasd edit: 18.01.2006
  5. -- Copyright: 2004 GSC Game World
  6. -- Author: Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
  7. -- Version: 0.9
  8.  
  9. class "main_menu" (CUIScriptWnd)
  10.  
  11. function main_menu:__init() super()
  12. self.mbox_mode = 0
  13. self:InitControls()
  14. self:InitCallBacks()
  15. xr_s.on_main_menu_on() --' Distemper 03.2008 --
  16. end
  17.  
  18. function main_menu:__finalize()
  19. end
  20.  
  21. function main_menu:InitControls()
  22. self:SetWndRect (Frect():set(0,0,1024,768))
  23.  
  24. local xml = CScriptXmlInit()
  25. xml:ParseFile ("ui_mm_main.xml")
  26.  
  27. xml:InitStatic ("background", self)
  28. self.shniaga = xml:InitMMShniaga("shniaga_wnd",self);
  29.  
  30. self.message_box = CUIMessageBoxEx()
  31. self:Register (self.message_box, "msg_box")
  32.  
  33. local _ver = xml:InitStatic ("static_version",self)
  34. local mm = _G.main_menu.get_main_menu()
  35. _ver:TextControl():SetText ("ver. " .. mm:GetGSVer())
  36.  
  37. self.l_mgr = mm:GetLoginMngr()
  38. self.acc_mgr = mm:GetAccountMngr()
  39. self.profile_store = mm:GetProfileStore()
  40. self.gs_profile = self.l_mgr:get_current_profile()
  41.  
  42. if (self.gs_profile and not(level.present())) then
  43. self.shniaga:ShowPage(CUIMMShniaga.epi_new_network_game) --fake
  44. self.shniaga:SetPage(CUIMMShniaga.epi_main, "ui_mm_main.xml", "menu_main_logout")
  45. self.shniaga:ShowPage(CUIMMShniaga.epi_main)
  46. end
  47. end
  48.  
  49. function main_menu:Show(f)
  50. self.shniaga:SetVisibleMagnifier(f)
  51. end
  52.  
  53.  
  54. function main_menu:InitCallBacks()
  55. -- new game
  56. self:AddCallback("btn_novice", ui_events.BUTTON_CLICKED, self.OnButton_new_novice_game, self)
  57. self:AddCallback("btn_stalker", ui_events.BUTTON_CLICKED, self.OnButton_new_stalker_game, self)
  58. self:AddCallback("btn_veteran", ui_events.BUTTON_CLICKED, self.OnButton_new_veteran_game, self)
  59. self:AddCallback("btn_master", ui_events.BUTTON_CLICKED, self.OnButton_new_master_game, self)
  60. self:AddCallback("btn_spawn", ui_events.BUTTON_CLICKED, self.OnButton_load_spawn, self)
  61. -- options
  62. self:AddCallback("btn_options", ui_events.BUTTON_CLICKED, self.OnButton_options_clicked, self)
  63. -- load
  64. self:AddCallback("btn_load", ui_events.BUTTON_CLICKED, self.OnButton_load_clicked, self)
  65. -- save
  66. self:AddCallback("btn_save", ui_events.BUTTON_CLICKED, self.OnButton_save_clicked, self)
  67. -- multiplayer
  68.  
  69. self:AddCallback("btn_net_game", ui_events.BUTTON_CLICKED, self.OnButton_network_game_clicked, self)
  70. self:AddCallback("btn_internet", ui_events.BUTTON_CLICKED, self.OnButton_internet_clicked, self)
  71. self:AddCallback("btn_localnet", ui_events.BUTTON_CLICKED, self.OnButton_localnet_clicked, self)
  72. self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED, self.OnButton_multiplayer_clicked, self)
  73. self:AddCallback("btn_logout", ui_events.BUTTON_CLICKED, self.OnButton_logout_clicked, self)
  74.  
  75. -- quit
  76. self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnButton_quit_clicked, self)
  77. self:AddCallback("btn_quit_to_mm", ui_events.BUTTON_CLICKED, self.OnButton_disconnect_clicked, self)
  78. self:AddCallback("btn_ret", ui_events.BUTTON_CLICKED, self.OnButton_return_game, self)
  79. self:AddCallback("btn_lastsave", ui_events.BUTTON_CLICKED, self.OnButton_last_save, self)
  80. self:AddCallback("btn_credits", ui_events.BUTTON_CLICKED, self.OnButton_credits_clicked, self)
  81. -- message box
  82. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMsgOk, self)
  83. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_CANCEL_CLICKED, self.OnMsgCancel, self)
  84. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnMsgYes, self)
  85. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_NO_CLICKED, self.OnMsgNo, self)
  86. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame, self)
  87. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin, self)
  88.  
  89. self:Register(self, "self")
  90. self:AddCallback("self", ui_events.MAIN_MENU_RELOADED, self.OnMenuReloaded, self)
  91. end
  92. function main_menu:OnMsgOk()
  93. self.mbox_mode = 0
  94. end
  95.  
  96. function main_menu:OnMsgCancel()
  97. self.mbox_mode = 0
  98. end
  99.  
  100. function main_menu:OnMsgYes()
  101.  
  102. if self.mbox_mode == 1 then
  103. self:LoadLastSave()
  104. end
  105.  
  106. self.mbox_mode = 0
  107. end
  108.  
  109. function main_menu:OnMsgNo()
  110. self.mbox_mode = 0
  111. end
  112.  
  113. function main_menu:LoadLastSave()
  114. local console = get_console()
  115. console:execute ("main_menu off")
  116. console:execute ("load_last_save")
  117. end
  118.  
  119. function main_menu:OnButton_last_save()
  120. if ( alife() == nil) then
  121. self:LoadLastSave ()
  122. return
  123. end
  124.  
  125. if ( (db.actor ~= nil) and (db.actor:alive() == false) ) then
  126. self:LoadLastSave ()
  127. return
  128. end
  129.  
  130. self.mbox_mode = 1
  131. self.message_box:InitMessageBox ("message_box_confirm_load_save")
  132. self.message_box:ShowDialog(true)
  133. end
  134.  
  135. function main_menu:OnButton_credits_clicked()
  136. -- local console = get_console()
  137. -- console:execute("main_menu off")
  138. game.start_tutorial("credits_seq")
  139. end
  140.  
  141. function main_menu:OnButton_quit_clicked()
  142. self.message_box:InitMessageBox("message_box_quit_windows")
  143. self.message_box:ShowDialog(true)
  144. end
  145.  
  146.  
  147. function main_menu:OnButton_disconnect_clicked()
  148. self.message_box:InitMessageBox("message_box_quit_game")
  149.  
  150. if (level.game_id() ~= 1) then
  151. self.message_box:SetText("ui_mm_disconnect_message") -- MultiPlayer
  152. else
  153. self.message_box:SetText("ui_mm_quit_game_message") -- SinglePlayer
  154. end
  155. self.message_box:ShowDialog(true)
  156. end
  157.  
  158. function main_menu:OnMessageQuitGame()
  159. local console = get_console()
  160. console:execute("disconnect")
  161. end
  162.  
  163. function main_menu:OnMessageQuitWin()
  164. local console = get_console()
  165. console:execute("quit")
  166. end
  167.  
  168. function main_menu:OnButton_return_game()
  169. local console = get_console()
  170. console:execute("main_menu off")
  171. xr_s.on_main_menu_off() --' Distemper 03.2008 --
  172. end
  173.  
  174. function main_menu:OnButton_new_novice_game()
  175. local console = get_console()
  176. console:execute("g_game_difficulty gd_novice")
  177. self:StartGame()
  178. end
  179.  
  180. function main_menu:OnButton_new_stalker_game()
  181. local console = get_console()
  182. console:execute("g_game_difficulty gd_stalker")
  183. self:StartGame()
  184. end
  185.  
  186. function main_menu:OnButton_new_veteran_game()
  187. local console = get_console()
  188. console:execute("g_game_difficulty gd_veteran")
  189. self:StartGame()
  190. end
  191.  
  192. function main_menu:OnButton_new_master_game()
  193. local console = get_console()
  194. console:execute("g_game_difficulty gd_master")
  195. self:StartGame()
  196. end
  197.  
  198. function main_menu:StartGame()
  199. local console = get_console()
  200.  
  201. if (alife() ~= nil) then
  202. console:execute ("disconnect")
  203. end
  204. device():pause(false)
  205. console:execute("start server(all/single/alife/new) client(localhost)")
  206. console:execute("main_menu off")
  207. end
  208.  
  209. function main_menu:OnButton_load_spawn()
  210. if self.spawn_dlg == nil then
  211. self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
  212. self.spawn_dlg.owner = self
  213. end
  214.  
  215. self.spawn_dlg:ShowDialog(true)
  216. self:HideDialog()
  217. self:Show(false)
  218. end
  219.  
  220. function main_menu:OnButton_save_clicked()
  221. if self.save_dlg == nil then
  222. self.save_dlg = ui_save_dialog.save_dialog()
  223. self.save_dlg.owner = self
  224. end
  225.  
  226. self.save_dlg:FillList()
  227. self.save_dlg:ShowDialog(true)
  228. self:HideDialog()
  229. self:Show(false)
  230. end
  231.  
  232. function main_menu:OnButton_options_clicked()
  233. if self.opt_dlg == nil then
  234. self.opt_dlg = ui_mm_opt_main.options_dialog()
  235. self.opt_dlg.owner = self
  236. end
  237.  
  238. self.opt_dlg:SetCurrentValues()
  239. self.opt_dlg:ShowDialog(true)
  240. self:HideDialog()
  241. self:Show(false)
  242. end
  243.  
  244. function main_menu:OnButton_load_clicked()
  245. if self.load_dlg ==nil then
  246. self.load_dlg = ui_load_dialog.load_dialog()
  247. self.load_dlg.owner = self
  248. end
  249.  
  250. self.load_dlg:FillList()
  251. self.load_dlg:ShowDialog(true)
  252. self:HideDialog()
  253. self:Show(false)
  254. end
  255.  
  256. function main_menu:OnButton_network_game_clicked()
  257. self.shniaga:ShowPage(CUIMMShniaga.epi_new_network_game)
  258. end
  259.  
  260. function main_menu:OnButton_multiplayer_clicked()
  261. -- assert(self.gs_profile)
  262.  
  263. if not(self.mp_dlg) then
  264. self.mp_dlg = ui_mp_main.mp_main(self.gs_profile:online())
  265. self.mp_dlg.owner = self
  266. self.mp_dlg:OnRadio_NetChanged()
  267. if (self.mp_dlg.online) then
  268. self.mp_dlg.dlg_profile:InitBestScores()
  269. self.mp_dlg.dlg_profile:FillRewardsTable()
  270. end
  271. end
  272. self.mp_dlg:UpdateControls()
  273. self.mp_dlg:ShowDialog(true)
  274.  
  275. self:HideDialog()
  276. self:Show(false)
  277.  
  278. local console = get_console()
  279. console:execute ("check_for_updates 0")
  280. end
  281.  
  282. function main_menu:OnButton_logout_clicked()
  283. -- assert(self.gs_profile)
  284. self.shniaga:ShowPage(CUIMMShniaga.epi_new_network_game) --fake
  285. self.l_mgr:logout()
  286. self.gs_profile = nil
  287. self.mp_dlg = nil
  288. self.shniaga:SetPage(CUIMMShniaga.epi_main, "ui_mm_main.xml", "menu_main")
  289. self.shniaga:ShowPage(CUIMMShniaga.epi_main)
  290. end
  291.  
  292. function main_menu:OnButton_internet_clicked()
  293. if not(self.gs_dlg) then
  294. self.gs_dlg = ui_mm_mp_gamespy.gamespy_page()
  295. self.gs_dlg.owner = self
  296. end
  297. self.gs_dlg:ShowLoginPage()
  298. self.gs_dlg:ShowDialog(true)
  299.  
  300. self:HideDialog()
  301. self:Show(false)
  302.  
  303. local console = get_console()
  304. console:execute ("check_for_updates 0")
  305. end
  306.  
  307. function main_menu:OnButton_localnet_clicked()
  308. if not(self.ln_dlg) then
  309. self.ln_dlg = ui_mm_mp_localnet.localnet_page()
  310. self.ln_dlg.owner = self
  311. self.ln_dlg.lp_nickname:SetText(self.l_mgr:get_nick_from_registry())
  312. self.ln_dlg.lp_check_remember_me:SetCheck(self.l_mgr:get_remember_me_from_registry())
  313. end
  314. self.ln_dlg:ShowDialog(true)
  315.  
  316. self:HideDialog()
  317. self:Show(false)
  318.  
  319. local console = get_console()
  320. console:execute ("check_for_updates 0")
  321. end
  322.  
  323. function main_menu:Dispatch(cmd, param) --virtual function
  324. if cmd == 2 then
  325. self:OnButton_multiplayer_clicked()
  326. end
  327. return true
  328. end
  329.  
  330. function main_menu:OnKeyboard(dik, keyboard_action) --virtual function
  331. CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
  332. local bind = dik_to_bind(dik)
  333. local console = get_console()
  334.  
  335. if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
  336. if dik == DIK_keys.DIK_ESCAPE then
  337. if level.present() and
  338. ( ((db.actor ~= nil)and(db.actor:alive())) or
  339. (false==IsGameTypeSingle())
  340. ) then
  341. self.OnButton_return_game() --' xStream 02.2008
  342. -- console:execute("main_menu off") --' xStream 02.2008
  343. end
  344. end
  345.  
  346. if dik == DIK_keys.DIK_F10 then
  347.  
  348.  
  349. local a = db.actor:position() -- Our position's coordinates
  350. local lvid = db.actor:level_vertex_id()
  351. local gvid = db.actor:game_vertex_id()
  352. local text = "Position:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..lvid.."\\ngame_vertex_id= "..gvid
  353. news_manager.send_tip(db.actor, text, nil, nil, 30000)
  354.  
  355.  
  356. end
  357.  
  358.  
  359. -- if dik == DIK_keys.DIK_S then
  360. -- self:OnButton_load_spawn()
  361.  
  362. -- else
  363. if dik == DIK_keys.DIK_Q then
  364. self:OnMessageQuitWin()
  365. end
  366.  
  367. end
  368.  
  369. return true
  370. end
  371.  
  372. function main_menu:OnMenuReloaded()
  373. self:OnButton_options_clicked()
  374. self.opt_dlg:OnMenuReloaded()
  375. end
Add Comment
Please, Sign In to add comment