MH_MkII2walk Lua 代码详解 - 传送和载具进入
-- 定义三个局部变量exx, eyy, ezz local exx local eyy local ezz
-- 进入车辆的函数 local function OnPlayerEntercar(player) -- 获取玩家当前的方格 local square = player:getCurrentSquare() if square==nil then return end -- 获取方格内的载具 local vehicle=square:getVehicleContainer() if vehicle~=nil then -- 让玩家进入载具中的第二个座位 vehicle:enter(2, player) -- 移除事件监听 Events.OnPlayerUpdate.Remove(OnPlayerEntercar) end end
-- 传送函数 local function Oncahoueteleport(player) -- 获取玩家对象 local player = getPlayer() if player==nil then return end -- 将玩家传送到指定位置 player:setX(exx) player:setY(eyy) -- player:setZ(ezz) player:setLx(exx) player:setLy(eyy) -- 移除事件监听 Events.OnTick.Remove(Oncahoueteleport) end
-- 定义一个名为MH_MkII2walk的类,继承自ISBaseTimedAction类 MH_MkII2walk = ISBaseTimedAction:derive('MH_MkII2walk');
-- 判断是否有效
function MH_MkII2walk:isValid()
return true
end
-- 更新函数
function MH_MkII2walk:update()
end
-- 开始函数
function MH_MkII2walk:start()
-- 设置动画
self:setActionAnim('EquipItem')
end
-- 停止函数
function MH_MkII2walk:stop()
ISBaseTimedAction.stop(self);
end
-- 执行函数 function MH_MkII2walk:perform() ISBaseTimedAction.perform(self);
-- 将参数传递给局部变量
exx = self.ex
eyy = self.ey
ezz = self.ez
-- 添加事件监听
Events.OnTick.Add(Oncahoueteleport)
Events.OnPlayerUpdate.Add(OnPlayerEntercar)
end
-- 新建函数
function MH_MkII2walk:new(character, ex, ey,ez)
local o = {}
setmetatable(o, self)
self.__index = self
o.character = character;
o.stopOnWalk = true;
o.stopOnRun = true;
o.maxTime = 20;
o.tick = 0;
o.ex = ex
o.ey = ey
o.ez = ez
return o;
end
原文地址: https://www.cveoy.top/t/topic/nyrq 著作权归作者所有。请勿转载和采集!