Ir para conteúdo

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
https://xtibia.com/forum/topic/203299-limite-de-capacidade/
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
https://xtibia.com/forum/topic/203299-limite-de-capacidade/#findComment-1430146
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
https://xtibia.com/forum/topic/203299-limite-de-capacidade/#findComment-1430352
Compartilhar em outros sites

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