BR

[Encerrado] (Bug) Quest

Por BrunooMaciell, 10 de set. de 2013 em Tópicos Sem Resposta

bug - poketibia
script
17
1.6k
BrunooMaciellB
10 de setembro de 2013 às 10:10

Estou aqui editando o server que o gabriel posto !!

 

porem tem um bug de alguns que apareceu ja arrumei so falto este porinquanto ^^

 

BUG

 

[10/09/2013 08:41:52] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/anidesertquest.lua:62: '=' expected near 'true'
[10/09/2013 08:41:52] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/anidesertquest.lua)
[10/09/2013 08:41:52] data/actions/scripts/quests/anidesertquest.lua:62: '=' expected near 'true'

 

 

SCRIPT

 

--[[
Obs:

Colocar o arquivo na pasta actions/scripts/quests

Tag do actions.xml \/


ActionID da 1ª alavanca = 538371
ActionID da 2ª alavanca = 538372

ActionID do 1º item recompensa = 538373
ActionID do 2º item recompensa = 538374
ActionID do 3º item recompensa = 538375

No script procure por "item1" e coloque o id do item do 1º item
No script procure por "item2" e coloque o id do item do 2º item
No script procure por "item3" e coloque o id do item do 3º item

E em prizeMessage, coloque a mensagem que vai receber depois de escolher 1 premio, eu coloquei 1 de exemplo
]]--

telePos = {x = 1645, y = 1278, z = 9}

aniPos1 = {x = 1646, y = 1265, z = 9, stackpos = 253}
ani1 = getThingFromPos(aniPos1)
aniPos2 = {x = 1647, y = 1265, z = 9, stackpos = 253}
ani2 = getThingFromPos(aniPos2)
aniPos3 = {x = 1648, y = 1265, z = 9, stackpos = 253}
ani3 = getThingFromPos(aniPos3)
aniPos4 = {x = 1649, y = 1265, z = 9, stackpos = 253}
ani4 = getThingFromPos(aniPos4)

nextPos1 = {x = 1, y = 2, z = 9}
nextPos2 = {x = 1, y = 2, z = 9}
nextPos3 = {x = 1, y = 2, z = 9}
nextPos4 = {x = 1, y = 2, z = 9}

leverStorage1 = 5381
leverStorage2 = 5382

bauStorage1 = 5383
item1 = 1500
bauStorage2 = 5384
item2 = 1501
bauStorage3 = 5385
item3 = 1502
prizeStorage = 5386
prizeMessage = "You have completed the quest!"

function onUse(cid, item, frompos, item2, topos)

if not isPlayer(cid) then return false end

if item.actionid == leverStorage1 then
if item.itemid == 1945 then
doTeleportThing(cid, telePos)
doTransformItem(item.uid, item.itemid + 1)
return true
elseif item.itemid == 1946 then
doTransformItem(item.uid, item.itemid - 1)
returne true
end
return false
end

if item.actionid == leverStorage2 then
if item.itemid == 1945 then
if isPlayer(ani1) and isPlayer(ani2) and isPlayer(ani3) and isPlayer(ani4) then
nextPos = {nextPos1, nextPos2, nextPos3, nextPos4}
aniPos = {ani1, ani2, ani3, ani4}
doTransformItem(item.uid, item.itemid + 1)
for i = 0, 3 do
doTeleportThing(aniPos[i + 1], nextPos[i + 1])
end
return true
else
doPlayerSendCancel(cid, "You need four players to this quest.")
return false
end
return true
elseif item.itemid == 1946
doTransformItem(item.uid, item.itemid - 1)
return true
end
return false
end

item = 0
if item.actionid == bauStorage1 then
item = item1
elseif item.actionid == bauStorage2 then
item = item2
elseif item.actionid == bauStorage3 then
item = item3
end

if item == 0 then return false end
if prizeStorage > 0 then
doPlayerSendTextMessage(cid, "The chest is empty.", 1)
return false
end
if isInArray{{item1, item2, item3}, item) then
doPlayerAddItem(cid, item, 1)
-- mudar aqui doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))
doPlayerSendTextMessage(cid, prizemessage, 1)
setPlayerStorageValue(cid, prizeStorage, 1)
return true
end

