Um ótimo código, traz mais RPG ao servidor.
- Fórum
- OTServ
- Recursos
- Linguagens de Programação
- Capacidade de Sobrecargada
3
864
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit

21 de abril de 2014 às 01:58
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit

Um ótimo código, traz mais RPG ao servidor.
info
Grupo: Visconde
Registrado: 07/08/11
Posts: 301
Reputação: +70

Nome: Capacity OverloadVersão: 1.0
Código: sn3ejk
Forum Origem: OTLand
Versão: Todos TFS
Descrição: Sistema tirado dos jogos da Bethesda como Skyrim e Fallout. Essa modificação faz com o que personagem com a tenha capacidade de carregar infinita, mais ao chegar determinado valor o personagem começa andar mais devagar.
Vamos ao código:
Em config.lua
Abaixo de:
Adicione:
Em configmanager.cpp
Abaixo de:
m_confNumber[FOLLOW_EXHAUST] = getGlobalNumber("playerFollowExhaust", 2000);Adicione:m_confDouble[CAPACITY_OVERLOAD] = getGlobalDouble("capacityOverload", 0.75);Em configmanager.hAbaixo de:
Adicione:
Em player.cpp
Substitua:
Por:
Substitua:
Por:
void Player::updateInventoryWeight() { inventoryWeight = 0.00; if(hasFlag(PlayerFlag_HasInfiniteCapacity) || !g_config.getBool(ConfigManager::USE_CAPACITY)) return; for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) inventoryWeight += item->getWeight(); } if (inventoryWeight >= capacity && !capacityOverload) { capacityOverload = (int32_t)(getSpeed() * g_config.getDouble(ConfigManager::CAPACITY_OVERLOAD)); g_game.changeSpeed(this, -capacityOverload); } else if (inventoryWeight < capacity && capacityOverload) { g_game.changeSpeed(this, capacityOverload); capacityOverload = 0; } }Substitua:Por:
bool Player::hasCapacity(const Item*, uint32_t) const { return true; }Substitua:Por:
void Player::onThink(uint32_t interval) { Creature::onThink(interval); int64_t timeNow = OTSYS_TIME(); if(timeNow - lastPing >= 5000) { if (capacityOverload) { g_game.addMagicEffect(getPosition(), MAGIC_EFFECT_POFF); sendCancel("Your capacity is overloaded!"); } lastPing = timeNow; if(hasClient()) client->sendPing(); else if(g_config.getBool(ConfigManager::STOP_ATTACK_AT_EXIT)) setAttackedCreature(NULL); } if((timeNow - lastPong) >= 60000 && !getTile()->hasFlag(TILESTATE_NOLOGOUT) && !isConnecting && !pzLocked && !hasCondition(CONDITION_INFIGHT)) { if(hasClient()) client->logout(true, true); else if(g_creatureEvents->playerLogout(this, false)) g_game.removeCreature(this, true); } messageTicks += interval; if(messageTicks >= 1500) { messageTicks = 0; addMessageBuffer(); } if(lastMail && lastMail < (uint64_t)(OTSYS_TIME() + g_config.getNumber(ConfigManager::MAIL_ATTEMPTS_FADE))) mailAttempts = lastMail = 0; }Em player.hAbaixo de:
Adicione:
Editado Abril 21 por MatheusEnjoy