Você alterou o local da anihi ?
Erro no script da anihilator
Por juliok80, 26 de dez. de 2012 em Scripts
info
Grupo: Marquês
Registrado: 25/09/10
Posts: 1.3k
Reputação: +446
Gênero: Masculino

info
Grupo: Artesão
Registrado: 15/11/12
Posts: 120
Reputação: +17
Char no Tibia: Ba Rao

Você alterou o local da anihi ?
Não, e a propósito, fui lá no local checar se as coordenadas batiam e aparentemente está ok.

Editado Dezembro 26 por juliok80
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

eu n testei mas.. tenta usar esse aki..
local players = {
{getThingfromPos({x=194, y=118, z=9, stackpos=253})},
{getThingfromPos({x=193, y=118, z=9, stackpos=253})},
{getThingfromPos({x=192, y=118, z=9, stackpos=253})},
{getThingfromPos({x=191, y=118, z=9, stackpos=253})},
}
local demonPos = {
{x=190, y=116, z=10},
{x=192, y=116, z=10},
{x=191, y=120, z=10},
{x=193, y=120, z=10},
{x=194, y=118, z=10},
{x=195, y=118, z=10},
}
local newPos = {
{x=193, y=118, z=10},
{x=192, y=118, z=10},
{x=191, y=118, z=10},
{x=190, y=118, z=10},
}
local premios = {
[5006] = {"Demon Armor", 2494},
[5007] = {"Magic Sword", 2400},
[5008] = {"Stonecutter Axe", 2431},
[5009] = {"Thunder Hammer", 2421},
}
local flag = 0
local questLvl = 100
function onUse(cid, item, frompos, item2, topos)
if item.uid == 7000 then
if item.itemid == 1946 then
for _, player in ipairs(players) do
if isPlayer(player) and getPlayerLevel(player) >= questLvl then
flag = flag+1
end
end
if flag ~= 4 then
doPlayerSendCancel(cid, "You need 4 players at lvl 100+ to do that!")
return true
end
for _, pos in ipairs(demonPos) do
doSummonCreature("Demon", pos)
end
for _, player in ipairs(players) do
doSendMagicEffect(getPlayerPosition(player), 2)
doTeleportThing(player, newPos[_])
doSendMagicEffect(newPos[_], 10)
end
doTransformItem(item.uid, 1945)
end
if item.itemid == 1945 then
local starting = {x=188, y=111, z=10}
local ending = {x=210, y=122, z=10}
local monster = {}
local trash = {x=233, y=125, z=10}
for x = starting.x, ending.x do
for y = starting.y, ending.y do
local thing = {x = x, y = y, z = starting.z, stackpos = 253}
if isPlayer(thing.uid) then
return doTransformItem(item.uid, 1946) and true
elseif isMonster(thing.uid) then
table.insert(monster, thing.uid)
end
end
end
if #monster >= 1 then
for i = 1, #monster do
doTeleportThing(monster, trash)
end
end
end
end
if premios[item.uid] then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a "..premios[item.uid][1]..".")
doPlayerAddItem(cid, premios[item.uid][2], 1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
return true
end
Editado Dezembro 26 por Slicer
info
Grupo: Artesão
Registrado: 15/11/12
Posts: 120
Reputação: +17
Char no Tibia: Ba Rao

Vou testar assim que reiniciar o ot... se funciona eu num sei, mas esse script está MUITO mais limpo ![]()
Obrigado Slicer, jaja eu volto pra dizer se funcionou!
Ah man... se der pra você dar um pulinho nesse meu outro tópico eu agradeceria muito!
http://www.xtibia.co...73#entry1419873
@Edit
Cara, não sei o que tem nesse script ai... mas depois que eu coloquei ele, o ot parou de funcionar, quando eu tento rodar o console aparece a mensagem dizendo que o Windows encontrou um erro no OT e precisa ser fechado, depois eu voltei para o script anterior e o OT voltou a funcionar.
Editado Dezembro 27 por juliok80
info
Grupo: Artesão
Registrado: 18/12/12
Posts: 112
Reputação: +13

Que tal usar outro script? ![]()
AnihiAlavanca
function onUse(cid, item, frompos, item2, topos)
if item.uid == 7000 and item.itemid == 1945 then
player1pos = {x=1109, y=1204, z=11, stackpos=253}
player1 = getThingfromPos(player1pos)
player2pos = {x=1110, y=1204, z=11, stackpos=253}
player2 = getThingfromPos(player2pos)
player3pos = {x=1111, y=1204, z=11, stackpos=253}
player3 = getThingfromPos(player3pos)
player4pos = {x=1112, y=1204, z=11, stackpos=253}
player4 = getThingfromPos(player4pos)
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7000)
queststatus2 = getPlayerStorageValue(player2.uid,7000)
queststatus3 = getPlayerStorageValue(player3.uid,7000)
queststatus4 = getPlayerStorageValue(player4.uid,7000)
if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
nplayer1pos = {x=1128, y=1181, z=11}
nplayer2pos = {x=1129, y=1181, z=11}
nplayer3pos = {x=1130, y=1181, z=11}
nplayer4pos = {x=1131, y=1181, z=11}
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"Alguem do seu grupo ja fez essa quest .")
end
else
doPlayerSendCancel(cid,"É necessário quatro pessoas para fazer a quest.")
end
elseif item.uid == 7000 and item.itemid == 1946 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Desculpe, impossivel")
end
else
return FALSE
end
return TRUE
end
Anihi Báu
function onUse(cid, item, frompos, item2, topos) if item.uid == 5006 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou um Demon Armor.") doPlayerAddItem(cid, 2494, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio") end elseif item.uid == 5007 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou uma Magic Sword.") doPlayerAddItem(cid, 2400, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio") end elseif item.uid == 5008 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou um Stonecutter Axe.") doPlayerAddItem(cid, 2431, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio.") end elseif item.uid == 5009 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou um thunder hammer") doPlayerAddItem(cid, 2421, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio.") end else return FALSE end return TRUE end
Obs: Só pode pegar 1 item em apenas 1 báu ou seja o báu dará storage ![]()
info
Grupo: Artesão
Registrado: 15/11/12
Posts: 120
Reputação: +17
Char no Tibia: Ba Rao

