Ir para conteúdo
  • 0

Pedido Problema, Heroservxzombievent


elli

Pergunta

Opa salve galera, meu erro é o seguinte

Tipo meu evento ta indo 100%

Tudo de boa e tals, unico problema é que nenhum bicho HITA nos players (Fora do evento, e sem o evento estar rolando)

o erro no Distro é esse :

 

errodistro.png

Espero a ajuda de vocês , quem ajudar irá ganhar seu Rep+ vlw galera ! onattack.lua :

 

function loseOnZombieArena(cid)

kickPlayerFromZombiesArea(cid)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! You are dead.")

local players = getZombiesEventPlayers()

if(#players <= 1) then

local winner = players[1]

if(winner) then

doPlayerAddItem(winner, 2160, 100, true)

doPlayerAddItem(winner, 10140, 1, true)

doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "You won zombies arena event.")

doBroadcastMessage("After " .. os.time() - getPlayerZombiesEventStatus(winner) .. " seconds of fight " .. getCreatureName(winner) .. " won Zombie Arena Event in game versus " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies!")

kickPlayerFromZombiesArea(winner)

else

doBroadcastMessage("Zombie arena event finished! No one win?!?!?! WTF!")

end

doSetStorage(ZE_STATUS, 0)

doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS)

doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0)

doSetStorage(ZE_ZOMBIES_SPAWNED, 0)

local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1

local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1

local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z}

for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do

centerPos.z = z

for i, uid in pairs(getSpectators(centerPos, width, height, false)) do

if(isMonster(uid)) then

doRemoveCreature(uid)

end

end

end

end

end

 

function onStatsChange(target, cid, changetype, combat, value)

if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then

doCreatureAddHealth(target, getCreatureMaxHealth(target))

loseOnZombieArena(target)

return false

end

return true

end

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

lib/032-position.lua:

 

Substitui a função isInRange por isso:

 

function isInRange(position, fromPosition, toPosition)
return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z)
end

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Bom amigo, primeiramente obrigado por vir aqui me responder.

O erro permanece porém agora é :33 (ali no erro do distro observe que está :34)

 

O único problema que tenho com o evento, é que, após seu término,

Os players não morrem pra nenhum bicho do ot !

Peço ajuda !

Link para o comentário
Compartilhar em outros sites

  • 0

Rapaz, após o monstro matar o player, o char continua, mas sem a life bar, né? Se sim, me manda o erro de quando isso acontece.

 

Ou então, tenta substituir seu arquivo por esse. PS: Não prometo que vai resolver e esse tá com umas alterações nas broadcasts, mas só editar dps.

 

 

 

function loseOnZombieArena(cid)

kickPlayerFromZombiesArea(cid)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! Você morreu.")

local players = getZombiesEventPlayers()

if(#players <= 1) then

local winner = players[1]

if(winner) then

doPlayerAddItem(winner, 2157, 50, true)

doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "Você venceu o Zombies Arena Event.")

doBroadcastMessage("Após " .. os.time() - getPlayerZombiesEventStatus(winner) .. " segundos de luta, " .. getCreatureName(winner) .. " venceu o Zombies Arena Event jogando contra " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies!")

kickPlayerFromZombiesArea(winner)

else

doBroadcastMessage("Zombies Arena Event finalizado! Ninguém venceu!")

end

doSetStorage(ZE_STATUS, 0)

doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS)

doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0)

doSetStorage(ZE_ZOMBIES_SPAWNED, 0)

local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1

local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1

local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z}

for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do

centerPos.z = z

for i, uid in pairs(getSpectators(centerPos, width, height, false)) do

if(isMonster(uid)) then

doRemoveCreature(uid)

end

end

end

end

end

 

function onStatsChange(target, cid, changetype, combat, value)

if((cid and isMonster(cid) and getCreatureName(cid) == "Event Zombie") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then

doCreatureAddHealth(target, getCreatureMaxHealth(target))

loseOnZombieArena(target)

return false

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, o evento ocorre normalmente, porém, os bichos não hitam em nenhum player depois de acabar o evento.

O erro que acontece no distro, está ai encima !

Preciso da ajuda e alguem :( (manda pm, que passo msn)

abraços

 

OBS: Quem resolver, irá ganhar 1 mes de REP +

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...