Ir para conteúdo
  • 0

juliok80

Pergunta

Oi galera do Xtibia, hoje alguns players foram fazer a quest anihilator, e quando acionaram a alavanca apareceu esse erro no console:

 

errosr.png

 

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
end

 

 

Agradeço desde que nasci!

 

Abraços!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

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 por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

Vou testar assim que reiniciar o ot... se funciona eu num sei, mas esse script está MUITO mais limpo oh.png

 

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 por juliok80
Link para o comentário
Compartilhar em outros sites

  • 0

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 :)

Link para o comentário
Compartilhar em outros sites

  • 0

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 por juliok80
Link para o comentário
Compartilhar em outros sites

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