Que tal usar outro script?
AnihiAlavanca
function onUse(cid, item, frompos, item2, topos) if item.uid == 7000 and item.itemid == 1945 then player1pos = {x=1109, y=1204, z=11, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=1110, y=1204, z=11, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=1111, y=1204, z=11, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=1112, y=1204, z=11, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then queststatus1 = getPlayerStorageValue(player1.uid,7000) queststatus2 = getPlayerStorageValue(player2.uid,7000) queststatus3 = getPlayerStorageValue(player3.uid,7000) queststatus4 = getPlayerStorageValue(player4.uid,7000) if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then nplayer1pos = {x=1128, y=1181, z=11} nplayer2pos = {x=1129, y=1181, z=11} nplayer3pos = {x=1130, y=1181, z=11} nplayer4pos = {x=1131, y=1181, z=11} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"Alguem do seu grupo ja fez essa quest .") end else doPlayerSendCancel(cid,"É necessário quatro pessoas para fazer a quest.") end elseif item.uid == 7000 and item.itemid == 1946 then if getPlayerAccess(cid) > 0 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Desculpe, impossivel") end else return FALSE end return TRUE end
Anihi Báu
function onUse(cid, item, frompos, item2, topos) if item.uid == 5006 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou um Demon Armor.") doPlayerAddItem(cid, 2494, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio") end elseif item.uid == 5007 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou uma Magic Sword.") doPlayerAddItem(cid, 2400, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio") end elseif item.uid == 5008 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou um Stonecutter Axe.") doPlayerAddItem(cid, 2431, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio.") end elseif item.uid == 5009 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você encontrou um thunder hammer") doPlayerAddItem(cid, 2421, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio.") end else return FALSE end return TRUE end
Obs: Só pode pegar 1 item em apenas 1 báu ou seja o báu dará storage
Vou testar o script da alavanca, pq o erro ocorre quando a pessoa tenta puxar a alavanca, só não gostei de uma coisa nesse script ai... é que ele faz a verificação se a pessoa já fez a quest e não deixa o pessoal puxar a alavanca se existir alguém no grupo que já fez a quest, e acho que a pessoa que já fez poderia ajudar outros players a fazer. Dai vou tirar esse if da verificação, o else e o end abaixo dele pra ver se vai dar certo.
E essas posições que estão ai!? Como eu devo alterar?
Já o premio da quest eu vou colocar pelo map editor mesmo, eu acho mais fácil.
Daqui a pouco eu volto para avisar se deu certo.
Valeu!
Editado Dezembro 30 por juliok80



