MatheusEnjoy 70 Postado Abril 21, 2014 Share Postado Abril 21, 2014 (editado) Nome: Capacity OverloadVersão: 1.0Código: sn3ejkForum Origem: OTLandVersão: Todos TFSDescriçã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.luaAbaixo de:playerFollowExhaust = 0Adicione:capacityOverload = 0.75Em configmanager.cppAbaixo de:m_confNumber[FOLLOW_EXHAUST] = getGlobalNumber("playerFollowExhaust", 2000); Adicione:m_confDouble[CAPACITY_OVERLOAD] = getGlobalDouble("capacityOverload", 0.75); Em configmanager.hAbaixo de:FORMULA_MAGIC,Adicione:CAPACITY_OVERLOAD,Em player.cppSubstitua:windowTextId = nextExAction = 0;Por:windowTextId = nextExAction = capacityOverload = 0;Substitua:void Player::updateInventoryWeight()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:bool Player::hasCapacity(const Item*, uint32_t) constPor:bool Player::hasCapacity(const Item*, uint32_t) const { return true; }Substitua:void Player::onThink(uint32_t interval)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:int32_t shieldBlockCount;Adicione:int32_t capacityOverload; Editado Abril 21, 2014 por MatheusEnjoy Link para o comentário Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Abril 21, 2014 Share Postado Abril 21, 2014 Um ótimo código, traz mais RPG ao servidor. Link para o comentário Compartilhar em outros sites More sharing options...
Maenilse 86 Postado Abril 21, 2014 Share Postado Abril 21, 2014 bom codigo cara, parabens, tomara q mais programadores atuem a essa area aqui, pois anda muito sem movimento desde 2013 pra 2014, parabens pelo code Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados