Ir para conteúdo

Featured Replies

Postado

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

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.

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