return false
end

 

 

Curti+ ^^

alissonfgpA
10 de setembro de 2013 às 10:56

 

ActionID da 1ª alavanca = 538371
ActionID da 2ª alavanca = 538372

ActionID do 1º item recompensa = 538373
ActionID do 2º item recompensa = 538374
ActionID do 3º item recompensa = 538375

No script procure por "item1" e coloque o id do item do 1º item
No script procure por "item2" e coloque o id do item do 2º item
No script procure por "item3" e coloque o id do item do 3º item

E em prizeMessage, coloque a mensagem que vai receber depois de escolher 1 premio, eu coloquei 1 de exemplo
]]--

telePos = {x = 1645, y = 1278, z = 9}

aniPos1 = {x = 1646, y = 1265, z = 9, stackpos = 253}
ani1 = getThingFromPos(aniPos1)
aniPos2 = {x = 1647, y = 1265, z = 9, stackpos = 253}
ani2 = getThingFromPos(aniPos2)
aniPos3 = {x = 1648, y = 1265, z = 9, stackpos = 253}
ani3 = getThingFromPos(aniPos3)
aniPos4 = {x = 1649, y = 1265, z = 9, stackpos = 253}
ani4 = getThingFromPos(aniPos4)

nextPos1 = {x = 1, y = 2, z = 9}
nextPos2 = {x = 1, y = 2, z = 9}
nextPos3 = {x = 1, y = 2, z = 9}
nextPos4 = {x = 1, y = 2, z = 9}

leverStorage1 = 5381
leverStorage2 = 5382

bauStorage1 = 5383
item1 = 1500
bauStorage2 = 5384
item2 = 1501
bauStorage3 = 5385
item3 = 1502
prizeStorage = 5386
prizeMessage = "You have completed the quest!"

function onUse(cid, item, frompos, item2, topos)

if not isPlayer(cid) then return false end

if item.actionid == leverStorage1 then
if item.itemid == 1945 then
doTeleportThing(cid, telePos)
doTransformItem(item.uid, item.itemid + 1)
return true
elseif item.itemid == 1946 then
doTransformItem(item.uid, item.itemid - 1)
returne true
end
return false
end

if item.actionid == leverStorage2 then
if item.itemid == 1945 then
if isPlayer(ani1) and isPlayer(ani2) and isPlayer(ani3) and isPlayer(ani4) then
if nextPos = {nextPos1, nextPos2, nextPos3, nextPos4} then
if aniPos = {ani1, ani2, ani3, ani4} then
doTransformItem(item.uid, item.itemid + 1)
for i = 0, 3 do
doTeleportThing(aniPos[i + 1], nextPos[i + 1])
end
return true
else
doPlayerSendCancel(cid, "You need four players to this quest.")
return false
end
end
end
return true
elseif item.itemid == 1946
doTransformItem(item.uid, item.itemid - 1)
return true
end
return false
end

item = 0
if item.actionid == bauStorage1 then
item = item1
elseif item.actionid == bauStorage2 then
item = item2
elseif item.actionid == bauStorage3 then
item = item3
end

if item == 0 then return false end
if prizeStorage > 0 then
doPlayerSendTextMessage(cid, "The chest is empty.", 1)
return false
end
if isInArray{{item1, item2, item3}, item) then
doPlayerAddItem(cid, item, 1)
-- mudar aqui doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))
doPlayerSendTextMessage(cid, prizemessage, 1)
setPlayerStorageValue(cid, prizeStorage, 1)
return true
end

return false
end

 

 

nao testei reporta se estiver com erro ainda

BrunooMaciellB
10 de setembro de 2013 às 11:40

Cabei de testar aqui e continua bugado =/

10 de setembro de 2013 às 13:11

Aqui está

 

--[[
Obs:
 
Colocar o arquivo na pasta actions/scripts/quests
 
Tag do actions.xml \/
 
 
ActionID da 1ª alavanca = 538371
ActionID da 2ª alavanca = 538372
 
ActionID do 1º item recompensa = 538373
ActionID do 2º item recompensa = 538374
ActionID do 3º item recompensa = 538375
 
No script procure por "item1" e coloque o id do item do 1º item
No script procure por "item2" e coloque o id do item do 2º item
No script procure por "item3" e coloque o id do item do 3º item
 
E em prizeMessage, coloque a mensagem que vai receber depois de escolher 1 premio, eu coloquei 1 de exemplo
]]--
 
