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
Limite de capacidade
Limite de capacidade

Por DelPupo
Postado em janeiro 04, 2013
Postado em janeiro 04, 2013
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.
Postado em janeiro 04, 2013
não sei como eu sei que tem como
O que tu falo ai em cima velho? /\ :~/
Explica melhor.
Postado em janeiro 04, 2013
O negocio e que eu nem tenho as sources do meu server . Não tem outro jeito não ?
Tipo vou mudar isso, tem como botar o cap tipo de ADM 10000 e nunca abaixa?
Postado em janeiro 04, 2013
Essa função:
doPlayerSetMaxCapacity(cid, 0)
Ajudaria??
Postado em janeiro 04, 2013
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
