Полный код скрипта ui cheat.script
Материал из S.T.A.L.K.E.R. Inside Wiki
Версия от 20:40, 23 мая 2007; HikeR (обсуждение | вклад)
Скрипт ui_cheat.script (новый) к статье Как прибиндить скрипты на кнопки, или немного о создании своего интерфейса. Часть вторая
class "cheat" (CUIScriptWnd) function cheat:__init(owner) super() self.owner = owner self:InitControls() self:InitCallBacks() end function cheat:__finalize() end function cheat:InitControls() self:Init(50,50,550,450) local xml = CScriptXmlInit() xml:ParseFile("ui_cheat_wnd.xml") xml:InitStatic("back_video", self) xml:InitStatic("background", self) self:Register(xml:Init3tButton("btn_1", self),"btn_1") self:Register(xml:Init3tButton("btn_2", self),"btn_2") self:Register(xml:Init3tButton("btn_3", self),"btn_3") self:Register(xml:Init3tButton("btn_4", self),"btn_4") self:Register(xml:Init3tButton("btn_5", self),"btn_5") self:Register(xml:Init3tButton("btn_6", self),"btn_6") self:Register(xml:Init3tButton("btn_7", self),"btn_7") self:Register(xml:Init3tButton("btn_8", self),"btn_8") self:Register(xml:Init3tButton("btn_9", self),"btn_9") self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") end function cheat:InitCallBacks() self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.cheat1, self) self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.cheat2, self) self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.cheat3, self) self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.cheat4, self) self:AddCallback("btn_5", ui_events.BUTTON_CLICKED, self.cheat5, self) self:AddCallback("btn_6", ui_events.BUTTON_CLICKED, self.cheat6, self) self:AddCallback("btn_7", ui_events.BUTTON_CLICKED, self.cheat7, self) self:AddCallback("btn_8", ui_events.BUTTON_CLICKED, self.cheat8, self) self:AddCallback("btn_9", ui_events.BUTTON_CLICKED, self.cheat9, self) self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) end function cheat:check_game() local check = false if level.present() and (db.actor ~= nil) and db.actor:alive() then check = true end return check end function cheat:on_quit() local console = get_console() self:GetHolder():start_stop_menu (self.owner, true) self:GetHolder():start_stop_menu (self,true) self.owner:Show (true) if self:check_game() then console:execute("main_menu off") end end function cheat:spawn_item(spawn_item, dist) if self:check_game() then self:on_quit() local pos = db.actor:position() local dir = db.actor:direction() pos = pos:add(dir:mul(dist)) alife():create(spawn_item, pos, 1, db.actor:game_vertex_id()) end end function cheat:OnKeyboard(dik, keyboard_action) CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESCAPE then self:on_quit() elseif dik == DIK_keys.DIK_NUMPAD1 then self:cheat1() elseif dik == DIK_keys.DIK_NUMPAD2 then self:cheat2() elseif dik == DIK_keys.DIK_NUMPAD3 then self:cheat3() elseif dik == DIK_keys.DIK_NUMPAD4 then self:cheat4() elseif dik == DIK_keys.DIK_NUMPAD5 then self:cheat5() elseif dik == DIK_keys.DIK_NUMPAD6 then self:cheat6() elseif dik == DIK_keys.DIK_NUMPAD7 then self:cheat7() elseif dik == DIK_keys.DIK_NUMPAD8 then self:cheat8() elseif dik == DIK_keys.DIK_NUMPAD9 then self:cheat9() end end return true end function cheat:cheat1() self:spawn_item("wpn_svd_m1", 3) end function cheat:cheat2() self:spawn_item("ammo_7.62x54_ap", 3) end function cheat:cheat3() self:spawn_item("ven_niva", 5) end function cheat:cheat4() end function cheat:cheat5() end function cheat:cheat6() end function cheat:cheat7() end function cheat:cheat8() end function cheat:cheat9() end