telePos = {x = 1645, y = 1278, z = 9}
 
aniPos1 = {x = 1646, y = 1265, z = 9, stackpos = 253}
ani1 = getThingFromPos(aniPos1)
aniPos2 = {x = 1647, y = 1265, z = 9, stackpos = 253}
ani2 = getThingFromPos(aniPos2)
aniPos3 = {x = 1648, y = 1265, z = 9, stackpos = 253}
ani3 = getThingFromPos(aniPos3)
aniPos4 = {x = 1649, y = 1265, z = 9, stackpos = 253}
ani4 = getThingFromPos(aniPos4)
 
nextPos1 = {x = 1, y = 2, z = 9}
nextPos2 = {x = 1, y = 2, z = 9}
nextPos3 = {x = 1, y = 2, z = 9}
nextPos4 = {x = 1, y = 2, z = 9}
 
leverStorage1 = 5381
leverStorage2 = 5382
 
bauStorage1 = 5383
item1 = 1500
bauStorage2 = 5384
item2 = 1501
bauStorage3 = 5385
item3 = 1502
prizeStorage = 5386
prizeMessage = "You have completed the quest!"
 
function onUse(cid, item, frompos, item2, topos)
 
    if not isPlayer(cid) then
        return false
    end
 
    if item.actionid == leverStorage1 then
        if item.itemid == 1945 then
            doTeleportThing(cid, telePos)
            doTransformItem(item.uid, item.itemid + 1)
            return true
        elseif item.itemid == 1946 then
            doTransformItem(item.uid, item.itemid - 1)
            return true
        end
        return false
    end
 
    if item.actionid == leverStorage2 then
        if item.itemid == 1945 then
            if isPlayer(ani1) and isPlayer(ani2) and isPlayer(ani3) and isPlayer(ani4) then
                nextPos = {nextPos1, nextPos2, nextPos3, nextPos4}
                aniPos = {ani1, ani2, ani3, ani4}
                doTransformItem(item.uid, item.itemid + 1)
                for i = 0, 3 do
                    doTeleportThing(aniPos[i + 1], nextPos[i + 1])
                end
                return true
            else
                doPlayerSendCancel(cid, "You need four players to this quest.")
                return false
            end
            return true
        elseif item.itemid == 1946
            doTransformItem(item.uid, item.itemid - 1)
            return true
        end
        return false
    end
 
    item = 0
    if item.actionid == bauStorage1 then
        item = item1
    elseif item.actionid == bauStorage2 then
        item = item2
    elseif item.actionid == bauStorage3 then
        item = item3
    end
 
    if item == 0 then
        return false
    end
    if prizeStorage > 0 then
        doPlayerSendTextMessage(cid, "The chest is empty.", 1)
        return false
    end
    if isInArray{{item1, item2, item3}, item) then
        doPlayerAddItem(cid, item, 1)
        -- mudar aqui doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))
        doPlayerSendTextMessage(cid, prizemessage, 1)
        setPlayerStorageValue(cid, prizeStorage, 1)
        return true
    end
    return false
end

Editado Setembro 11 por GiovaniRodrigo

BrunooMaciellB
10 de setembro de 2013 às 14:38

continua com o bug ainda =/

10 de setembro de 2013 às 16:29

Acho impossível, o único erro da linha 62 já foi corrigido.

Tem certeza de que está usando o script que eu mandei?

BrunooMaciellB
11 de setembro de 2013 às 10:05

sim cara ^^

11 de setembro de 2013 às 14:57

Pronto, eu editei aquele script que eu mandei, recopie ele e teste novamente.

Eles estava meio bagunçado, então deixei o mais formatado possível.

BrunooMaciellB
11 de setembro de 2013 às 15:10

ok

12 de setembro de 2013 às 03:10

Responda se deu certo ou não.

alissonfgpA
12 de setembro de 2013 às 08:40

testa esse caso o do

GiovaniRodrigo n de certo
--[[
Obs:
 
Colocar o arquivo na pasta actions/scripts/quests
 
Tag do actions.xml \/
 
 
ActionID da 1ª alavanca = 538371
ActionID da 2ª alavanca = 538372
 
ActionID do 1º item recompensa = 538373
ActionID do 2º item recompensa = 538374
ActionID do 3º item recompensa = 538375
 
No script procure por "item1" e coloque o id do item do 1º item
No script procure por "item2" e coloque o id do item do 2º item
No script procure por "item3" e coloque o id do item do 3º item
 
E em prizeMessage, coloque a mensagem que vai receber depois de escolher 1 premio, eu coloquei 1 de exemplo
]]--
 
telePos = {x = 1645, y = 1278, z = 9}
 
aniPos1 = {x = 1646, y = 1265, z = 9, stackpos = 253}
ani1 = getThingFromPos(aniPos1)
aniPos2 = {x = 1647, y = 1265, z = 9, stackpos = 253}
ani2 = getThingFromPos(aniPos2)
aniPos3 = {x = 1648, y = 1265, z = 9, stackpos = 253}
ani3 = getThingFromPos(aniPos3)
aniPos4 = {x = 1649, y = 1265, z = 9, stackpos = 253}
ani4 = getThingFromPos(aniPos4)
 
nextPos1 = {x = 1, y = 2, z = 9}
nextPos2 = {x = 1, y = 2, z = 9}
nextPos3 = {x = 1, y = 2, z = 9}
nextPos4 = {x = 1, y = 2, z = 9}
 
leverStorage1 = 5381
leverStorage2 = 5382
 
bauStorage1 = 5383
item1 = 1500
bauStorage2 = 5384
item2 = 1501
bauStorage3 = 5385
item3 = 1502
prizeStorage = 5386
prizeMessage = "You have completed the quest!"
 
function onUse(cid, item, frompos, item2, topos)
 
    if not isPlayer(cid) then
        return false
    end
 
    if item.actionid == leverStorage1 then
        if item.itemid == 1945 then
            doTeleportThing(cid, telePos)
            doTransformItem(item.uid, item.itemid + 1)
            return true
        elseif item.itemid == 1946 then
            doTransformItem(item.uid, item.itemid - 1)
        end
       return true
    end
 
    if item.actionid == leverStorage2 then
        if item.itemid == 1945 then
            if isPlayer(ani1) and isPlayer(ani2) and isPlayer(ani3) and isPlayer(ani4) then
                nextPos = {nextPos1, nextPos2, nextPos3, nextPos4}
                aniPos = {ani1, ani2, ani3, ani4}
                doTransformItem(item.uid, item.itemid + 1)
                for i = 0, 3 do
                    doTeleportThing(aniPos[i + 1], nextPos[i + 1])
                end
                return true
            else
                doPlayerSendCancel(cid, "You need four players to this quest.")
                return false
            end
            return true
        elseif item.itemid == 1946
            doTransformItem(item.uid, item.itemid - 1)
            return true
        end
        return false
    end
 
    item = 0
    if item.actionid == bauStorage1 then
        item = item1
    elseif item.actionid == bauStorage2 then
        item = item2
    elseif item.actionid == bauStorage3 then
        item = item3
    end
 
    if item == 0 then
        return false
    end
    if prizeStorage > 0 then
        doPlayerSendTextMessage(cid, "The chest is empty.", 1)
        return false
    end
    if isInArray{{item1, item2, item3}, item) then
        doPlayerAddItem(cid, item, 1)
        -- mudar aqui doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))
        doPlayerSendTextMessage(cid, prizemessage, 1)
        setPlayerStorageValue(cid, prizeStorage, 1)
        return true
    end
    return false
end

Editado Setembro 12 por alissonfgp

kttallanK
12 de setembro de 2013 às 17:15

aff que tenso /\ ta errado tbm

 

@brunno eskeceu de colocar then no elseif vocé botou ) no lugar errado e tbm dei uma editada nas variaves global :)

para compravar que ta certo toma aew

o debbuger disse que não avia erro

INFO: Starting OTScript Debug.lua
INFO: Stopping OTScript Debug.lua

 

 

