void WorldSession::HandleUnlearnSkillOpcode(WorldPacket& recvData)
{
    uint32 skillId;
    recvData >> skillId;

    SkillRaceClassInfoEntry const* rcEntry = GetSkillRaceClassInfo(skillId, GetPlayer()->getRace(), GetPlayer()->getClass());
    if (!rcEntry || !(rcEntry->Flags & SKILL_FLAG_UNLEARNABLE))
        return;

    GetPlayer()->SetSkill(skillId, 0, 0, 0);
}
Beispiel #2
0
void WorldSession::HandleUnlearnSkillOpcode(WorldPacket & recv_data)
{
    uint32 skill_id;
    recv_data >> skill_id;
    SkillRaceClassInfoEntry const* rcEntry = GetSkillRaceClassInfo(skill_id, GetPlayer()->getRace(), GetPlayer()->getClass());
    if (!rcEntry || !(rcEntry->flags & SKILL_FLAG_UNLEARNABLE))
    {
        std::stringstream reason;
        reason << "Attempt to unlearn not unlearnable skill #" << skill_id;
        ProcessAnticheatAction("SAC", reason.str().c_str(), CHEAT_ACTION_LOG);
        return;
    }
    GetPlayer()->SetSkill(skill_id, 0, 0);
}