-- Paty_pero = {} -- Guild_pero = {} -- Skill_Return = {} -- Skill_NormalCRC = {} -- -- Перо возврата -- function I6601605_CanUseGiftBag(MapID, InstanceID, TypeID, TargetID) -- local bRet, bIgnore = 0, false -- for i in pairs(Skill_Return) do -- if MapID == Skill_Return[i] then -- return 23 -- end -- end -- local FreeSize = role.GetBagFreeSize(TargetID) -- if FreeSize < 2 then -- bRet = 40 -- end -- return bRet, bIgnore -- end -- function I6601605_GiftBag(MapID, InstanceID, TypeID, RoleID) -- local x, y, z = unit.GetPosition(MapID, InstanceID, RoleID) -- local a = MapID -- role.SetRoleScriptData(RoleID, 1, RoleDataType["pero_x"], x) -- role.SetRoleScriptData(RoleID, 1, RoleDataType["pero_y"], y) -- role.SetRoleScriptData(RoleID, 1, RoleDataType["pero_z"], z) -- role.SetRoleScriptData(RoleID, 1, RoleDataType["pero_karta"], a) -- role.RoleGotoNewMap(MapID, InstanceID, RoleID, 3424073512, 630, 23094, 630) -- role.AddRoleItem(MapID, InstanceID, RoleID, 6601606, 1, -1, 8, 420) -- end -- aux.RegisterItemEvent(6601605, 0, "I6601605_CanUseGiftBag") -- aux.RegisterItemEvent(6601606, 0, "I6601605_CanUseGiftBag") -- aux.RegisterItemEvent(6601605, 1, "I6601605_GiftBag") -- function I6601606_GiftBag(MapID, InstanceID, TypeID, RoleID) -- local a = role.GetRoleScriptData(RoleID, 1, RoleDataType["pero_x"]) -- local b = role.GetRoleScriptData(RoleID, 1, RoleDataType["pero_y"]) -- local c = role.GetRoleScriptData(RoleID, 1, RoleDataType["pero_z"]) -- local d = role.GetRoleScriptData(RoleID, 1, RoleDataType["pero_karta"]) -- role.RoleGotoNewMap(MapID, InstanceID, RoleID, d, a, b, c) -- end -- aux.RegisterItemEvent(6601606, 1, "I6601606_GiftBag") -- -- Перо призыва пати -- function I6601608_Use(MapID, InstanceID, TypeID, TargetID) -- local TeamID = role.IsRoleHaveTeam(MapID, InstanceID, TargetID) -- if TeamID ~= nil and TeamID ~= 4294967295 then -- local Role = {} -- Role[1], Role[2], Role[3], Role[4], Role[5], Role[6] = role.GetRoleTeamMemID(TeamID) -- for k, v in pairs(Role) do -- if v ~= TargetID then -- local Map, Instance = role.GetRoleMapID(v) -- if Map ~= nil then -- if not unit.IsDead(Map, Instance, v) then -- msg.SendRoleSwitchMsg(6, Map, Instance, v, 1, 60) -- local x, y, z = unit.GetPosition(MapID, InstanceID, TargetID) -- Paty_pero[v] = {MapID, InstanceID, x, y, z, 2} -- end -- end -- end -- end -- end -- end -- function I6601608_CanUse(MapID, InstanceID, TypeID, TargetID) -- local bRet, bIgnore = 0, false -- local TeamID = role.IsRoleHaveTeam(MapID, InstanceID, TargetID) -- if TeamID == nil or TeamID == 4294967295 then -- bRet = 32 -- end -- local bool = false -- if MapID ~= nil then -- for k, v in pairs(Skill_NormalCRC) do -- if MapID == v then -- bool = true -- break -- end -- end -- end -- if not bool then -- bRet = 32 -- end -- return bRet, bIgnore -- end -- aux.RegisterItemEvent(6601608, 1, "I6601608_Use") -- aux.RegisterItemEvent(6601608, 0, "I6601608_CanUse") -- function Paty_OnClick(MapID, InstanceID, RoleID, TOMsgID, ToMapID, x, y, z) -- local no_map = {965742749, 965743517, 965743261, 965744029} -- local a = 0 -- for i = 1, #no_map do -- if MapID == no_map[i] then -- a = 1 -- end -- end -- if a == 0 then -- if Paty_pero[RoleID] ~= nil and not unit.IsDead(MapID, InstanceID, RoleID) then -- if role.IsRoleInStatus(RoleID, 1024) then -- role.CancelRoleStallState(MapID, InstanceID, RoleID) -- end -- role.RoleGotoNewMap(MapID, InstanceID, RoleID, Paty_pero[RoleID][1], Paty_pero[RoleID][3], Paty_pero[RoleID][4], Paty_pero[RoleID][5]) -- Paty_pero[RoleID] = nil -- end -- end -- end -- aux.RegisterActEvent(60, 8, "Paty_OnClick") -- -- Перо призыва гильдии -- function I6601611_Use(MapID, InstanceID, TypeID, TargetID) -- local guildID = guild.GetRoleGuildID(TargetID) -- if guildID ~= nil and guildID ~= 4294967295 then -- local tmpRoleIDTab = guild.GetAllGuildMember(guildID) -- if tmpRoleIDTab ~= nil then -- for k, v in pairs(tmpRoleIDTab) do -- if v ~= TargetID then -- local Map, Instance = role.GetRoleMapID(v) -- if Map ~= nil then -- if not unit.IsDead(Map, Instance, v) then -- msg.SendRoleSwitchMsg(7, Map, Instance, v, 1, 61) -- local x, y, z = unit.GetPosition(MapID, InstanceID, TargetID) -- Guild_pero[v] = {MapID, InstanceID, x, y, z, 2} -- end -- end -- end -- end -- end -- end -- end -- function I6601611_CanUse(MapID, InstanceID, TypeID, TargetID) -- local bRet, bIgnore = 0, false -- local guildID = guild.GetRoleGuildID(TargetID) -- if guildID == nil or guildID == 4294967295 then -- bRet = 32 -- end -- local bool = false -- if MapID ~= nil then -- for k, v in pairs(Skill_NormalCRC) do -- if MapID == v then -- bool = true -- break -- end -- end -- end -- if not bool then -- bRet = 32 -- end -- return bRet, bIgnore -- end -- aux.RegisterItemEvent(6601611, 1, "I6601611_Use") -- aux.RegisterItemEvent(6601611, 0, "I6601611_CanUse") -- function Guild_OnClick(MapID, InstanceID, RoleID, TOMsgID, ToMapID, x, y, z) -- local no_map = {965742749, 965743517, 965743261, 965744029} -- local a = 0 -- for i = 1, #no_map do -- if MapID == no_map[i] then -- a = 1 -- end -- end -- if a == 0 then -- if Guild_pero[RoleID] ~= nil and not unit.IsDead(MapID, InstanceID, RoleID) then -- if role.IsRoleInStatus(RoleID, 1024) then -- role.CancelRoleStallState(MapID, InstanceID, RoleID) -- end -- role.RoleGotoNewMap(MapID, InstanceID, RoleID, Guild_pero[RoleID][1], Guild_pero[RoleID][3], Guild_pero[RoleID][4], Guild_pero[RoleID][5]) -- Guild_pero[RoleID] = nil -- end -- end -- end -- aux.RegisterActEvent(61, 8, "Guild_OnClick")