Ir para conteúdo

Featured Replies

  • Respostas 99
  • Visualizações 3.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • OK. Eu fiz bem rapidamente o sistema aqui, talvez haja algum(s) erro(s). data/lib, crie um arquivo com extensão .lua e coloque o seguinte conteúdo: ARENA = {     WAVES = {         [1] = {"monster_n

  • Ah, isso explica. Você configurou errado. toPos nunca terá valores menores que fromPos.  Provavelmente você inverteu fromPos e toPos. E também deve ser por isso que algumas funções que usei anteriorm

  • OK. Refiz a parte que checa se a wave foi ou não completa. Tanto a maneira antiga quanto a nova funcionaram aqui. Espero que o mesmo aconteça no seu servidor. Troque sua lib por essa: ARENA = {    

Postado

Cara ele segue dando o erro na DB e assim, ele sumona 4 demon na primeira wave, dai eu mato 2 e os outros 2 eu mato mas eles nao somem e sem eu ter matado os 4 ja sai a segunda wave....

FPCMCUA.jpg

Postado
  • Autor

Esse Erro é novo, pelo fato que o "Lib" seu e diferente do meu. Eu quis apenas 1 wave com 1 boss cada. + o Erro que você citou:

 

 

 

- Quando o cara morre o proximo entra na sala e os bixo tao la ainda, ele não limpa os bixo da arena quando alguem morre.

 

Esse erro o amigo @zipter98 consertou, é só tu da uma lida nas postagem anterior. Sempre deixei explicando "Consertou tal erro", já para os futuras pessoas que caso queiram implementar não tenha dificuldade para saber qual erro se trata.

Eu te Ajudei? Então solta aquele REP+ !!

Meus Tutoriais [Tutorial] Bug "Temple position is wrong" (MySql)

Outros:    [Meu Show OFF | Mapa próprio 8.6] 

Postado

Mas cara eu ja fiz tudo oque diz no topico ai, substitui todas as linhas que ele mandou.. vou por aqui pra deixar mais claro:

 

LIB:

ARENA = {
    WAVES = {
        [1] = {
            monsters = {
                {"Demon", {x = 617, y = 2086, z = 6}},     --{nome_do_monstro, {posição_que_vai_nascer}},
                {"Demon", {x = 617, y = 2089, z = 6}},
                {"Demon", {x = 627, y = 2086, z = 6}},
				{"Demon", {x = 627, y = 2089, z = 6}},
            },
            prize = {
                cash = 500000,                              --Coloque false se não for receber cash nessa wave.
                items = false,                              --Coloque false se não for receber item(s) nessa wave.
            },
        },
        [2] = {
            monsters = {
                {"Hellfire Figher", {x = 617, y = 2086, z = 6}},     --{nome_do_monstro, {posição_que_vai_nascer}},
                {"Hellfire Figher", {x = 617, y = 2089, z = 6}},
                {"Hellfire Figher", {x = 627, y = 2086, z = 6}},
				{"Hellfire Figher", {x = 627, y = 2089, z = 6}},
            },
            prize = {
                cash = 1000000,                           
                items = false,                               
            },
        },
        [3] = {
            monsters = {
                {"Orshabaal", {x = 617, y = 2086, z = 6}},     --{nome_do_monstro, {posição_que_vai_nascer}},
                {"Orshabaal", {x = 617, y = 2089, z = 6}},
                {"Orshabaal", {x = 627, y = 2086, z = 6}},
				{"Orshabaal", {x = 627, y = 2089, z = 6}},
            },
            prize = {
                cash = 1000000,                             
                items = {
                    {item_id, count},                        --{ID do item, quantidade},                  
                    {item_id, count},
                },
            },
        },
    },
    NPC = {
        price = 2000,                                --Preço para entrar na arena.
        position = {x = 623, y = 2084, z = 6},            --Para onde o jogador será teleportado ao falar com o NPC.
    },
    TELEPORT = {
      tpId = 1387,                                 --ID do teleporte.
        tpPos = {x = 622, y = 2084, z = 6},               --Onde o teleporte será criado, ao matar o último boss.
        tpToPos = {x = 622, y = 2081, z = 5},             --Para onde o teleporte levará.
        aid = 1307,
    },
    STORAGES = {
        storage = 90190,
        wave_sto = 90191,
    },
    toPos = {x = 614, y = 2082, z = 6},               --Coordenadas da posição superior esquerda da arena.
    fromPos = {x = 630, y = 2092, z = 6},             --Coordenadas da posição inferior direita da arena.
    delay = 15,                                  --Segundos para o boss aparecer.
    level = 100,                                 --Level mínimo.
}
function doWave(cid, wave)
    if not isPlayer(cid) then
        return true
    elseif not ARENA.WAVES[wave] then
        return true
    elseif getPlayerStorageValue(cid, ARENA.STORAGES.storage) > -1 then
        return true
    end
    local monster = ARENA.WAVES[wave]
    local m = monster.monsters
    doPlayerSendTextMessage(cid, 27, "Em "..ARENA.delay.." segundos, começa seu desafio. [Wave: "..wave.."]")
    addEvent(function()
        for i = 1, #m do
            doCreateMonster(m[i][1], m[i][2])
        end
    end, ARENA.delay * 1000)
end
function clearArena()
    for x = ARENA.fromPos.x, ARENA.toPos.x do
        for y = ARENA.fromPos.y, ARENA.toPos.y do
            for z = ARENA.fromPos.z, ARENA.toPos.z do
                local area = {x = x, y = y, z = z}
                local creature = getTopCreature(area).uid
                if isCreature(creature) then   
                    doRemoveCreature(creature)
                end
            end
        end
    end
end
function newWave()
    for x = ARENA.fromPos.x, ARENA.toPos.x do
        for y = ARENA.fromPos.y, ARENA.toPos.y do
            for z = ARENA.fromPos.z, ARENA.toPos.z do
                local area = {x = x, y = y, z = z}
                local creature = getTopCreature(area).uid
                if isCreature(creature) and isMonster(creature) then   
                    return false
                end
            end
        end
    end
    return true
end

Creaturescript:

function onKill(cid, target)
    if isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then
        local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1
		if new_wave > getPlayerStorageValue(cid, 90183) then
		setPlayerStorageValue(cid, 90183, new_wave)
		end
        if newWave() then
            local reward = ARENA.WAVES[getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto)].prize
            local str = "You won:"
            if reward.cash then
                doPlayerAddMoney(cid, reward.cash)
                str = str.."\n"..reward.cash.."$"
            end
            if reward.items then
                for i = 1, #reward.items do
                    local item = reward.items[i][1]
                    local count = reward.items[i][2]
                    if not isItemStackable(item) and count > 1 then
                        for i = 1, count do
                            doPlayerAddItem(cid, item, 1)
                        end
                    else
                        doPlayerAddItem(cid, item, count)
                    end
                    str = str.."\nItem - "..count.."x "..getItemNameById(item)
                end
            end
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str)
            if ARENA.WAVES[new_wave] then
                setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, new_wave)
                doWave(cid, new_wave)
            else
                local tp = doCreateTeleport(ARENA.TELEPORT.tpId, ARENA.TELEPORT.tpToPos, ARENA.TELEPORT.tpPos)
                doItemSetAttribute(tp, "aid", ARENA.TELEPORT.aid)
            end
        end
    end
    return true
end
function onLogout(cid)
  if isPlayer(cid) then
        if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then
            doPlayerSendCancel(cid, "You can't logout now.") 
            return false
        end
    end
    return true
end
function onPrepareDeath(cid)
    if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1  then
        setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1)
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        setGlobalStorageValue(1000, -1)
        clearArena()
    end
    return true
end

Melda, faltou no clear arena as coordenadas que eu substitui, vou ver agora

FPCMCUA.jpg

Postado
  • Autor

Você cometeu o mesmo erro meu e foi citado a poste anteriores rsrsr.. Nesse aqui:

 

 

 

toPos = {x = 614, y = 2082, z = 6}, --Coordenadas da posição superior esquerda da arena.
fromPos = {x = 630, y = 2092, z = 6},

 

Vou deixar a mesma explicação que o amigo disse para mim: "Você configurou errado. toPos nunca terá valores menores que fromPos".

 

Para consertar, inverte deixando assim:

 

 

 

toPos = {= 630, y = 2092, z = 6}, --Coordenadas da posição superior esquerda da arena.
fromPos = {= 614, y = 2082, z = 6},

 

 

^.^

Eu te Ajudei? Então solta aquele REP+ !!

Meus Tutoriais [Tutorial] Bug "Temple position is wrong" (MySql)

Outros:    [Meu Show OFF | Mapa próprio 8.6] 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo