FU

[rev 3086~] Random Exp

Por Fusion32, 14 de abr. de 2008 em Linguagens de Programação

otserv
6
2.3k
Fusion32F
14 de abril de 2008 às 19:51

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 Abril 14 por Fusion32

Matheus galloM
18 de abril de 2008 às 20:03

beeem legal.

mas eu nao usaria "/

mas Parabens!!

1 mês depois...
Wey.CtbaW
24 de maio de 2008 às 09:28

É interessante, mas isso ficaria em um servidor de RPG muito legal =O

NostradamusN
24 de maio de 2008 às 18:39

Bem legal cara, mas acho que é desnecessário declarar como float.

Fusion32F
27 de maio de 2008 às 16:16
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

5 meses depois...
zimbitubaZ
02 de outubro de 2008 às 01:04

uahauaa

Muito bom Fusion

Gostei cara

esse tem oção de se quer usar ou não ^^

se não me engano a do Nostradamus não tinha né?