Postado Maio 9, 2015 10 anos Olá amigos, estou com problema em dois eventos autómaticos, o DOTA EVENT e o ZOMBIE EVENT, o problema é o seguinte, como é uma area no pvp a magic wall fica por tempo infinito ao ser usada por algum player, teria algum script para que não fosse possivel usar a magicwall em determinado lugar? Obrigado Quem resolver ganhará +rep todos os dias
Postado Maio 9, 2015 10 anos Solução Data > Spells > scripts > attack > energy wall.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1495) local area = createCombatArea(AREA_WALLFIELD, AREADIAGONAL_WALLFIELD) setCombatArea(combat, area) function onCastSpell(cid, var) local block_area = { {{x=909,y=1019,z=7}, {x=1000,y=1019,z=7}}, -- pos começo e final da area {{x=156,y=1019,z=7}, {x=200,y=1019,z=7}}, {{x=200,y=1019,z=7}, {x=300,y=1019,z=9}} } for _, var in ipairs(block_area) do if isInRange(getCreaturePosition(cid), var[1], var[2]) then doPlayerSendCancel(cid, "você não pode jogar magic wall nesta area.") return false end end return doCombat(cid, combat, var) end Editado Maio 9, 2015 10 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Maio 9, 2015 10 anos é só fazer no script de magic e wild tbm faz assim para ficar mais fácil de editar: na sua lib vc coloca essa função: function BlockRunesInArea(cid) local block_area = { -- defina as areas {{x=135,y=53,z=7}, {x=140,y=56,z=7}}, -- com a pos começo e final da area {{x=135,y=46,z=7}, {x=141,y=49,z=7}}, {{x=200,y=1019,z=7}, {x=300,y=1019,z=7}} } for _, var in ipairs(block_area) do if isInRange(getCreaturePosition(cid), var[1], var[2]) then return true end end return false end Data > Spells > script > support magic wall rune.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) function onCastSpell(cid, var) if BlockRunesInArea(cid) then doPlayerSendCancel(cid, "você não pode jogar runas nesta area.") return false end return doCombat(cid, combat, var) end wild growth rune.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499) function onCastSpell(cid, var) if BlockRunesInArea(cid) then doPlayerSendCancel(cid, "você não pode jogar runas nesta area.") return false end return doCombat(cid, combat, var) end pronto, e quando quiser bloquear uma spells ou runa na area só usar if BlockRunesInArea(cid) then doPlayerSendCancel(cid, "você não pode jogar runas nesta area.") return false end Editado Maio 9, 2015 10 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.