Ir para conteúdo
  • Cadastre-se

[Resolvido] Zombie Event Block


Posts Recomendados

Gostaria de bloquear uma spell chamada:exevo gran trap.
 para não ser usada no zombie event.
des de já obrigad#

Link para o post
Compartilhar em outros sites

Por favor poste o script da spell aqui e a lib do zombieevent. Obrigado.

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

data/lib

-- CONFIG


ZE_DEFAULT_NUMBER_OF_PLAYERS = 10
ZE_ACCESS_TO_IGNORE_ARENA = 3
-- POSITIONS
ZE_blockEnterItemPosition = {x= 98, y=521, z=5}
ZE_enterPosition = {x = 57, y = 525, z = 7}
ZE_kickPosition = {x=160, y=54, z=7}
ZE_spawnFromPosition = {x = 44, y = 514, z = 7}
ZE_spawnToPosition = {x = 70, y = 539, z = 7}
-- ITEM IDS
ZE_blockEnterItemID = 9485
-- STORAGES
-- - player
ZE_isOnZombieArea = 34370
-- - global
ZE_STATUS = 34370 -- =< 0 - off, 1 - waiting for players, 2 - is running
ZE_PLAYERS_NUMBER = 34371
ZE_ZOMBIES_TO_SPAWN = 34372
ZE_ZOMBIES_SPAWNED = 34373

-- FUNCTION

function setZombiesEventPlayersLimit(value)
doSetStorage(ZE_PLAYERS_NUMBER, value)
end

function getZombiesEventPlayersLimit()
return getStorage(ZE_PLAYERS_NUMBER)
end

function addPlayerToZombiesArea(cid)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
doTeleportThing(cid, ZE_enterPosition, true)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
if(getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA) then
setPlayerZombiesEventStatus(cid, os.time())
end
end

function kickPlayerFromZombiesArea(cid)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
doTeleportThing(cid, ZE_kickPosition, true)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
setPlayerZombiesEventStatus(cid, 0)
end

function getPlayerZombiesEventStatus(cid)
return getCreatureStorage(cid, ZE_isOnZombieArea)
end

function setPlayerZombiesEventStatus(cid, value)
doCreatureSetStorage(cid, ZE_isOnZombieArea, value)
end

function getZombiesEventPlayers()
local players = {}
for i, cid in pairs(getPlayersOnline()) do
if(getPlayerZombiesEventStatus(cid) > 0) then
table.insert(players, cid)
end
end
return players
end

function getZombiesCount()
return getStorage(ZE_ZOMBIES_SPAWNED)
end

function addZombiesCount()
doSetStorage(ZE_ZOMBIES_SPAWNED, getStorage(ZE_ZOMBIES_SPAWNED)+1)
end

function resetZombiesCount()
doSetStorage(ZE_ZOMBIES_SPAWNED, 0)
end

function getZombiesToSpawnCount()
return getStorage(ZE_ZOMBIES_TO_SPAWN)
end

function setZombiesToSpawnCount(count)
doSetStorage(ZE_ZOMBIES_TO_SPAWN, count)
end

function addZombiesEventBlockEnterPosition()
if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then
doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition)
end
end

function removeZombiesEventBlockEnterPosition()
local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID)
if(item.uid ~= 0) then
doRemoveItem(item.uid)
end
end

function spawnNewZombie()
local posx = {}
local posy = {}
local posz = {}
local pir = {}
for i=1, 5 do
local posx_tmp = math.random(ZE_spawnFromPosition.x ,ZE_spawnToPosition.x)
local posy_tmp = math.random(ZE_spawnFromPosition.y ,ZE_spawnToPosition.y)
local posz_tmp = math.random(ZE_spawnFromPosition.z ,ZE_spawnToPosition.z)
local pir_tmp = 0
local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false)
if(spec and #spec > 0) then
for z, pid in pairs(spec) do
if(isPlayer(pid)) then
pir_tmp = pir_tmp + 1
end
end
end
posx = posx_tmp
posy = posy_tmp
posz = posz_tmp
pir = pir_tmp
end
local lowest_i = 1
for i=2, 5 do
if(pir < pir[lowest_i]) then
lowest_i = i
end
end
local ret = (type(doCreateMonster("Event Zombie", {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]}, false)) == 'number')
if(ret) then
addZombiesCount()
end
return ret
end



Spells/scripts

local combat = createCombatObject()


setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 10)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
local arr = {
{ 1, 1, 1, 1, 1, 1. },
{ 1, 0, 0, 0, 0, 1. },
{ 1, 0, 0, 0, 0, 1, },
{ 1, 0, 0, 2, 0, 1, },
{ 1, 0, 0, 0, 0, 1, },
{ 1, 0, 0, 0, 0, 1, },
{ 1, 1, 1, 1, 1, 1, },
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Link para o post
Compartilhar em outros sites

Spell:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 10)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
 
local arr = {
{ 1, 1, 1, 1, 1, 1. },
{ 1, 0, 0, 0, 0, 1. },
{ 1, 0, 0, 0, 0, 1, },
{ 1, 0, 0, 2, 0, 1, },
{ 1, 0, 0, 0, 0, 1, },
{ 1, 0, 0, 0, 0, 1, },
{ 1, 1, 1, 1, 1, 1, },
}
 
local area = createCombatArea(arr)
setCombatArea(combat, area)
 
function onCastSpell(cid, var)
   if getPlayerStorageValue(cid, 34370) > 0 then
      doPlayerSendCancel(cid, "You cannot cast this spell in Zombie Event area.")
      return false
   end
 
   return doCombat(cid, combat, var)
end

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Dúvida sanada, tag adicionada.

Tópico movido!

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Man, teria como você bloquear essas duas runas de trap pra mim, pois a galera é muita esperta e tão usando ela já que não da mais pra usar a magia exevo gran trap..

as runas são essas:
 magic wall runes
wild growth runes

Link para o post
Compartilhar em outros sites

Magic Wall Rune:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

Wild Growth Rune:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

Link para o post
Compartilhar em outros sites

Magic Wall:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
 
function onCastSpell(cid, var)
   if getPlayerStorageValue(cid, 34370) > 0 then
      doPlayerSendCancel(cid, "You cannot cast this spell in Zombie Event area.")
      return false
   end
 
   return doCombat(cid, combat, var)
end

Wild Growth

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)

function onCastSpell(cid, var)

   if getPlayerStorageValue(cid, 34370) > 0 then
      doPlayerSendCancel(cid, "You cannot cast this spell in Zombie Event area.")
      return false
   end

   return doCombat(cid, combat, var)
end

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo