• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 0.4.3 Block damage on same outfit

Paulix

Active Member
Joined
Sep 13, 2012
Messages
129
Solutions
7
Reaction score
26
i know there is a option that you cannot damage same feet, but i would like block attack only if the whole outfit is the same, can someone edit the sources for me?

C++:
if((attackerPlayer = attacker->getPlayer()) || (attackerPlayer = attacker->getPlayerMaster()))
        {
            checkZones = true;
            if((g_game.getWorldType() == WORLDTYPE_OPTIONAL && !Combat::isInPvpZone(attacker, target)
                && !attackerPlayer->isEnemy(targetPlayer, true)) || isProtected(const_cast<Player*>(attackerPlayer),
                const_cast<Player*>(targetPlayer)) || (g_config.getBool(ConfigManager::CANNOT_ATTACK_SAME_LOOKFEET)
                && attackerPlayer->getDefaultOutfit().lookFeet == targetPlayer->getDefaultOutfit().lookFeet)
                || !attackerPlayer->canSeeCreature(targetPlayer))
                return RET_YOUMAYNOTATTACKTHISPLAYER;
        }
 
Solution
C++:
if((attackerPlayer = attacker->getPlayer()) || (attackerPlayer = attacker->getPlayerMaster()))
        {
            checkZones = true;
            if((g_game.getWorldType() == WORLDTYPE_OPTIONAL && !Combat::isInPvpZone(attacker, target)
                && !attackerPlayer->isEnemy(targetPlayer, true)) || isProtected(const_cast<Player*>(attackerPlayer),
                const_cast<Player*>(targetPlayer)) || (g_config.getBool(ConfigManager::CANNOT_ATTACK_SAME_LOOKFEET)
                && attackerPlayer->getDefaultOutfit().lookType == targetPlayer->getDefaultOutfit().lookType
                && attackerPlayer->getDefaultOutfit().lookHead == targetPlayer->getDefaultOutfit().lookHead
                &&...
C++:
if((attackerPlayer = attacker->getPlayer()) || (attackerPlayer = attacker->getPlayerMaster()))
        {
            checkZones = true;
            if((g_game.getWorldType() == WORLDTYPE_OPTIONAL && !Combat::isInPvpZone(attacker, target)
                && !attackerPlayer->isEnemy(targetPlayer, true)) || isProtected(const_cast<Player*>(attackerPlayer),
                const_cast<Player*>(targetPlayer)) || (g_config.getBool(ConfigManager::CANNOT_ATTACK_SAME_LOOKFEET)
                && attackerPlayer->getDefaultOutfit().lookType == targetPlayer->getDefaultOutfit().lookType
                && attackerPlayer->getDefaultOutfit().lookHead == targetPlayer->getDefaultOutfit().lookHead
                && attackerPlayer->getDefaultOutfit().lookBody == targetPlayer->getDefaultOutfit().lookBody
                && attackerPlayer->getDefaultOutfit().lookLegs == targetPlayer->getDefaultOutfit().lookLegs
                && attackerPlayer->getDefaultOutfit().lookFeet == targetPlayer->getDefaultOutfit().lookFeet)
                || !attackerPlayer->canSeeCreature(targetPlayer))
                return RET_YOUMAYNOTATTACKTHISPLAYER;
        }


If you want addons aswell add the following line under lookFeet and remove the ) on feet aswell
C++:
&& attackerPlayer->getDefaultOutfit().lookAddons == targetPlayer->getDefaultOutfit().lookAddons)
 
Last edited:
Solution
C++:
if((attackerPlayer = attacker->getPlayer()) || (attackerPlayer = attacker->getPlayerMaster()))
        {
            checkZones = true;
            if((g_game.getWorldType() == WORLDTYPE_OPTIONAL && !Combat::isInPvpZone(attacker, target)
                && !attackerPlayer->isEnemy(targetPlayer, true)) || isProtected(const_cast<Player*>(attackerPlayer),
                const_cast<Player*>(targetPlayer)) || (g_config.getBool(ConfigManager::CANNOT_ATTACK_SAME_LOOKFEET)
                && attackerPlayer->getDefaultOutfit().lookType == targetPlayer->getDefaultOutfit().lookType)
                && attackerPlayer->getDefaultOutfit().lookHead == targetPlayer->getDefaultOutfit().lookHead)
                && attackerPlayer->getDefaultOutfit().lookBody == targetPlayer->getDefaultOutfit().lookBody)
                && attackerPlayer->getDefaultOutfit().lookLegs == targetPlayer->getDefaultOutfit().lookLegs)
                && attackerPlayer->getDefaultOutfit().lookFeet == targetPlayer->getDefaultOutfit().lookFeet)
                || !attackerPlayer->canSeeCreature(targetPlayer))
                return RET_YOUMAYNOTATTACKTHISPLAYER;
        }


If you want addons aswell add the following line:
C++:
&& attackerPlayer->getDefaultOutfit().lookAddons == targetPlayer->getDefaultOutfit().lookAddons)
i needed to remove ) at the end of each line, compiled but didn't work, i can attack players with exact the same outfit, no errors on console and no critical errors on client

@EDIT
it is working but only if players change for same outfit, when i set player temporary outfits it doesnt work, but i want to manipulate outfits to control the combat so it need to take player outfit instead of default outfit, any idea how to make it?
 
Last edited:
Back
Top