Ir para conteúdo
  • Cadastre-se

(Resolvido)[Duvida] Como funciona o exp?


Ir para solução Resolvido por Elwyn,

Posts Recomendados

Minha duvida é a seguinte:

Para passar de level você precisa de uma quantidade de experiência. Cada nível que você upa, precisa de ainda mais experiência..

Eu queria saber como funciona isso? Utiliza alguma formula matemática, ou coisa parecida? 

Caso for uma formula, tem como mudar?

Quer aprender a mapear? 

Discord: Natan#6301

Link para o post
Compartilhar em outros sites

Tem como mudar.

        static uint64_t getExpForLevel(int32_t lv) {
            lv--;
            return ((50ULL * lv * lv * lv) - (150ULL * lv * lv) + (400ULL * lv)) / 3ULL;
        }

Essa é a fórmula para calcular experiencia pro próximo nível.

 

[(50 * level³) - (150 * level²) + (400 * level)] / 3

 

Se quiser mudar, isso fica em player.h

Editado por elwyn (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Então se eu quisesse usar a seguinte formula:

L(n)= [Phin-(-phi)n]/sqrt(5)

-Onde n= ao nível.

-Onde Phi= 1,6180339 e phi= 0,6180339

-sqrt (5) é raiz quadrada de 5.

 

Como ficaria?

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

Quer aprender a mapear? 

Discord: Natan#6301

Link para o post
Compartilhar em outros sites
  • Solução

Então se eu quisesse usar a seguinte formula:

L(n)= [Phin-(-phi)n]/sqrt(5)

-Onde n= ao nível.

-Onde Phi= 1,6180339 e phi= 0,6180339

-sqrt (5) é raiz quadrada de 5.

 

Como ficaria?

 

São números quebrados, toda a iteração com exp do player foi feita pensando em números inteiros então não recomendo usar essa fórmula, mas ficaria assim:

        static uint64_t getExpForLevel(int32_t lv) {
            lv--;
            return static_cast<uint64_t>(std::ceil(std::pow(1.6180339, lv) - std::pow(-0.6180339, lv))/std::sqrt(5));
        }

Esse cálculo tem bastante arredondamento. Dois na potencia, outro no resultado da subtração, outro no resultado da raiz de 5, outro no resultado da divisão e outro para dar cast de double para uint64_t

Editado por elwyn (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Então esta formula pode dar errado?

Depois eu vou testar. Obrigado por ajudar.

Quer aprender a mapear? 

Discord: Natan#6301

Link para o post
Compartilhar em outros sites

Então esta formula pode dar errado?

Depois eu vou testar. Obrigado por ajudar.

 

Não que possa dar errado, ela só não vai ser exata. E ela não é uma boa fórmula de exp

http://www.wolframalpha.com/input/?i=%281.6180339^x+-+%28-0.6180339^x%29%29%2F%285^%281%2F2%29%29

 

Veja o gráfico no wolframalpha. Veja como a exp do level 5 ao 10 aumenta rápidamente. A partir do 10, o crescimento vai ficando cada vez maior.

 

Aqui o gráfico da taxa de crescimento:

http://www.wolframalpha.com/input/?i=derivate+%281.6180339^x+-+%28-0.6180339^x%29%29%2F%285^%281%2F2%29%29

 

 

Com essa fórmula, o nível máximo que alguém pode ter é algo próximo de 100. Um pouco antes de 100 a exp é tão grande que não tem como você guardar em uma variável de 64bits.

 

Detalhe, uma variável de 64bits pode guardar até no máximo esse número: 1,844674407×10¹⁹

 

Experiencia necessária pro nível 100:

3.54223 × 10^20

Editado por elwyn (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Hmm, entendi. Então eu vou modificar a formula para que possa ser mais acessível. 

Obrigado ^^

Quer aprender a mapear? 

Discord: Natan#6301

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.

  • Conteúdo Similar

    • Por chateadoagr
      Bem-vindo ao Genesis Online Tibia (GOT), um mundo onde a civilização foi devastada por um apocalipse zumbi. Inspirado em referências como The Walking Dead e Resident Evil, o GOT desafia você a sobreviver em meio ao caos, enfrentando hordas de mortos-vivos, explorando ruínas perigosas e formando alianças estratégicas. Embarque nesta jornada épica de sobrevivência e descoberta, onde cada escolha molda seu destino em um cenário hostil repleto de desafios e perigos iminentes.
       
       
      Adentre o universo de Genesis Online Tibia (GOT), um jogo repleto de sistemas inovadores e emocionantes. Equipe-se com um vasto arsenal de armas para enfrentar as ameaças do apocalipse zumbi, enquanto o sistema autoloot simplifica suas conquistas. Desenvolva seu personagem através de um sistema de upgrade único, aprimorando habilidades e atributos para enfrentar desafios cada vez mais formidáveis.
       
      Explore um mundo imersivo onde o som desempenha um papel crucial, criando uma atmosfera envolvente e realista. Vasculhe cada canto em busca de recursos vitais, desvendando segredos e tesouros ocultos. Siga uma cativante história através de missões que expandem o enredo, revelando os mistérios por trás do apocalipse e oferecendo recompensas valiosas.
       
      Em Genesis Online Tibia, a jornada pela sobrevivência é repleta de ação, estratégia e emoção, convidando você a se aventurar em um mundo onde cada decisão molda seu destino e determina sua capacidade de enfrentar os desafios que aguardam.

      Em breve imagens do servidor!
       
       
    • Por Lion
      O sistema de medalhas do TibiaKing foi reativado.
      As medalhas serão entregues automaticamente, muitos de vocês podem já ter recebido.
      Aproximadamente 12.000 contas do Tk já foram notificadas.
       
      Medalhas Raras
      2 novas medalhas raros criados (Guardião da Aurora, Poder Áureo) Quanto mais participar do fórum mais chances tem de desbloquear os medalhas raras.  
      https://tibiaking.com/medalhas/
       
      Show Off:
      tkmedalhas.mp4
       
      Créditos:
      BrooMop (BW) Medalhões-base doados ao Tibia King.
      Tibia (Cipsoft) Molduras-base e itens copiados do Tibia Wiki.
      @Cat Criação de novos medalhões e animações.
       
       
    • Por rafaelvozinho
      Vagas abertas [-]
      Foxers, é com grande felicidade que anunciamos o processo seletivo para recrutamento de um novo Developer e Mapper para a nossa equipe. 
       
      Nós da staff chegamos nessa decisão por sermos apaixonados pelo bom e velho fox world que foi lançado anos atrás no 8.4, por sermos apaixonados sempre tentamos abrir um servidor de fox world porém sempre faltou aquela pitada de inovação, foi então que tivemos a brilhante ideia. Converter o fox do 8.4 para o 12.31 e inserir novidades como: novas caves, itens, monstros e não menos importante quests com sistemas inovadores!

       
      No momento estamos a procura das vagas citadas acima para pessoas que estão afim de crescer com o servidor e evoluir com o mesmo, nós procuramos pessoas dedicadas, que tenha disponibilidade de horario, disponibilidade de contato e dispostas a se dedicarem com o trabalho em equipe. 
      A inscrição poderá ser enviada como mensagem privada ao meu perfil aqui no tibiaking @Faysal, as pessoas que se inscreveram irão passar por uma analise e serão selecionadas para uma entrevista. Aos interessados favor ler as características das vagas disponiveis.
       
      Características [-]
       
      Developer
       - Função: Programador Lua/C++
       - Descrição: Desenvolvimento em Lua, C++, as unicas exigências que pedimos é a entrega dentro do prazo.
       - Idade: Temos preferência por pessoas com mais de 18 anos
       - Experiência: Conhecimento em programação em Lua e C++, ter conhecimento avançado será um grande diferencial.
       - Confiança: Procuramos desenvolvedores responsáveis a fim de prestar um bom serviço na área de desenvolvimento de nossos sistemas, conhecimento, confiança e segurança é primordial!
       
       
      Mapper
       
       - Função: Mapper
       - Descrição: Elaboração de novas áreas e estilização das já existentes
       - Idade: Temos preferência por pessoas com mais de 16 anos
       - Experiência: Conhecimento mediano em mapping, ter conhecimento avançado será um grande diferencial.
       - Confiança: Procuramos mappers responsáveis a fim de prestar um bom serviço na área. Conhecimento e criatividade são essenciais!
       
      Inscrição [-]
       
      Aguardamos as inscrições via Private Messenger aqui no fórum com as seguintes Informações:
       
       
       - Nome Completo: 
       - Idade:
       - Vaga Escolhida:
       - Whatsapp para contato:
       - Experiência:
       - Conhecimentos Adicionais:

      Obs: No campo Experiência utilizar as seguntes categorias: Trainee (novato), Junior (mediano), Pleno (avançado), Sênior (Profissional)
       
      Aguardamos sua inscrição.

      Atenciosamente,
      Rafael  - ADM Rafael - 51 999465729 whatsapp 
    • Por Kimoszin
      Ola pessoal, venho trazer aqui pra vocês outro script simples,

      - Para que server?
      Simples, quando a pessoal quer sair, ela pisa encima do tile e perde o pz, aconselho botar no temple, ou em lugares no-pvp
      Ela serve tambem para aqueles players que querem sair mais nao gostam de esperar o pz, ai apertam o exit...

      - Como posso 'instalar' um script desse em meu OTserver?
      Adicionar o actionID 7003 no tile que você quiser pelo map editor e ir em data\movements\scripts e depois movements.xml

      tilepz.lua

      function onStepIn(cid, item, frompos, topos) pos = getCreaturePosition(cid) if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doRemoveCondition(cid, CONDITION_INFIGHT) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Seu battle foi removido.") doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você nao esta em battle.") doSendMagicEffect(pos, CONST_ME_POFF) end end movements.xml <movevent type="StepIn" actionid="7003" event="script" value="tilepz.lua"/>

      Abraços.
    • Por Mateus Robeerto
      este é um tutorial de como usar um cliente com spr/dat estendido e protegido pelo CAB.
       
      fiz um video mostrando como usar um client com spr/dat estendido sem o error, basta seguir passo a passo o que eu fiz, em resumo voce precisara copiar seu dat estendido pra outro local para poder editar ele, salvando ele como não estendido e dps renomeando para poder usar junto com o original e compilando tudo com o programa cab...
       
      A DLL ajuda o cliente a ler as 2 dat (compilada pelo programa cab) , sem ela o cliente não abre, caso o teu cliente tenha o bug do ctrl+n ou alguns outros bugs que eu vi em alguns casos, a DLL tem a função de arrumar a maioria deles.
       
       
       
       
       
      LINK DOWNLOAD
       
       
      https://www.mediafire.com/file/kxqkywxeijk8hn2/programa_para_oldclient.rar/file
      ou
      creator cab
      https://drive.google.com/file/d/19b-EqpS-RmOQ_1o7ubb2a7j6RKcijjUa/view?usp=sharing
      scan https://www.virustotal.com/gui/file/4398e414d680ac26addbedc1f20bd59a82b546a1633abbb02b13d2f7150e950e/detection
      DLL
      https://drive.google.com/file/d/1T8XgwgHJAO9sgw5WR809GjMfej2NvP3n/view?usp=sharing
      SCAN https://www.virustotal.com/gui/file/539f0f7187c668457a14d87603e075ab5d1b6f6ac6a17aabf2b591fc3c177741/detection
       stup-pe hoohar o client
      https://drive.google.com/file/d/1cwR1wj3M8IsvxmIt5pQhZ4-DlFSMQVal/view?usp=sharing
      scan https://www.virustotal.com/gui/file/d06889d61474ee9480947956e52916fb997a3717e9f59d3ed830b5c780e81340/detection
       
       
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo