Postado Julho 14, 2015 9 anos Prezados, bom dia! Eu estou com um projeto de servidor com TFS 1.1 e por ser um projeto RPG qualquer problema de experiência impacta diretamente no servidor. A formula que vem por padrão nos TFS 1.x é meio bugada pois ela dá o bonus experiência para as 4 vocações e a partir da 5ª vocação ela não divide a experiência, e sim acumula. Ou seja, um monstro que dá 1000 de experiência vai dar 1000 de experiência se tiver 4 players na party ou se tiverem 100 players, INDEPENDENTE da quantidade. A solução que eu achei para resolver o problema foi limitar essa formula para até 4 players numa party. Caso tenha mais de 4 players eu adicionei outra fórmula. Sem mais delongas, segue abaixo as modificações necessárias: Em party.ccp procure por: void Party::shareExperience(uint64_t experience, Creature* source/* = nullptr*/) Troque todo o bloco por: void Party::shareExperience(uint64_t experience, Creature* source/* = nullptr*/) { if (memberList.size() <= 4) { uint32_t shareExperience1 = static_cast<uint64_t>(std::ceil(((static_cast<double>(experience) / (memberList.size() + 1)) + (static_cast<double>(experience) * extraExpRate)))); for (Player* member : memberList) { member->onGainSharedExperience(shareExperience1, source); } leader->onGainSharedExperience(shareExperience1, source); } else { uint64_t shareExperience2 = std::ceil((static_cast<double>(experience) * 1.20f) / (memberList.size() + 1)); for (Player* member : memberList) { member->onGainSharedExperience(shareExperience2, source); } leader->onGainSharedExperience(shareExperience2, source); } } Depois disso é só recompilar o seu servidor. Espero que seja útil para vocês Att, Grafit.
Postado Julho 14, 2015 9 anos Tópico aprovado e movido a área correta, obrigado por compartilhar! Você recebeu um REP pela contribuição! ➥ Regras | Seções OTServ | Seções BOT
Postado Julho 20, 2015 9 anos Cara, esse código não faz o menor sentido. O TFS leva em consideração todas as vocações da party (https://github.com/otland/forgottenserver/blame/master/src/party.cpp#L367-L389) na fórmula. O bônus não depende da quantidade de players, depende da quantidade de vocações diferentes, e você modificou pra que não seja assim. Com sua alteração, agora só vai fazer diferença se a party tiver menos de 4 players, e se tiver mais ninguém ganha bonus nenhum, o que não faz sentido. É melhor caçar em 4 pessoas do que em 5.
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.