--[[
Obs:
 
Colocar o arquivo na pasta actions/scripts/quests
 
Tag do actions.xml \/
 
 
ActionID da 1ª alavanca = 538371
ActionID da 2ª alavanca = 538372
 
ActionID do 1º item recompensa = 538373
ActionID do 2º item recompensa = 538374
ActionID do 3º item recompensa = 538375
 
No script procure por "item1" e coloque o id do item do 1º item
No script procure por "item2" e coloque o id do item do 2º item
No script procure por "item3" e coloque o id do item do 3º item
 
E em prizeMessage, coloque a mensagem que vai receber depois de escolher 1 premio, eu coloquei 1 de exemplo
]]--
 
telePos = {x = 1645, y = 1278, z = 9}
 
aniPos1 = {x = 1646, y = 1265, z = 9, stackpos = 253}
local ani1 = getThingfromPos(aniPos1)
aniPos2 = {x = 1647, y = 1265, z = 9, stackpos = 253}
local ani2 = getThingfromPos(aniPos2)
aniPos3 = {x = 1648, y = 1265, z = 9, stackpos = 253}
local ani3 = getThingfromPos(aniPos3)
aniPos4 = {x = 1649, y = 1265, z = 9, stackpos = 253}
local ani4 = getThingfromPos(aniPos4)
 
nextPos1 = {x = 1, y = 2, z = 9}
nextPos2 = {x = 1, y = 2, z = 9}
nextPos3 = {x = 1, y = 2, z = 9}
nextPos4 = {x = 1, y = 2, z = 9}
 
leverStorage1 = 5381
leverStorage2 = 5382
 
bauStorage1 = 5383
item1 = 1500
bauStorage2 = 5384
item2 = 1501
bauStorage3 = 5385
item3 = 1502
prizeStorage = 5386
prizeMessage = "You have completed the quest!"
 
function onUse(cid, item, frompos, item2, topos)
 
    if not isPlayer(cid) then
        return false
    end
 
    if item.actionid == leverStorage1 then
        if item.itemid == 1945 then
            doTeleportThing(cid, telePos)
            doTransformItem(item.uid, item.itemid + 1)
            return true
        elseif item.itemid == 1946 then
            doTransformItem(item.uid, item.itemid - 1)
        end
       return true
    end
 
    if item.actionid == leverStorage2 then
        if item.itemid == 1945 then
            if isPlayer(ani1) and isPlayer(ani2) and isPlayer(ani3) and isPlayer(ani4) then
                nextPos = {nextPos1, nextPos2, nextPos3, nextPos4}
                aniPos = {ani1, ani2, ani3, ani4}
                doTransformItem(item.uid, item.itemid + 1)
                for i = 0, 3 do
                    doTeleportThing(aniPos[i + 1], nextPos[i + 1])
                end
                return true
            else
                doPlayerSendCancel(cid, "You need four players to this quest.")
                return false
            end
            return true
        elseif item.itemid == 1946 then
            doTransformItem(item.uid, item.itemid - 1)
            return true
        end
        return false
    end
 
    item = 0
    if item.actionid == bauStorage1 then
        item = item1
    elseif item.actionid == bauStorage2 then
        item = item2
    elseif item.actionid == bauStorage3 then
        item = item3
    end
 
    if item == 0 then
        return false
    end
    if prizeStorage > 0 then
        doPlayerSendTextMessage(cid, "The chest is empty.", 1)
        return false
    end
    if isInArray{{item1, item2, item3}, item} then
        doPlayerAddItem(cid, item, 1)
        -- mudar aqui doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))
        doPlayerSendTextMessage(cid, prizemessage, 1)
        setPlayerStorageValue(cid, prizeStorage, 1)
        return true
    end
    return false
end

 

 

alissonfgpA
13 de setembro de 2013 às 08:49

aff que tenso /\ ta errado tbm

 

@brunno eskeceu de colocar then no elseif vocé botou ) no lugar errado e tbm dei uma editada nas variaves global :)

para compravar que ta certo toma aew

o debbuger disse que não avia erro

INFO: Starting OTScript Debug.lua
INFO: Stopping OTScript Debug.lua

 

 

