コード例 #1
0
    static bool HandlePetLevelCommand(ChatHandler* handler, char const* args)
    {
        Pet* pet = GetSelectedPlayerPetOrOwn(handler);
        Player* owner = pet ? pet->GetOwner() : nullptr;
        if (!pet || !owner)
        {
            handler->SendSysMessage(LANG_SELECT_PLAYER_OR_PET);
            handler->SetSentErrorMessage(true);
            return false;
        }

        int32 level = args ? atoi(args) : 0;
        if (level == 0)
            level = owner->getLevel() - pet->getLevel();
        if (level == 0 || level < -STRONG_MAX_LEVEL || level > STRONG_MAX_LEVEL)
        {
            handler->SendSysMessage(LANG_BAD_VALUE);
            handler->SetSentErrorMessage(true);
            return false;
        }

        int32 newLevel = pet->getLevel() + level;
        if (newLevel < 1)
            newLevel = 1;
        else if (newLevel > owner->getLevel())
            newLevel = owner->getLevel();

        pet->GivePetLevel(newLevel);
        return true;
    }