NO

Blackonix Random Exp 0.1

Por Nostradamus, 13 de jun. de 2007 em Linguagens de Programação

script
14
3.4k
NostradamusN
13 de junho de 2007 às 23:13

Esse é outro script rejeitado pela BlackOnix.

 

Foi desenvolvido por Lews e idealizado por Nostradamus e feito na época da Ixidor ainda.

Como fizemos um melhor, iremos dar release nesse antigo.

 

Foi testado no Forgotten e SVN, mas deve funcionar em outras versões também.

 

Detalhes:

 

Data: 11/03/2007

Autor: Lews

OBS: Rejeitado da BlackOnix

 

Vamos ao código:

 

Creature.cpp

 

Em:

 

int64_t Creature::getGainedExperience(Creature* attacker) const

 

Troque:

 

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

 

Por:

 

#ifdef __IXIDOR_RAND_EXP__
Player* player = attacker->getPlayer();
if(player){
   int32_t randomExp = random_range(0, 100);
   int32_t x = (uint32_t)g_config.getNumber(ConfigManager::DOUBLE_EXP_CHANCE);
   int32_t y = (uint32_t)g_config.getNumber(ConfigManager::TRIPLE_EXP_CHANCE);
   int32_t z = (uint32_t)g_config.getNumber(ConfigManager::HALF_EXP_CHANCE);
   if(randomExp <= x){
	  g_game.addAnimatedText(attacker->getPosition(), 906, "DoubleExp"); //azul
	  return (int64_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE) * 2);
   }
   else if(randomExp <= x+y){
	  g_game.addAnimatedText(attacker->getPosition(), 966, "TripleExp"); // 966, laranja
	  return (int64_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE) * 3);
   }
   else if(randomExp <= x+y+z){
	  g_game.addAnimatedText(attacker->getPosition(), 906, "Half Exp!"); //preto
	  return (int64_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE) / 2);
   }
   else{
	  //g_game.addAnimatedText(attacker->getPosition(), 906, "NormalExp!");
	  return (int64_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE));
   }
}
else
   return (int64_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE));
#else
return (int64_t)std::floor(getDamageRatio(attacker) * lostExperience * g_config.getNumber(ConfigManager::RATE_EXPERIENCE));
#endif

 

 

 

Configmanager.cpp

 

Adicione:

 

#ifdef __IXIDOR_RAND_EXP__
m_confInteger[DOUBLE_EXP_CHANCE] = getGlobalNumber(L, "doubleExpChance", 5);
m_confInteger[TRIPLE_EXP_CHANCE] = getGlobalNumber(L, "tripleExpChance", 2);
m_confInteger[HALF_EXP_CHANCE] = getGlobalNumber(L, "halfExpChance", 2);
#endif

 

Configmanager.h

 

	#ifdef __IXIDOR_RAND_EXP__
DOUBLE_EXP_CHANCE,
TRIPLE_EXP_CHANCE,
HALF_EXP_CHANCE,
#endif

 

No linker adicione:

 

-D__IXIDOR_RAND_EXP__

 

E por fim, no config.lua:

 

-- random exp chance (in %)
doubleExpChance = 5
tripleExpChance = 2
halfExpChance = 2

 

Esse código irá randomizar a chance de se pegar o dobro, triplo ou mesmo metade da experiência.

 

 

Editado Junho 13 por Nostradamus

ClicC
13 de junho de 2007 às 23:17

Bom!!!

nao sei pq a ekipe reijeitou esse script mtu bom!!!

Rejeita outros scripts ae equip!! o do barquinho e outro!! Zuera!!

Parabens vo coloka aki pra ve se funfa!!!

Grato, Clic.

NostradamusN
13 de junho de 2007 às 23:25

@Clic

Rejeitamos porque fizemos um melhor com opções de variação de porcentagem e maiores variações em experiência ganha. Além disso, é possível desativar o sistema facilmente.

JvchequerJ
14 de junho de 2007 às 05:52

:o!

 

Muito legal cara, bem legal mesmo.

 

É muito interessante colocar isso em OTS, até para variar 1 pouco do tibia rl.

 

Show! :)

Felipe MoraesF
14 de junho de 2007 às 10:53

mtu bom esse script kra...tpw,eu nao axei mtu util,mas é bem interessante isso...

parabens pelo topico...bem legal msm

MustorzeM
15 de junho de 2007 às 18:52

Rox heheh muito bom para ots em rpg , e d aum radown ne XP!

ExordiumE
17 de junho de 2007 às 16:50

Voce é genial Nostradamus =D

rejeite mais uns scripts pra noix vei :D

 

muito bom esse

flw.

LordfireL
24 de junho de 2007 às 16:24

=/ o meu Zorzin não tem nem metade das coisas queé pra trocar

Se puder me dar uma ajuda por msn agradeço o/

NostradamusN
24 de junho de 2007 às 16:41

Não deve funcionar no Zorzin. Teste no Forgotten, já que Zorzin usa SVN velha.

2 meses depois...
gugalhardoG
18 de agosto de 2007 às 03:09

Legal simples e criativo, e é bom um dia em que um player ta com bastante sorte e pega bastante XP.

18 de agosto de 2007 às 09:46

Veio Se É Fera D +

Parabens Ta Sempre Fasendo Otimos Trabalhos

Tomara que a Blackonix Va Pra Frente

Abraço

8 meses depois...
Fusion32F
12 de abril de 2008 às 00:36

o codigo eh mtu bom mesmo soh que podia por um

if(g_config.getString(ConfigManager::RANDOM_EXP) == "yes"){

 

heuiahuiaHeiuaehaUIeuia flw

12 de abril de 2008 às 00:58

putz. parem de reviver topicos antigos......

1 mês depois...
kruxduduK
01 de maio de 2008 às 19:43

Realmente é bem interessante...

Eu tenho um parecido com esse aqui...

Só que eu me adaptei melhor ao meu!

 

Mas o seu fico Rox!

Parabéns.