--[[
Obs:
 
Colocar o arquivo na pasta actions/scripts/quests
 
Tag do actions.xml \/
 
 
ActionID da 1ª alavanca = 538371
ActionID da 2ª alavanca = 538372
 
ActionID do 1º item recompensa = 538373
ActionID do 2º item recompensa = 538374
ActionID do 3º item recompensa = 538375
 
No script procure por "item1" e coloque o id do item do 1º item
No script procure por "item2" e coloque o id do item do 2º item
No script procure por "item3" e coloque o id do item do 3º item
 
E em prizeMessage, coloque a mensagem que vai receber depois de escolher 1 premio, eu coloquei 1 de exemplo
]]--
 
telePos = {x = 1645, y = 1278, z = 9}
 
aniPos1 = {x = 1646, y = 1265, z = 9, stackpos = 253}
local ani1 = getThingfromPos(aniPos1)
aniPos2 = {x = 1647, y = 1265, z = 9, stackpos = 253}
local ani2 = getThingfromPos(aniPos2)
aniPos3 = {x = 1648, y = 1265, z = 9, stackpos = 253}
local ani3 = getThingfromPos(aniPos3)
aniPos4 = {x = 1649, y = 1265, z = 9, stackpos = 253}
local ani4 = getThingfromPos(aniPos4)
 
nextPos1 = {x = 1, y = 2, z = 9}
nextPos2 = {x = 1, y = 2, z = 9}
nextPos3 = {x = 1, y = 2, z = 9}
nextPos4 = {x = 1, y = 2, z = 9}
 
leverStorage1 = 5381
leverStorage2 = 5382
 
bauStorage1 = 5383
item1 = 1500
bauStorage2 = 5384
item2 = 1501
bauStorage3 = 5385
item3 = 1502
prizeStorage = 5386
prizeMessage = "You have completed the quest!"
 
function onUse(cid, item, frompos, item2, topos)
 
    if not isPlayer(cid) then
        return false
    end
 
    if item.actionid == leverStorage1 then
        if item.itemid == 1945 then
            doTeleportThing(cid, telePos)
            doTransformItem(item.uid, item.itemid + 1)
            return true
        elseif item.itemid == 1946 then
            doTransformItem(item.uid, item.itemid - 1)
        end
       return true
    end
 
    if item.actionid == leverStorage2 then
        if item.itemid == 1945 then
            if isPlayer(ani1) and isPlayer(ani2) and isPlayer(ani3) and isPlayer(ani4) then
                nextPos = {nextPos1, nextPos2, nextPos3, nextPos4}
                aniPos = {ani1, ani2, ani3, ani4}
                doTransformItem(item.uid, item.itemid + 1)
                for i = 0, 3 do
                    doTeleportThing(aniPos[i + 1], nextPos[i + 1])
                end
                return true
            else
                doPlayerSendCancel(cid, "You need four players to this quest.")
                return false
            end
            return true
        elseif item.itemid == 1946 then
            doTransformItem(item.uid, item.itemid - 1)
            return true
        end
        return false
    end
 
    item = 0
    if item.actionid == bauStorage1 then
        item = item1
    elseif item.actionid == bauStorage2 then
        item = item2
    elseif item.actionid == bauStorage3 then
        item = item3
    end
 
    if item == 0 then
        return false
    end
    if prizeStorage > 0 then
        doPlayerSendTextMessage(cid, "The chest is empty.", 1)
        return false
    end
    if isInArray{{item1, item2, item3}, item} then
        doPlayerAddItem(cid, item, 1)
        -- mudar aqui doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))
        doPlayerSendTextMessage(cid, prizemessage, 1)
        setPlayerStorageValue(cid, prizeStorage, 1)
        return true
    end
    return false
end

 

 

sahusahusausa tenso, é mas vc uso debbuger kkkkk

kttallanK
13 de setembro de 2013 às 18:50

Bora brunno manin fale logo o resultado /\ melhor doq não saber oq ta fazendo *--*

3 meses depois...
lukinhaswrL
07 de dezembro de 2013 às 02:26

kttallan seu codigo não deu certo! o bug ainda continua e Crash o Server!