当前位置: 首页>>代码示例>>C++>>正文


C++ PreparedQueryResult::release方法代码示例

本文整理汇总了C++中PreparedQueryResult::release方法的典型用法代码示例。如果您正苦于以下问题:C++ PreparedQueryResult::release方法的具体用法?C++ PreparedQueryResult::release怎么用?C++ PreparedQueryResult::release使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PreparedQueryResult的用法示例。


在下文中一共展示了PreparedQueryResult::release方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: checkCode

    bool checkCode(Player *player, Creature *_Creature, const char* sCode)
    {
        // Some variables declarations.
        PreparedQueryResult result;
        int32 item_id = 0;
        uint32 quantity = 0;
        uint32 uses = 0;
        uint32 account = 0;
        uint64 charguid = 0;
        uint8 newlevel = 0;
        bool found = false;
        
        
        uint32 creatureID = _Creature->GetEntry();

        creatureID = creatureID == 1000104 ? 90001 : creatureID;
        
        PreparedStatement *stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_CODEBOX_ITEM);
        stmt->setUInt32(0, creatureID);
        stmt->setUInt32(1, player->GetSession()->GetAccountId());
        
        result = CharacterDatabase.Query(stmt);
        if(!result)
        {
            sLog->outError("CodeBox: Player %u request code (%s) on npc %u but no code found.", player->GetGUID(), sCode, creatureID);
            _Creature->MonsterWhisper("Der Code ist falsch! Komme wieder, wenn du einen gueltigen Code hast!", player->GetGUID());
            return false;
        }
        
        
        do {
            Field *fields = result->Fetch();
            
            item_id = fields[0].GetInt32();
            quantity = fields[1].GetUInt32();
            uses = fields[2].GetUInt8();
            account = fields[3].GetUInt32();
            charguid = fields[4].GetUInt64();
            newlevel = fields[5].GetUInt8();
            const char* dbcode = fields[6].GetCString();
            
            sLog->outDebug(LOG_FILTER_TSCR, "CodeBox: Found Code (%s) in DB", dbcode);

            if(!strcmp(dbcode, sCode))
            {
                sLog->outDebug(LOG_FILTER_TSCR, "CodeBox: DB Code %s matches player code %s", dbcode, sCode);
                found = true;
                break;
            }
        } while (result->NextRow());
        
        result.release();
        
        if(!found)
        {
            sLog->outError("CodeBox: Player %u request not existing code (%s).", player->GetGUID(), sCode);
            _Creature->MonsterWhisper("Der Code ist falsch! Komme wieder, wenn du einen gueltigen Code hast!", player->GetGUID());
            return false;
        }
        
        if(account != player->GetSession()->GetAccountId())
        {
            sLog->outError("CodeBox: Player %u request correct code (%s) but account doesn't match. Playeraccount: %u CodeAccount: %u", player->GetGUID(), sCode, player->GetSession()->GetAccountId(), account);
            _Creature->MonsterWhisper("Der Code ist falsch! Komme wieder, wenn du einen gueltigen Code hast!", player->GetGUID());
            return false;
        }
        
        if(charguid && player->GetGUID() != charguid)
        {
            sLog->outError("CodeBox: Player %u request correct code (%s) but guid doesn't match. CodeGUID: ", player->GetGUID(), charguid);
            _Creature->MonsterWhisper("Leider kannst du diesen Code nicht mit diesem Charakter Einloesen!", player->GetGUID());
            return false;
        }
        
        if(!uses)
        {
            sLog->outError("CodeBox: Player %u request correct code (%s) but available uses reached 0.", player->GetGUID(), sCode);
            _Creature->MonsterWhisper("Der Code wurde bereits eingeloest! Komme wieder, wenn du einen gueltigen Code hast!", player->GetGUID());
            return false;
        }
        
        if(newlevel && player->getLevel() >= newlevel)
        {
            sLog->outError("CodeBox: Player %u request correct code (%s) but playerlevel is to high. Playerlevel: %u Codelevel: %u", player->GetGUID(), player->getLevel(), newlevel);
            _Creature->MonsterWhisper("Leider kannst du diesen Code nicht mit diesem Charakter Einloesen denn dein Level ist zu hoch!", player->GetGUID());
            return false;
        }
        
        // levelcode
        if(newlevel > 0)
        {
                player->GiveLevel(newlevel);
                player->InitTalentForLevel();
                player->SetUInt32Value(PLAYER_XP,0);

                _Creature->MonsterWhisper("Herzlichen Glueckwunsch zu deinem neuem Level!", player->GetGUID());
        }
        // itemcode
        else if(item_id > 0)
        {
//.........这里部分代码省略.........
开发者ID:AwkwardDev,项目名称:TrinityCore,代码行数:101,代码来源:lol_codebox.cpp


注:本文中的PreparedQueryResult::release方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。