Ir para conteúdo

[rev 3086~] Random Exp


Posts Recomendados

ola pessoal eu vi o codigo q o nostra pois ai no forum e eu resolvi faze um q a experiencia sempre da diferente

 

vamos ao codigo

 

em configmanager.cpp depois de

 

m_confInteger[STATUSQUERY_TIMEOUT] = getGlobalNumber(L, "statustimeout", 5 * 60 * 1000);

 

adicione

 

#ifdef __RANDOM_EXP__
m_confString[RANDOM_EXP] = getGlobalString(L, "random_exp", "no");
#endif

 

e em configmanager.h depois de

 

OTSERV_DB_HOST,

 

adicione

 

#ifdef __RANDOM_EXP__
	RANDOM_EXP,
#endif

 

agora em criature.cpp na funçao

 

Creature::getGainedExperience

 

troque

 

return (int32_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE));

 

por

 

return (int32_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE)) * (randomExp/100));

 

e acima disso adicione

 

#ifdef __RANDOM_EXP__
	float randomExp = 1 * 100;
	if(g_config.getString(ConfigManager::RANDOM_EXP) == "yes")
		randomExp = player ? random_range(50, 300) : 1 * 100;
#else
	float randomExp = 1 * 100;
#endif

 

Project >> Project Options >> Parameters >> C++ Compiler >> -D__RANDOM_EXP__

 

REBUILD ALL

 

agora adicionem

 

-- activate random exp? (yes/no)
random_exp = "no"

 

no config.lua

 

O codigo é assim ele se vc ativa ele ele vai randomiza TOTAL e a cada veis q vc mata um monstro ele vai da diferente (entre x/2 e x*3) por exemplo uma rotworm pode da 20~120 podendo assim da 87, 73, 25, 36, etc...

 

é isso pessoal qualquér duvidas/bugs podem posta ai flw

Editado por Fusion32
Link para o comentário
Compartilhar em outros sites

  • 1 month later...
Bem legal cara, mas acho que é desnecessário declarar como float.

 

eu acho que é necessario sim declarar como float porque vamos supor que de um numero 132 ali no random ai ele dividido por 100 vai da 1,32 e se nao foce float daria um numero arredondado(acho eu né ehaUIeaHHaIEUH) nesse caso 1 ai nao ia se tao randomico o exp. eu ainda fiz um melhor aqui usando doubles e divido por 1000(oO) ai sim que o monstro nunca vai da a mesma exp aheuiaHEa

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
×
×
  • Criar Novo...