代码拉取完成,页面将自动刷新
同步操作将从 CL4G_TBC/CCM-TBC-Anticheat 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "AntiCheat_wallclimb.h"
#include "CPlayer.h"
AntiCheat_wallclimb::AntiCheat_wallclimb(CPlayer* player) : AntiCheat(player, AntiCheatType_wallclimb)
{
}
bool AntiCheat_wallclimb::HandleMovement(MovementInfo& MoveInfo, Opcodes opcode, bool cheat)
{
AntiCheat::HandleMovement(MoveInfo, opcode, cheat);
if (isTransport())
return SetOldMoveInfo(false);
float angle = std::atan2(GetDistanceZ(), GetDistance2D()) * 180.f / M_PI_F;
if (angle <= 50.f)
SetStoredMoveInfo(false);
if (!Initialized())
return false;
if (GetDistanceZ() <= 0.f)
return SetOldMoveInfo(false);
if (GetDistanceZ() < JUMPHEIGHT_WATER)
return false;
if (isFalling())
return false;
if (isFlying() || isSwimming())
return false;
if (opcode == MSG_MOVE_FALL_LAND)
return false;
if (!cheat && angle > 50.f && !isTransport())
{
const Position* p = storedMoveInfo.GetPos();
m_Player->TeleportTo(storedMapID, p->x, p->y, p->z, p->o, TELE_TO_NOT_LEAVE_COMBAT);
if (m_Player->GetSession()->GetSecurity() > SEC_PLAYER)
m_Player->BoxChat << "Wallclimbing angle: " << angle << "\n";
return SetOldMoveInfo(true);
}
return SetOldMoveInfo(false);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。