info
Grupo: Artesão
Registrado: 15/11/12
Posts: 120
Reputação: +17
Char no Tibia: Ba Rao
Oi galera do Xtibia, hoje alguns players foram fazer a quest anihilator, e quando acionaram a alavanca apareceu esse erro no console:
Alguém saberia me dizer o que está acontecendo e poderia me ajudar a resolver isso!?
Segue o script da anihilator:
function onUse(cid, item, frompos, item2, topos) if item.uid == 7000 then if item.itemid == 1946 then player1pos = {x=194, y=118, z=9, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=193, y=118, z=9, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=192, y=118, z=9, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=191, y=118, z=9, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then player1level = getPlayerLevel(player1.uid) player2level = getPlayerLevel(player2.uid) player3level = getPlayerLevel(player3.uid) player4level = getPlayerLevel(player4.uid) questlevel = 100 if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then demon1pos = {x=190, y=116, z=10} demon2pos = {x=192, y=116, z=10} demon3pos = {x=191, y=120, z=10} demon4pos = {x=193, y=120, z=10} demon5pos = {x=194, y=118, z=10} demon6pos = {x=195, y=118, z=10} doSummonCreature("Demon", demon1pos) doSummonCreature("Demon", demon2pos) doSummonCreature("Demon", demon3pos) doSummonCreature("Demon", demon4pos) doSummonCreature("Demon", demon5pos) doSummonCreature("Demon", demon6pos) nplayer1pos = {x=193, y=118, z=10} nplayer2pos = {x=192, y=118, z=10} nplayer3pos = {x=191, y=118, z=10} nplayer4pos = {x=190, y=118, z=10} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,1945) else doPlayerSendCancel(cid,"All players must have level 100 to enter.") end else doPlayerSendCancel(cid,"You need 4 players in your team.") end end if item.itemid == 1945 then starting={x=188, y=111, z=10, stackpos=253} checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos} ending={x=210, y=122, z=10, stackpos=253} players=0 totalmonsters=0 monster = {} repeat creature= getThingfromPos(checking) if creature.itemid > 0 then if getPlayerAccess(creature.uid) == 0 then players=players+1 end if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then totalmonsters=totalmonsters+1 monster[totalmonsters]=creature.uid end end checking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 end until checking.y>ending.y if players==0 then trash= {x=233, y=125, z=10} current=0 repeat current=current+1 doTeleportThing(monster[current],trash) until current>=totalmonsters doTransformItem(item.uid,1946) end end end if item.uid == 5006 then queststatus = getPlayerStorageValue(cid,100) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have found a demon armor.") doPlayerAddItem(cid,2494,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5007 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a magic sword.") doPlayerAddItem(cid,2400,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5008 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.") doPlayerAddItem(cid,2431,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5009 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a Thunder Hammer.") doPlayerAddItem(cid,2421,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end return 1 endAgradeço desde que nasci!
Abraços!