[svn] Anel De Experiencia.

Abacate123

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 19/05/06Posts: 125

Este codigo é baseado no codigo: Amuleto De Experiencia!

 

 

 

Em player.cpp, ache essa função

void Player::onGainExperience(int32_t gainExperience)

 

Se sua versão for forgotten, ache essa função

void Player::onGainExperience(uint64_t gainExperience)

 

Abaixo de:

addExperience(gainExperience);

 

Adicione:

	Item* amulet = getInventoryItem(SLOT_RING);
  if(amulet && amulet->getID() == g_config.getNumber(ConfigManager::ID_RING_EXP)){
   gainExperience *= 5;
}

 

Em configmanager.cpp adicione isso lá:

 

	 m_confInteger[ID_RING_EXP] = getGlobalNumber(L, "id_ring_exp", 2166);

 

2166 é o id do power ring

 

Em configmanager.h na lista dos enum integer_config_t { você adiciona

 

ID_RING_EXP,

 

E em config.lua

 

Adicione:

--- ID do anel para ganhar EXP:
id_ring_exp = 2166

 

 

infelizmente eu não testei(meu ot num ta compilando, mas não é por causa desse codigo!)

por favor testem ai...

 

 

flws

Atenciosamente Kiko5

--------------------------------------







kiko5fanmf0.gif

By: Anokinha

zimbituba

Crystal Server Founder
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/08Posts: 704Char no Tibia: Atera Knight

Boa Kiko...

Gostei :D

vlw ^^

 

aki funfo

If you would like to thank me for my Crystal Server and others, feel free to donate.
Paypal: shynzomapper@hotmail.com

fallenspiritrpg

www.fallenspirit.com.br
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/10/10Posts: 22

Olá Xtibianos,

 

Antes de mais nada, os dados do meu server.

VERSÃO: EVOLUTIONS 0.7.8 XML

PROTOCOLO: 7.92

 

 

Há alguns dias precisei inserir a função: Setplayerexprate em minha source. Não encontrei nenhum tutorial que fosse compatível com minha versão. Daí criei o seguinte código:

 

/*
Modificado em 26/09/2010 por Wesley
Se o player estiver com o anel com ID 13859
a sua experiencia é multiplicada por dois
*/
   	int32_t multiplica = 1;
   	Player* attackPlayer = attacker->getPlayer();

   	Item* item = NULL;
if(attackPlayer->inventory[sLOT_RING]){
	item = attackPlayer->inventory[sLOT_RING];
	int idDoItem = item->getID();
	if(item && item->getSlotPosition() << SLOT_RING && idDoItem == 13859){
		multiplica = 2;
	}
}


/***** FIM *****/	

 

O sistema "funcionou", duplicou a EXP quando usando o item. Porém, em alguns lugares, se usar o ring ele derruba o serv. Exemplo Frost Dragon em sqm de gelo.

Será que alguem teria uma solução para meu problema ?

 

Desde já, grato pelo tempo destinado a leitura deste pedido.

banners.png

emmawatson

ADM Lost
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/10/08Posts: 4Char no Tibia: Ryan Gracey

VLW manow, funfou

perfeitamente xD!