Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Desert Quest Bugada


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Eaew galera do TK!

To com um problema na seguinte script

Citar

 local config = {
    -- level needed to make the quest
    level = 130,
 
    -- if players should be able to do the quest unlimited amount of times (not conflicting quest rewards)
    redo = {
        status = true, -- true = unlimited, false = once
        storageValue = 61111 -- only if status is false this will be used
    },
 
    -- vocation requirement, positions and item configuration
    {
        vocations = {1, 5},
        itemId = 2190,
        playerPos = {x=1117, y=1150, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, -- Position of the reward room.
        itemPos = {x=1117, y=1151, z=6}  -- Position of Spellbook "Sorcerer".
    },
 
    {
        vocations = {2, 6},
        itemId = 2182,
        playerPos = {x=1123, y=1157, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, -- Position of the reward room.
        itemPos = {x=1122, y=1157, z=6} -- Position of Red apple "Druid".
    },
 
    {
        vocations = {3, 7},
        itemId = 2399,
        playerPos = {x=1127, y=1155, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, -- Position of the reward room.
        itemPos = {x=1127, y=1154, z=6} -- Position of Crossbow "Paladin".
    },
 
    {
        vocations = {4, 8},
        itemId = 8602,
        playerPos = {x=1123, y=1147, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, --Position of the reward room.
        itemPos = {x=1122, y=1147, z=6} --Position of Sword "Knight".
    }
}
 
function onUse(cid)
    local players = {}
    for _, v in ipairs(config) do
 
        v.playerPos.stackpos = 253
        local player = getThingfromPos(v.playerPos).uid
 
        if isPlayer(player) == FALSE then
            return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Não há jogadores suficiente.")
        elseif getPlayerLevel(player) < config.level then
            players.level = true
        elseif isInArray(v.vocations, getPlayerVocation(player)) == FALSE then
            players.vocation = true
        elseif config.redo.status and getPlayerStorageValue(cid, config.redo.storageValue) ~= TRUE then
            players.done = true
        else
            v.itemPos.stackpos = 1
            local item = getThingfromPos(v.itemPos)
 
            if item.itemid ~= v.itemId then
                players.item = true
            else
                table.insert(players, player)
            end
        end
    end
 
    if players.level then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Todos os jogadores devem ser level " .. config.level .. " ou mais.")
    elseif players.vocation then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Todos os jogadores devem estar em seus respectivo piso!")
    elseif players.done then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Um jogador em seu time ja fez a Fishing Rod and Pick Quest!")
    elseif players.item then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Todos os items devem estar na posição correta!")
    else
        for k, player in ipairs(players) do
            doSendMagicEffect(getCreaturePosition(player), CONST_ME_POFF)
            doTeleportThing(player, config[k].newPos)
            doSendMagicEffect(getCreaturePosition(player), CONST_ME_TELEPORT)
        end
    end
 
    return TRUE
end

 QUando um time tenta fazer a quest  (time que nunca fez) fala que alguem do time ja fez. Sacou?

Citar

if players should be able to do the quest unlimited amount of times (not conflicting quest rewards)
    redo = {
        status = true, -- true = unlimited, false = once
        storageValue = 61111 -- only if status is false this will be used

se eu mudar de true pra falser na tag acima /\ podera ser feita varias vezes, mas quero que possa ser feita apenas umas vez só!

@luangop

 

CREDITO DA SCRIPT: Tovar-OtLand

@koete

Ai amigo, tenta me ajudar nessa script ai?, mt obg !!

os players mesmo que nunca fizeram a quest não podem entrar nela, fala que ja fizeram a quest :( sendo que nunca fizeram. pfv tenta me ajudar ai, vlw +REP.

Link para o post
Compartilhar em outros sites
  • Respostas 12
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

@Joaoafp    

Posted Images

(storageValue = 61111)

 

storageValue serve para gravar um número pra sempre em um player, tipo uma marca. no caso quando algum jogador ja tem essa numeração o script retorna para falso e manda a mensagem que tem alguem com essa numeração. Deve ter outra quest no seu server que da a mesma storagevalue. Mude a numeração para qualquer outra coloca uns 8543126 sei la e testa. 

Link para o post
Compartilhar em outros sites

Vou tentar aqui, qual quer coisa solicito vc aqui de novo, blza? já volto.

@koete

Não deu certo, coloquei uma storage qual quer e continuo dando errado, fica dando essa msg \/ e ngm toma teleport pra dentro da quest

 

21:07 Um jogador em seu time ja fez a Fishing Rod and Pick Quest!

 

Sendo que ngm nunca fez a quest que esta no time, criei os chares td de novo e assim mesmo dá esse error. :(

@luangop

Tenta me ajudar nessa script?

Até agora não consegui arrumar :(

Vlw tmj 

 

+REP

Link para o post
Compartilhar em outros sites

Teste assim:

 local config = {
    -- level needed to make the quest
    level = 130,
 
    -- if players should be able to do the quest unlimited amount of times (not conflicting quest rewards)
    redo = {
        status = true, -- true = unlimited, false = once
        storageValue = 61111 -- only if status is false this will be used
    },
 
    -- vocation requirement, positions and item configuration
    {
        vocations = {1, 5},
        itemId = 2190,
        playerPos = {x=1117, y=1150, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, -- Position of the reward room.
        itemPos = {x=1117, y=1151, z=6}  -- Position of Spellbook "Sorcerer".
    },
 
    {
        vocations = {2, 6},
        itemId = 2182,
        playerPos = {x=1123, y=1157, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, -- Position of the reward room.
        itemPos = {x=1122, y=1157, z=6} -- Position of Red apple "Druid".
    },
 
    {
        vocations = {3, 7},
        itemId = 2399,
        playerPos = {x=1127, y=1155, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, -- Position of the reward room.
        itemPos = {x=1127, y=1154, z=6} -- Position of Crossbow "Paladin".
    },
 
    {
        vocations = {4, 8},
        itemId = 8602,
        playerPos = {x=1123, y=1147, z=6}, -- Initial position in the Stone tile
        newPos = {x=1122, y=1153, z=6}, --Position of the reward room.
        itemPos = {x=1122, y=1147, z=6} --Position of Sword "Knight".
    }
}
 
function onUse(cid)
    local players = {}
    for _, v in ipairs(config) do
 
        v.playerPos.stackpos = 253
        local player = getThingfromPos(v.playerPos).uid
 
        if isPlayer(player) == FALSE then
            return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Não há jogadores suficiente.")
        elseif getPlayerLevel(player) < config.level then
            players.level = true
        elseif isInArray(v.vocations, getPlayerVocation(player)) == FALSE then
            players.vocation = true
        elseif config.redo.status and getPlayerStorageValue(player, config.redo.storageValue) ~= TRUE then
            players.done = true
        else
            v.itemPos.stackpos = 1
            local item = getThingfromPos(v.itemPos)
 
            if item.itemid ~= v.itemId then
                players.item = true
            else
                table.insert(players, player)
            end
        end
    end
 
    if players.level then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Todos os jogadores devem ser level " .. config.level .. " ou mais.")
    elseif players.vocation then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Todos os jogadores devem estar em seus respectivo piso!")
    elseif players.done then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Um jogador em seu time ja fez a Fishing Rod and Pick Quest!")
    elseif players.item then
        doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, "Todos os items devem estar na posição correta!")
    else
        for k, player in ipairs(players) do
            doSendMagicEffect(getCreaturePosition(player), CONST_ME_POFF)
            doTeleportThing(player, config[k].newPos)
            doSendMagicEffect(getCreaturePosition(player), CONST_ME_TELEPORT)
        end
    end
 
    return TRUE
end

 

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

@luangop

Continua o mesmo error, criei 4 chars de cada vocação e coloquei tudo certo e fala a mesma coisa \/

13:13 Um jogador em seu time ja fez a Fishing Rod and Pick Quest!

Sendo que nenhum deles fizeram a quest, nunca fizeram. :(

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96845
    Tópicos
    519605
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo