[TFS 0.3.6] Player::canWalkthrough
2 participantes
- Programador WolfBanido
- King Carteira : 80
Reputação : 65
Tópicos : 10
Data de Cadastro : 21/07/2016
[TFS 0.3.6] Player::canWalkthrough
23/9/2016, 18:08
Bom muita gente procura esse código, e ao olhar na internet só vi disponível em um fórum porém incompleto então decidi pegar o código e postá-lo com oque faltava.
Esse código é utilizado para que um player passe por outro player evitando tantas reclamações por "trapar" caminho ou algo parecido, vamos lá!
Player.cpp procure por:
Substitua todo o código por:
Depois vá em const.h e procure por:
E em baixo coloque:
Provavelmente em muitas sources do tfs 0.3.6, dê não exatamente um erro mais um aviso no player.cpp na função:
Se o aviso ocorrer substitua a função citada acima por essa:
Só utilize o código acima se ocorrer o "warning/aviso" sobre a função.
Se Ajudei REP+
Esse código é utilizado para que um player passe por outro player evitando tantas reclamações por "trapar" caminho ou algo parecido, vamos lá!
Player.cpp procure por:
- Spoiler:
- bool Player::canWalkthrough(const Creature* creature) const
Substitua todo o código por:
- Spoiler:
- bool Player::canWalkthrough(const Creature* creature) const
{
if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() ||
(creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster())))
return true;
const Player* player = creature->getPlayer();
if(!player)
return false;
if((((g_game.getWorldType() == WORLD_TYPE_NO_PVP &&
player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() &&
player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground) &&
(!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges)
|| player->getAccess() <= getAccess()))
return true;
return (player->isGhost() && getGhostAccess() < player->getGhostAccess())
|| (isGhost() && getGhostAccess() > player->getGhostAccess());
}
Depois vá em const.h e procure por:
- Spoiler:
- PlayerCustomFlag_CanWearAllAddons, //2^23 = 8388608
E em baixo coloque:
- Spoiler:
- PlayerCustomFlag_IsWalkable, //2^24 = 16777216
PlayerCustomFlag_CanWalkthrough, //2^25 = 33554433
Provavelmente em muitas sources do tfs 0.3.6, dê não exatamente um erro mais um aviso no player.cpp na função:
- Spoiler:
- void Player::updateInventoryWeight()
Se o aviso ocorrer substitua a função citada acima por essa:
- Spoiler:
- void Player::updateInventoryWeight()
{
inventoryWeight = 0.00;
if(!hasFlag(PlayerFlag_HasInfiniteCapacity)){
for(int i = SLOT_FIRST; i < SLOT_LAST; ++i){
Item* item = getInventoryItem((slots_t)i);
if(item){
inventoryWeight += item->getWeight();
}
}
}
}
Só utilize o código acima se ocorrer o "warning/aviso" sobre a função.
- Spoiler:
- Créditos: Lordbaxx;Zoro (Eu por trazer ao fórum)
Se Ajudei REP+
Permissões neste sub-fórum
Não podes responder a tópicos
|
|