Postado Agosto 7, 2015 9 anos Autor Lordfire, é isso mesmo! O Distance ta avançando 2 tries por acerto, mas porque isso?? Tentei apenas com skills mais baixas, até o 20 :/ Quer dizer, não faz muito sentido o Knight upar Distance mais rápido do que outras skills, mesmo nos níveis mais baixos... Se eu configurar pra 1 try por acerto e colocar o Distance para ser algo em torno de 15% mais lento que o anterior, vai ficar equilibrado?? Edit: me desculpe por reportar lá no GitHub, é que estou tentando resolver isso sozinho já tem uns dias e fiquei sem paciência .-. Editado Agosto 7, 2015 9 anos por iskabin (veja o histórico de edições)
Postado Agosto 7, 2015 9 anos Não, exponenciação não é tão simples de resolver. Acredito que tu pode pegar a vocação do player e verificar se ele é paladin e, se não for, aumentar só 1 try. Se você só tiver as 4 vocações padrão (sorcerer, druid, paladin, knight) você pode trocar essa linha: https://github.com/otland/forgottenserver/blob/master/src/weapons.cpp#L857 Por isso: if (player->getVocationId() & 3 == 3) { skillpoint = 2; } else { skillpoint = 1; } Isso vai funcionar caso você tenha vocações de 4 em 4 (ex: uma vocação com id 1 tem promotion no id 5, segunda promotion no id 9, e por aí vai) Editado Agosto 7, 2015 9 anos por Lordfire (veja o histórico de edições)
Postado Agosto 7, 2015 9 anos Autor Entendo, é uma ótima solução, muito obrigado Lordfire! Porém meu esquema de vocações é um pouco mais complicado, mas entendi como funciona, posso colocar quantas condições eu quiser ali no if, certo? No meu caso as vocações não avançam de 4 em 4, iniciam com 5, depois desses 5 você escolhe uma entre 3 promotions, cada vocação inicial pode avançar para uma dentre 3 superiores. Um total de 15 vocações únicas (+none). Eu colocaria no caso um if para o paladin, e todas as 3 vocations que se originaram dele, funciona? Uma curiosidade agora, porque o Distance se comporta diferente dos melees?
Postado Agosto 7, 2015 9 anos Você colocaria algo assim: auto vocation = player->getVocationId(); if (vocation == 3 || vocation == 8 || ...) { skillpoint = 2; } else { skillpoint = 1; } Só edite o if, claro, pra colocar cada uma das vocações que aumentam mais (se quiser que aumente mais). Eu não sei porque isso acontece, isso deriva do global onde é assim. Inclusive é por isso que já tem paladin skill 130+ e não tem knight nessa skill.
Postado Agosto 11, 2015 9 anos Autor Estou tendo um outro problema, também relacionado ao avanço das skills, por isso vou aproveitar o post... Meus rates no vocations.xml não estão funcionando... Segue meu knight por exemplo: <vocation id="4" clientid="1" name="Knight" description="a knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="3" gainhpamount="5" gainmanaticks="6" gainmanaamount="5" manamultiplier="3.0" attackspeed="2000" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="4"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" /> <skill id="0" multiplier="1.1" /> <skill id="1" multiplier="2.1" /> <skill id="2" multiplier="2.1" /> <skill id="3" multiplier="2.1" /> <skill id="4" multiplier="3.4" /> <skill id="5" multiplier="1.1" /> <skill id="6" multiplier="1.1" /> </vocation> Troquei os valores para teste, e todas as skills estão avançando na mesma velocidade por try (1 try corresponde à mesma porcentagem de skill em todos eles, independente do level - aumentei o rate geral no config.lua para ter certeza), acabou que voltei no mesmo problema de antes: não tenho domínio sobre os rates das skills, posso escolher a que velocidade o conjunto avança, mas não a que velocidade elas avançam individualmente. No exemplo do Knight (spoiler), a intenção era que o Fist avançasse mais rápido do que sword, club e axe, e muito mais rápido do que distance, mas por algum motivo isso não acontece no game :/ Alguém pode me dar uma luz? Obrigado!
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.