Полный код скрипта ui cheat.script — S.T.A.L.K.E.R. Inside Wiki

Полный код скрипта ui cheat.script

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Скрипт 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

Другие места
LANGUAGE