@up
- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Zombie Events Onthink/onattack
4
1.2k
info
Grupo: Campones
Registrado: 18/11/11
Posts: 42
Reputação: +2

07 de março de 2012 às 18:30
info
Grupo: Campones
Registrado: 19/12/11
Posts: 4
Reputação: +2
Char no Tibia: snor rhetirso

12 de março de 2012 às 22:51
mano nao te digo certeza
mais pelo erro talves as criaturas que vc pois no evento devem estar com problema na hora de aparecerem
as veses isso pode ser resolvido pegando essa criatura de um outro ot mais só pegue oq fais a criatura aparecer que seria o xml da criatura
te ajudei ? da +rep ae tio nao custa cash ![]()
info
Grupo: Campones
Registrado: 18/11/11
Posts: 42
Reputação: +2

14 de março de 2012 às 14:22
na da ver amigo mas vlw por tentar ajudar

info
Grupo: Campones
Registrado: 18/11/11
Posts: 42
Reputação: +2
esta funcionando normal mas da esse erro no console
[04/03/2012 18:30:28] [Error - CreatureScript Interface]
[04/03/2012 18:30:28] data/creaturescripts/scripts/onattack.lua nStatsChange
[04/03/2012 18:30:28] Description:
[04/03/2012 18:30:28] data/creaturescripts/scripts/onattack.lua:25: bad argument #1 to 'pairs' (table expected, got nil)
[04/03/2012 18:30:29] stack traceback:
[04/03/2012 18:30:29] [C]: in function 'pairs'
[04/03/2012 18:30:29] data/creaturescripts/scripts/onattack.lua:25: in function 'loseOnZombieArena'
[04/03/2012 18:30:29] data/creaturescripts/scripts/onattack.lua:37: in function <data/creaturescripts/scripts/onattack.lua:34>
[04/03/2012 18:30:30] [Error - CreatureScript Interface]
[04/03/2012 18:30:30] data/creaturescripts/scripts/onthink.lua onThink
[04/03/2012 18:30:30] Description:
[04/03/2012 18:30:30] (luaGetCreatureTarget) Creature not found
Onattack
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, 2157, 5, true)
doPlayerAddItem(winner, 6119, 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
onthink
function onThink(cid)
local target = getCreatureTarget(cid)
if(target ~= 0 and not isPlayer(target)) then
doRemoveCreature(target)
end
return true
end
Editado Março 4 por TendoTensei