Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] Sistema de Arena.


Ir para solução Resolvido por zipter98,

Posts Recomendados

Blz, irei testar. Caso pegar nem uso a "Zona anti-logout do Rme". Você modificou o killboss né?.

 

Sobre o "Rank", foi o amigo que pediu ai encima. Para mim, não vejo serventia.

 

Dei uma Editada no poste lá encima. Sobre o Bug do Player morrer, caso você puder da uma olhada.

 

Vlw + uma vez brother :D.

Editado por olokomeu (veja o histórico de edições)

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] 

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

Top Posters In This Topic

Top Posters In This Topic

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 = {    

Blz, irei testar. Caso pegar nem uso a "Zona anti-logout do Rme". Você modificou o killboss né?.

 

Sobre o "Rank", foi o amigo que pediu ai encima. Para mim, não vejo serventia.

 

Dei uma Editada no poste lá encima. Sobre o Bug do Player morrer, caso você puder da uma olhada.

 

Vlw + uma vez brother :D.

Exato, modifiquei apenas este arquivo. Já concertei também o erro de morrer na arena. 

Pelo menos na teoria eu concertei, veremos na prática.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Testei aqui. So que deu um "Problema", no qual qualquer área que eu esteja não posso deslogar (tipow, fora da arena.. outra cidade..). 

 

Sobre o do player morrer, vc editou no killboss tb?

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] 

Link para o post
Compartilhar em outros sites

Sim. Sobre você não estar podendo deslogar em qualquer área, provavelmente seu personagem está com um valor maior que -1 na storage da arena. Executa o seguinte comando na sua database:

UPDATE player_storage SET value = -1 WHERE key = 90182

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Executei na DataBase, porém, deu esse erro nela:

 

 

consulta SQL:

UPDATE player_storage SET value = -1 WHERE KEY =90182

Mensagens do MySQL : b_help.png

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 90182' at line 1 

 

 

E agora, quando entro na table player_storage no Myphp.. ele sempre me volta para repor a senha >.<... e não entra mais nessa table. Nas outras entra.

Editado por olokomeu (veja o histórico de edições)

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] 

Link para o post
Compartilhar em outros sites

Hm, vamos alterar o valor da storage no jogo mesmo.

Muda o conteúdo do killboss.lua para este:

function onKill(cid, target)
    if isPlayer(target) and getPlayerStorageValue(target, ARENA.STORAGES.wave_sto) > -1 then
        setPlayerStorageValue(target, ARENA.STORAGES.wave_sto, -1)
        setGlobalStorageValue(1000, -1)
    elseif isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then
        local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1
        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
    return true
end
function onLogout(cid)
    if getTileInfo(getThingPos(cid)).protection and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then
        return setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1)
    end
    if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then
        doPlayerSendCancel(cid, "You can't logout now.") 
        return false
    end
    return true
end

Tente deslogar em uma protection zone.

Agora sobre o ranking que havia sido pedido:

No código do NPC, abaixo de:

setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, 1)

adicione:

setPlayerStorageValue(cid, 90183, 1)

No creaturescript, abaixo de:

local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1

adicione:

if new_wave > getPlayerStorageValue(cid, 90183) then
    setPlayerStorageValue(cid, 90183, new_wave)
end

Agora o código da talkaction:

function onSay(cid, words)
    local query = db.getResult("SELECT player_id, value FROM player_storage WHERE key = 90183 AND value > -1 ORDER BY value DESC LIMIT 10")
    local str = "Rank da Arena:"
    local a = 0
    if query:getID() == -1 then
        return doPlayerPopupFYI(cid, str.."\nNodoby went to the arena until now.")
    end
    repeat
        a = a + 1
        local id = query:getDataInt("player_id")
        local waves = query:getDataInt("value")
        str = str.."\n"..a..". "..getPlayerNameByGUID(id).." / "..waves.." waves"
    until not query:next()
    query:free()
    doPlayerPopupFYI(cid, str)
    return true
end

PS: A wave record do jogador só vai aparecer no ranking após ele deslogar (para a storage ser salva na database).

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Eu adicionei a nova Killboss. Ai o que aconteceu foi:

 

- Os personagens que usei como teste na antiga killboss, continuou sem pode deslogar em qualquer canto. Ai fui com eles para uma Protect Zone, ai ele conseguiram deslogar. Reentrei neles e tentei deslogar em qualquer outro lugar e pegou de boa. Não entendi o pq, porém, funcionou ^^.

 

- O Erro do Deslogar dentro da arena foi concertado também. Assim que entra na arena não pode deslogar.

 

- Agora, o Erro no qual o player morre na arena continua. A storage não volta, continua "1", como se houvesse gente lá.

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] 

Link para o post
Compartilhar em outros sites

Foi mal a demora, estava viajando. Editei meu comentário na primeira página com o sistema completo. Agora eu definitivamente o testei e removi um outro bug. Se possível, substitua seu antigo killboss.lua pelo novo (também adicionei uma nova tag, e é necessário registrar mais um evento em login.lua). 

Desculpa pelos erros e tal.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Que isso brother. Desculpa digo eu, por tar lhe perturbando tanto ^.^. Irei recomeçar o tutorial dnv na pagina 1. Jaja edito aqui :).

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] 

Link para o post
Compartilhar em outros sites

edit: nvm, era só umas variáveis coincidindo aqui. Problema do meu servidor rs. O sistema tá funcionando perfeitamente.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Foi esse o Bug?, porque achei esse rsrs ( assim que o players morre) aparece na Distro:

 

 

bhzyhh.png

 

Uma coisa que reparei também, foi que se um players morrer, o boss no qual ele estava enfrentando continua lá. Ai o próximo que for para arena, ja terá o boss do antigo player + o que irá nascer. Será que haveria uma possibilidade para da resetar na arena quando um player morre?. Pois se não ira sempre acumular bosses ;\.

 

Um bugzinho leve que esqueci de comentar antes >.<. é no preço. Você deixou programado para 200k. O Npc fala 2000, da impressão que é 2k. O certo não seria 200000 Golds coins?.

 

Obg pela força :D

Editado por olokomeu (veja o histórico de edições)

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] 

Link para o post
Compartilhar em outros sites

Esse bug que você citou, na verdade, eu já havia corrigido faz tempo. É só você trocar sua lib pela atualizada (adicionei uma nova função e removi outra que não era funcional).

Sobre o preço, vou arrumar. Na verdade, isso que eu fiz foi intencional: o "sistema" de dinheiro/cash/gold do meu servidor é diferente dos servidores convencionais de Tibia. Aí, enquanto eu testava, adaptei o preço do NPC para ser coerente com meu server.

EDIT: Pronto, NPC "corrigido".

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Eita rapaz foi mal, esqueci de mudar a lib. Refiz tudo na pagina 1, para eu não cometar engano dnv >.<.

 

- O Npc foi consertado  :).

 

- O Bug que mostrei na Imagem, ainda deu na Distro assim que o player morre, só que o Bug deu uma Diminuída:

 

 

opzsqs.png

 

- Não sei se você mexeu, mas ainda acumula o Boss, apos a morte do Player. A arena não deu um tipow de "Reset"

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] 

Link para o post
Compartilhar em outros sites

Esse erro aí é problema do seu servidor, infelizmente. Como pode-se notar, não há referência alguma a queries no sistema de arena.

E provavelmente os bosses não estão desaparecendo devido, indiretamente, ao erro acima. 

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

@zipter98

 

- O Erro da Storage quando o char morria dentro da Arena e depois ninguém conseguia mais entrar, foi Consertado :).

 

Verdade. Aquele erro foi na minha DataBase. Voltei para minha Distro antiga e não deu o Erro quando o char morre dentro da Arena. Porém, os Bosses ainda continuam lá. :\

Editado por olokomeu (veja o histórico de edições)

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] 

Link para o post
Compartilhar em outros sites

Ziper se nao for incomodar demais a que tu desenvolveu o Script, nao tem como sumonar mais que 1 monster por Wave? e tem como fazer um RANK para mim? mostrando quantas waves o cara passou? pretendo colocar mais waves e com niveis mais dificeis... teria como por tambem uma recompensa por WAVE? tipo Wave 1 500k, wave 2 1kk, wave 3 1kk + item?

 

Muito grato e levo um REP+

Editado por glacialot (veja o histórico de edições)

FPCMCUA.jpg

Link para o post
Compartilhar em outros sites

@zipter98

 

- O Erro da Storage quando o char morria dentro da Arena e depois ninguém conseguia mais entrar, foi Consertado :).

 

Verdade. Aquele erro foi na minha DataBase. Voltei para minha Distro antiga e não deu o Erro quando o char morre dentro da Arena. Porém, os Bosses ainda continuam lá. :\

Provavelmente você configurou errado as posições fromPos e toPos na lib.

 

Ziper se nao for incomodar demais a que tu desenvolveu o Script, nao tem como sumonar mais que 1 monster por Wave? e tem como fazer um RANK para mim? mostrando quantas waves o cara passou? pretendo colocar mais waves e com niveis mais dificeis... teria como por tambem uma recompensa por WAVE? tipo Wave 1 500k, wave 2 1kk, wave 3 1kk + item?

 

Muito grato e levo um REP+

Já desenvolvi o rank. Está nesta página mesmo.

Sobre a premiação, farei esta edição para você (junto com a possibilidade de invocar quantos monstros quiser na wave).

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

@zipter98

 

Opa!. Brother, acredito que não seja configuração errada. Vê, tirei foto da arena (tá tosca pq é so para teste rsrsrs) com as instruções conforme sua lib.

 

 

30247b7.png

 

Em Vermelho. São as Posições superior e inferior.

Em Verde as posições que o monstro tão nascendo.

Em Preto é quando fala com npc. o Player nasce nessa posição.

Em Rosa é a posição que o teleport nasce apos o ultimo boss.

E em Laranja é quando entrar no teleport do boss, é levado para essa posição.

Editado por olokomeu (veja o histórico de edições)

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] 

Link para o post
Compartilhar em outros sites

Estranho, testei a função aqui e funcionou perfeitamente. Pode postar o que você configurou em toPos e fromPos? Qualquer coisa, eu faço uma função teste para ver o que está acontecendo, exatamente.

não respondo pms solicitando suporte em programação/scripting

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.




×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo