Ir para conteúdo
  • 0

craigmabbit

Pergunta

2 respostass a esta questão

Posts Recomendados

Fica em player.cpp...

 

 

 

void Player::addSkillAdvance(skills_t skill, uint64_t count, bool useMultiplier/* = true*/)

{

if(!count)

return;

 

//player has reached max skill

uint64_t currReqTries = vocation->getReqSkillTries(skill, skills[skill][sKILL_LEVEL]),

nextReqTries = vocation->getReqSkillTries(skill, skills[skill][sKILL_LEVEL] + 1);

if(currReqTries > nextReqTries)

return;

 

if(useMultiplier)

count = uint64_t((double)count * rates[skill] * g_config.getDouble(ConfigManager::RATE_SKILL));

 

std::stringstream s;

while(skills[skill][sKILL_TRIES] + count >= nextReqTries)

{

count -= nextReqTries - skills[skill][sKILL_TRIES];

skills[skill][sKILL_TRIES] = skills[skill][sKILL_PERCENT] = 0;

skills[skill][sKILL_LEVEL]++;

 

s.str("");

s << "You advanced in " << getSkillName(skill);

if(g_config.getBool(ConfigManager::ADVANCING_SKILL_LEVEL))

s << " [" << skills[skill][sKILL_LEVEL] << "]";

 

s << ".";

sendTextMessage(MSG_EVENT_ADVANCE, s.str().c_str());

 

CreatureEventList advanceEvents = getCreatureEvents(CREATURE_EVENT_ADVANCE);

for(CreatureEventList::iterator it = advanceEvents.begin(); it != advanceEvents.end(); ++it)

(*it)->executeAdvance(this, skill, (skills[skill][sKILL_LEVEL] - 1), skills[skill][sKILL_LEVEL]);

 

currReqTries = nextReqTries;

nextReqTries = vocation->getReqSkillTries(skill, skills[skill][sKILL_LEVEL] + 1);

if(currReqTries > nextReqTries)

{

count = 0;

break;

}

}

 

if(count)

skills[skill][sKILL_TRIES] += count;

 

//update percent

uint16_t newPercent = Player::getPercentLevel(skills[skill][sKILL_TRIES], nextReqTries);

if(skills[skill][sKILL_PERCENT] != newPercent)

{

skills[skill][sKILL_PERCENT] = newPercent;

sendSkills();

}

else if(!s.str().empty())

sendSkills();

}

 

 

 

Link para o comentário
https://xtibia.com/forum/topic/215070-skills/#findComment-1525249
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

×
×
  • Criar Novo...