Ir para conteúdo

Limite de capacidade


DelPupo

Posts Recomendados

Ae galera, to precisando de por um limite de capacidade no meu server mais não sei como eu sei que tem como, pois no radbr o Master Viciado boto e preciso muito desse limite ,pois meu ot tem muita rates começa a da debug nos skills por causa dce mt cap. esperando ajuda vlw

Link para o comentário
Compartilhar em outros sites

A única maneira viável é alterar isso aqui no arquivo player.cpp das sources de seu servidor:

 

void Player::addExperience(uint64_t exp)
{
   uint32_t prevLevel = level;
   uint64_t nextLevelExp = Player::getExpForLevel(level + 1);
   if(Player::getExpForLevel(level) > nextLevelExp)
   {
       //player has reached max level
       levelPercent = 0;
       sendStats();
       return;
   }

   experience += exp;
   while(experience >= nextLevelExp)
   {
       healthMax += vocation->getGain(GAIN_HEALTH);
       health += vocation->getGain(GAIN_HEALTH);
       manaMax += vocation->getGain(GAIN_MANA);
       mana += vocation->getGain(GAIN_MANA);
       capacity += vocation->getGainCap();

       ++level;
       nextLevelExp = Player::getExpForLevel(level + 1);
       if(Player::getExpForLevel(level) > nextLevelExp) //player has reached max level
           break;
   }

   if(prevLevel != level)
   {
       updateBaseSpeed();
       setBaseSpeed(getBaseSpeed());

       g_game.changeSpeed(this, 0);
       g_game.addCreatureHealth(this);
       if(getParty())
           getParty()->updateSharedExperience();

       char advMsg[60];
       sprintf(advMsg, "You advanced from Level %d to Level %d.", prevLevel, level);
       sendTextMessage(MSG_EVENT_ADVANCE, advMsg);

       CreatureEventList advanceEvents = getCreatureEvents(CREATURE_EVENT_ADVANCE);
       for(CreatureEventList::iterator it = advanceEvents.begin(); it != advanceEvents.end(); ++it)
           (*it)->executeAdvance(this, SKILL__LEVEL, prevLevel, level);
   }

   uint64_t currLevelExp = Player::getExpForLevel(level);
   nextLevelExp = Player::getExpForLevel(level + 1);
   levelPercent = 0;
   if(nextLevelExp > currLevelExp)
       levelPercent = Player::getPercentLevel(experience - currLevelExp, nextLevelExp - currLevelExp);

   sendStats();
}

 

Encontre a parte que aumente a capacidade do jogador:

 

capacity += vocation->getGainCap();

 

E adicione um if

 


       if Player::getCapacity() < 32000
           capacity += vocation->getGainCap();

 

Tcharããããã, seu limite de capacidade está feito.

Link para o comentário
Compartilhar em outros sites

código pro player parar de ganhar capacity após o level 500:

 

function onAdvance(cid, skill, oldLevel, newLevel)
   if skill ~= 8 then return true end
   local maxLevel = 500
   if newLevel <= maxLevel then return true end
   local playerCap = getPlayerFreeCap(cid) + (maxLevel - oldLevel) * getVocationInfo(getPlayerVocation(cid)).capacity
   for slot = 1, 10 do
    local item = getPlayerSlotItem(cid, slot).uid
    playerCap = playerCap + (item > 1 and getItemWeight(item) or 0)
   end
   addEvent(doPlayerSetMaxCapacity, 4, cid, playerCap)
return true
end

 

precisa registrar no login.lua e no creaturescripts.xml

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...