您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uint32函数代码示例

51自学网 2021-06-03 09:07:27
  C++
这篇教程C++ uint32函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uint32函数的典型用法代码示例。如果您正苦于以下问题:C++ uint32函数的具体用法?C++ uint32怎么用?C++ uint32使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: uint32

void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacket& data){    uint32 mask = player->GetGroupUpdateFlag();    if (mask & GROUP_UPDATE_FLAG_POWER_TYPE)                // if update power type, update current/max power also        mask |= (GROUP_UPDATE_FLAG_CUR_POWER | GROUP_UPDATE_FLAG_MAX_POWER);    if (mask & GROUP_UPDATE_FLAG_PET_POWER_TYPE)            // same for pets        mask |= (GROUP_UPDATE_FLAG_PET_CUR_POWER | GROUP_UPDATE_FLAG_PET_MAX_POWER);    uint32 byteCount = 0;    for (int i = 1; i < GROUP_UPDATE_FLAGS_COUNT; ++i)        if (mask & (1 << i))            byteCount += GroupUpdateLength[i];    data.Initialize(SMSG_PARTY_MEMBER_STATS, 8 + 4 + byteCount);    data << player->GetPackGUID();    data << uint32(mask);    if (mask & GROUP_UPDATE_FLAG_STATUS)        data << uint16(GetGroupMemberStatus(player));    if (mask & GROUP_UPDATE_FLAG_CUR_HP)        data << uint32(player->GetHealth());    if (mask & GROUP_UPDATE_FLAG_MAX_HP)        data << uint32(player->GetMaxHealth());    Powers powerType = player->GetPowerType();    if (mask & GROUP_UPDATE_FLAG_POWER_TYPE)        data << uint8(powerType);    if (mask & GROUP_UPDATE_FLAG_CUR_POWER)        data << uint16(player->GetPower(powerType));    if (mask & GROUP_UPDATE_FLAG_MAX_POWER)        data << uint16(player->GetMaxPower(powerType));    if (mask & GROUP_UPDATE_FLAG_LEVEL)        data << uint16(player->getLevel());    if (mask & GROUP_UPDATE_FLAG_ZONE)        data << uint16(player->GetZoneId());    if (mask & GROUP_UPDATE_FLAG_POSITION)        data << uint16(player->GetPositionX()) << uint16(player->GetPositionY());    if (mask & GROUP_UPDATE_FLAG_AURAS)    {        const uint64& auramask = player->GetAuraUpdateMask();        data << uint64(auramask);        for (uint32 i = 0; i < MAX_AURAS; ++i)        {            if (auramask & (uint64(1) << i))            {                data << uint32(player->GetVisibleAura(i));                data << uint8(1);            }        }    }    Pet* pet = player->GetPet();    if (mask & GROUP_UPDATE_FLAG_PET_GUID)        data << (pet ? pet->GetObjectGuid() : ObjectGuid());    if (mask & GROUP_UPDATE_FLAG_PET_NAME)    {        if (pet)            data << pet->GetName();        else            data << uint8(0);    }    if (mask & GROUP_UPDATE_FLAG_PET_MODEL_ID)    {        if (pet)            data << uint16(pet->GetDisplayId());        else            data << uint16(0);    }    if (mask & GROUP_UPDATE_FLAG_PET_CUR_HP)    {        if (pet)            data << uint32(pet->GetHealth());        else            data << uint32(0);    }    if (mask & GROUP_UPDATE_FLAG_PET_MAX_HP)    {        if (pet)            data << uint32(pet->GetMaxHealth());        else            data << uint32(0);    }    if (mask & GROUP_UPDATE_FLAG_PET_POWER_TYPE)    {        if (pet)//.........这里部分代码省略.........
开发者ID:ElunaLuaEngine,项目名称:ElunaMangosWotlk,代码行数:101,


示例2: HandleQuestGiverCompleteQuest

void WorldSession::HandleQuestGiverCompleteQuest(WorldPacket& recv_data){    uint32 quest;    uint64 guid;    uint8 unk;    recv_data >> guid >> quest;    recv_data >> unk;    if (!_player->isAlive())        return;    sLog->outDebug("WORLD: Received CMSG_QUESTGIVER_COMPLETE_QUEST npc = %u, quest = %u, unk = %u",uint32(GUID_LOPART(guid)), quest, unk);    Quest const *pQuest = sObjectMgr->GetQuestTemplate(quest);    if (pQuest)    {        if (!_player->CanSeeStartQuest(pQuest) && _player->GetQuestStatus(quest)==QUEST_STATUS_NONE)        {            sLog->outError("Possible hacking attempt: Player %s [guid: %u] tried to complete quest [entry: %u] without being in possession of the quest!",                          _player->GetName(), _player->GetGUIDLow(), quest);            return;        }        // TODO: need a virtual function        if (_player->InBattleground())            if (Battleground* bg = _player->GetBattleground())                if (bg->GetTypeID() == BATTLEGROUND_AV)                    ((BattlegroundAV*)bg)->HandleQuestComplete(quest, _player);        if (_player->GetQuestStatus(quest) != QUEST_STATUS_COMPLETE)        {            if (pQuest->IsRepeatable())                _player->PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, _player->CanCompleteRepeatableQuest(pQuest), false);            else                _player->PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, _player->CanRewardQuest(pQuest,false), false);        }        else        {            if (pQuest->GetReqItemsCount())                  // some items required                _player->PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, _player->CanRewardQuest(pQuest,false), false);            else                                            // no items required                _player->PlayerTalkClass->SendQuestGiverOfferReward(pQuest, guid, true);        }    }    // Now save player every accept/deliver a quest    if (_player)        _player->SaveToDB();}
开发者ID:wuhongyi1977,项目名称:StrawberryCore,代码行数:49,


示例3: GetPlayer

void WorldSession::SendPetitionShowList(uint64 guid){    Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_PETITIONER);    if (!creature)    {        sLog->outDebug("WORLD: HandlePetitionShowListOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)));        return;    }    // remove fake death    if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))        GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);    uint8 count = 0;    if (creature->isTabardDesigner())        count = 1;    else        count = 3;    WorldPacket data(SMSG_PETITION_SHOWLIST, 8+1+4*6);    data << guid;                                           // npc guid    data << count;                                          // count    if (count == 1)    {        data << uint32(1);                                  // index        data << uint32(GUILD_CHARTER);                      // charter entry        data << uint32(16161);                              // charter display id        data << uint32(GUILD_CHARTER_COST);                 // charter cost        data << uint32(0);                                  // unknown        data << uint32(9);                                  // required signs?    }    else    {        // 2v2        data << uint32(1);                                  // index        data << uint32(ARENA_TEAM_CHARTER_2v2);             // charter entry        data << uint32(16161);                              // charter display id        data << uint32(ARENA_TEAM_CHARTER_2v2_COST);        // charter cost        data << uint32(2);                                  // unknown        data << uint32(2);                                  // required signs?        // 3v3        data << uint32(2);                                  // index        data << uint32(ARENA_TEAM_CHARTER_3v3);             // charter entry        data << uint32(16161);                              // charter display id        data << uint32(ARENA_TEAM_CHARTER_3v3_COST);        // charter cost        data << uint32(3);                                  // unknown        data << uint32(3);                                  // required signs?        // 5v5        data << uint32(3);                                  // index        data << uint32(ARENA_TEAM_CHARTER_5v5);             // charter entry        data << uint32(16161);                              // charter display id        data << uint32(ARENA_TEAM_CHARTER_5v5_COST);        // charter cost        data << uint32(5);                                  // unknown        data << uint32(5);                                  // required signs?    }    //for (uint8 i = 0; i < count; ++i)    //{    //    data << uint32(i);                      // index    //    data << uint32(GUILD_CHARTER);          // charter entry    //    data << uint32(16161);                  // charter display id    //    data << uint32(GUILD_CHARTER_COST+i);   // charter cost    //    data << uint32(0);                      // unknown    //    data << uint32(9);                      // required signs?    //}    SendPacket(&data);    sLog->outDebug("Sent SMSG_PETITION_SHOWLIST");}
开发者ID:Maczuga,项目名称:SkyFire_one,代码行数:67,


示例4: uint32

void WorldSession::HandleQuestGiverQueryQuestOpcode(WorldPacket & recv_data){    uint64 guid;    uint32 quest;    uint8 unk1;    recv_data >> guid >> quest >> unk1;    sLog->outDebug("WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %u, quest = %u, unk1 = %u", uint32(GUID_LOPART(guid)), quest, unk1);    // Verify that the guid is valid and is a questgiver or involved in the requested quest    Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER);    if(!IS_PLAYER_GUID(guid))    {        if (!pObject || (!pObject->hasQuest(quest) && !pObject->hasInvolvedQuest(quest)))        {            _player->PlayerTalkClass->SendCloseGossip();            return;        }    }    Quest const* pQuest = sObjectMgr->GetQuestTemplate(quest);    if (pQuest)    {        if (pQuest->IsAutoAccept() && _player->CanAddQuest(pQuest, true))        {            _player->AddQuest(pQuest, pObject);            if (_player->CanCompleteQuest(quest))                _player->CompleteQuest(quest);        }        if (pQuest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))            _player->PlayerTalkClass->SendQuestGiverRequestItems(pQuest, pObject->GetGUID(), _player->CanCompleteQuest(pQuest->GetQuestId()), true);        else            _player->PlayerTalkClass->SendQuestGiverQuestDetails(pQuest, pObject->GetGUID(), true);    }    // Now save player every accept/deliver a quest    if (_player)        _player->SaveToDB(); }
开发者ID:wuhongyi1977,项目名称:StrawberryCore,代码行数:40,


示例5: HandleQuestGiverRequestRewardOpcode

void WorldSession::HandleQuestGiverRequestRewardOpcode(WorldPacket & recv_data){    uint32 quest;    uint64 guid;    recv_data >> guid >> quest;    if (!GetPlayer()->isAlive())        return;    sLog->outDebug("WORLD: Received CMSG_QUESTGIVER_REQUEST_REWARD npc = %u, quest = %u",uint32(GUID_LOPART(guid)),quest);    Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_PLAYER);    if(!IS_PLAYER_GUID(guid))    {        if (!pObject||!pObject->hasInvolvedQuest(quest))            return;    }    if (_player->CanCompleteQuest(quest))        _player->CompleteQuest(quest);    if (_player->GetQuestStatus(quest) != QUEST_STATUS_COMPLETE)        return;    if (Quest const *pQuest = sObjectMgr->GetQuestTemplate(quest))        _player->PlayerTalkClass->SendQuestGiverOfferReward(pQuest, guid, true);    // Now save player every accept/deliver a quest    if (_player)        _player->SaveToDB();}
开发者ID:wuhongyi1977,项目名称:StrawberryCore,代码行数:32,


示例6: data

void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const{    std::string questTitle = quest->GetTitle();    std::string questDetails = quest->GetDetails();    std::string questObjectives = quest->GetObjectives();    std::string questEndText = quest->GetEndText();    std::string questCompletedText = quest->GetCompletedText();    std::string questObjectiveText[QUEST_OBJECTIVES_COUNT];    for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)        questObjectiveText[i] = quest->ObjectiveText[i];    int32 locale = _session->GetSessionDbLocaleIndex();    if (locale >= 0)    {        if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(quest->GetQuestId()))        {            ObjectMgr::GetLocaleString(localeData->Title, locale, questTitle);            ObjectMgr::GetLocaleString(localeData->Details, locale, questDetails);            ObjectMgr::GetLocaleString(localeData->Objectives, locale, questObjectives);            ObjectMgr::GetLocaleString(localeData->EndText, locale, questEndText);            ObjectMgr::GetLocaleString(localeData->CompletedText, locale, questCompletedText);            for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)                ObjectMgr::GetLocaleString(localeData->ObjectiveText[i], locale, questObjectiveText[i]);        }    }    WorldPacket data(SMSG_QUEST_QUERY_RESPONSE, 100);       // guess size    data << uint32(quest->GetQuestId());                    // quest id    data << uint32(quest->GetQuestMethod());                // Accepted values: 0, 1 or 2. 0 == IsAutoComplete() (skip objectives/details)    data << uint32(quest->GetQuestLevel());                 // may be -1, static data, in other cases must be used dynamic level: Player::GetQuestLevel (0 is not known, but assuming this is no longer valid for quest intended for client)    data << uint32(quest->GetMinLevel());                   // min level    data << uint32(quest->GetZoneOrSort());                 // zone or sort to display in quest log    data << uint32(quest->GetType());                       // quest type    data << uint32(quest->GetSuggestedPlayers());           // suggested players count    data << uint32(quest->GetRepObjectiveFaction());        // shown in quest log as part of quest objective    data << uint32(quest->GetRepObjectiveValue());          // shown in quest log as part of quest objective    data << uint32(quest->GetRepObjectiveFaction2());       // shown in quest log as part of quest objective OPPOSITE faction    data << uint32(quest->GetRepObjectiveValue2());         // shown in quest log as part of quest objective OPPOSITE faction    data << uint32(quest->GetNextQuestInChain());           // client will request this quest from NPC, if not 0    data << uint32(quest->GetXPId());                       // used for calculating rewarded experience    if (quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))        data << uint32(0);                                  // Hide money rewarded    else        data << uint32(quest->GetRewOrReqMoney());          // reward money (below max lvl)    data << uint32(quest->GetRewMoneyMaxLevel());           // used in XP calculation at client    data << uint32(quest->GetRewSpell());                   // reward spell, this spell will display (icon) (casted if RewSpellCast == 0)    data << int32(quest->GetRewSpellCast());                // casted spell    // rewarded honor points    data << Trinity::Honor::hk_honor_at_level(_session->GetPlayer()->getLevel(), quest->GetRewHonorMultiplier());    data << float(0);                                       // new reward honor (multipled by ~62 at client side)    data << uint32(quest->GetSrcItemId());                  // source item id    data << uint32(quest->GetFlags() & 0xFFFF);             // quest flags    data << uint32(quest->GetCharTitleId());                // CharTitleId, new 2.4.0, player gets this title (id from CharTitles)    data << uint32(quest->GetPlayersSlain());               // players slain    data << uint32(quest->GetBonusTalents());               // bonus talents    data << uint32(quest->GetRewArenaPoints());             // bonus arena points    data << uint32(0);                                      // review rep show mask    if (quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))    {        for (uint32 i = 0; i < QUEST_REWARDS_COUNT; ++i)            data << uint32(0) << uint32(0);        for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)            data << uint32(0) << uint32(0);    }    else    {        for (uint32 i = 0; i < QUEST_REWARDS_COUNT; ++i)        {            data << uint32(quest->RewardItemId[i]);            data << uint32(quest->RewardItemIdCount[i]);        }        for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)        {            data << uint32(quest->RewardChoiceItemId[i]);            data << uint32(quest->RewardChoiceItemCount[i]);        }    }    for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)        // reward factions ids        data << uint32(quest->RewardFactionId[i]);    for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)        // columnid+1 QuestFactionReward.dbc?        data << int32(quest->RewardFactionValueId[i]);    for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)           // unk (0)        data << int32(quest->RewardFactionValueIdOverride[i]);    data << quest->GetPointMapId();    data << quest->GetPointX();//.........这里部分代码省略.........
开发者ID:3kids,项目名称:TrinityCore,代码行数:101,


示例7: uint32

/** * Collects all GUIDs (and related info) from deleted characters which are still in the database. * * @param foundList    a reference to an std::list which will be filled with info data * @param searchString the search string which either contains a player GUID (low part) or a part of the character-name * @return             returns false if there was a problem while selecting the characters (e.g. player name not normalizeable) */bool ChatHandler::GetDeletedCharacterInfoList(DeletedInfoList& foundList, std::string searchString){    QueryResult* resultChar;    if (!searchString.empty())    {        // search by GUID        if (isNumeric(searchString))            resultChar = CharacterDatabase.PQuery("SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND guid = %u", uint32(atoi(searchString.c_str())));        // search by name        else        {            if (!normalizePlayerName(searchString))                return false;            resultChar = CharacterDatabase.PQuery("SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name " _LIKE_ " " _CONCAT3_("'%%'", "'%s'", "'%%'"), searchString.c_str());        }    }    else        resultChar = CharacterDatabase.Query("SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL");    if (resultChar)    {        do        {            Field* fields = resultChar->Fetch();            DeletedInfo info;            info.lowguid    = fields[0].GetUInt32();            info.name       = fields[1].GetCppString();            info.accountId  = fields[2].GetUInt32();            // account name will be empty for nonexistent account            sAccountMgr.GetName(info.accountId, info.accountName);            info.deleteDate = time_t(fields[3].GetUInt64());            foundList.push_back(info);        }        while (resultChar->NextRow());        delete resultChar;    }    return true;}
开发者ID:Ambal,项目名称:mangos,代码行数:53,


示例8: time

uint32 Item::GetPlayedTime(){    time_t curtime = time(NULL);    uint32 elapsed = uint32(curtime - m_lastPlayedTimeUpdate);    return GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) + elapsed;}
开发者ID:Matt-One,项目名称:azerothcore-wotlk,代码行数:6,


示例9: uint32

void BattlegroundAB::FillInitialWorldStates(WorldPacket& data){    const uint8 plusArray[] = {0, 2, 3, 0, 1};    // Node icons    for (uint8 node = 0; node < BG_AB_DYNAMIC_NODES_COUNT; ++node)        data << uint32(BG_AB_OP_NODEICONS[node]) << uint32((m_Nodes[node] == 0)?1:0);    // Node occupied states    for (uint8 node = 0; node < BG_AB_DYNAMIC_NODES_COUNT; ++node)        for (uint8 i = 1; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)            data << uint32(BG_AB_OP_NODESTATES[node] + plusArray[i]) << uint32((m_Nodes[node] == i)?1:0);    // How many bases each team owns    uint8 ally = 0, horde = 0;    for (uint8 node = 0; node < BG_AB_DYNAMIC_NODES_COUNT; ++node)        if (m_Nodes[node] == BG_AB_NODE_STATUS_ALLY_OCCUPIED)            ++ally;        else if (m_Nodes[node] == BG_AB_NODE_STATUS_HORDE_OCCUPIED)            ++horde;    data << uint32(BG_AB_OP_OCCUPIED_BASES_ALLY)  << uint32(ally);    data << uint32(BG_AB_OP_OCCUPIED_BASES_HORDE) << uint32(horde);    // Team scores    data << uint32(BG_AB_OP_RESOURCES_MAX)      << uint32(BG_AB_MAX_TEAM_SCORE);    data << uint32(BG_AB_OP_RESOURCES_WARNING)  << uint32(BG_AB_WARNING_NEAR_VICTORY_SCORE);    data << uint32(BG_AB_OP_RESOURCES_ALLY)     << uint32(m_TeamScores[BG_TEAM_ALLIANCE]);    data << uint32(BG_AB_OP_RESOURCES_HORDE)    << uint32(m_TeamScores[BG_TEAM_HORDE]);    // other unknown    data << uint32(0x745) << uint32(0x2);           // 37 1861 unk}
开发者ID:Bootz,项目名称:MyCore4Kata,代码行数:33,


示例10: DEBUG_LOG

/*this procedure handles clients CMSG_REQUEST_PARTY_MEMBER_STATS request*/void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket& recv_data){    DEBUG_LOG("WORLD: Received opcode CMSG_REQUEST_PARTY_MEMBER_STATS");    ObjectGuid guid;    recv_data >> guid;    Player* player = ObjectAccessor::FindPlayer(guid, false);    if (!player)    {        WorldPacket data(SMSG_PARTY_MEMBER_STATS_FULL, 3 + 4 + 2);        data << uint8(0);                                   // only for SMSG_PARTY_MEMBER_STATS_FULL, probably arena/bg related        data << guid.WriteAsPacked();        data << uint32(GROUP_UPDATE_FLAG_STATUS);        data << uint16(MEMBER_STATUS_OFFLINE);        SendPacket(data);        return;    }    Pet* pet = player->GetPet();    WorldPacket data(SMSG_PARTY_MEMBER_STATS_FULL, 4 + 2 + 2 + 2 + 1 + 2 * 6 + 8 + 1 + 8);    data << uint8(0);                                       // only for SMSG_PARTY_MEMBER_STATS_FULL, probably arena/bg related    data << player->GetPackGUID();    uint32 mask1 = 0x00040BFF;                              // common mask, real flags used 0x000040BFF    if (pet)        mask1 = 0x7FFFFFFF;                                 // for hunters and other classes with pets    Powers powerType = player->GetPowerType();    data << uint32(mask1);                                  // group update mask    data << uint16(GetGroupMemberStatus(player));           // member's online status    data << uint32(player->GetHealth());                    // GROUP_UPDATE_FLAG_CUR_HP    data << uint32(player->GetMaxHealth());                 // GROUP_UPDATE_FLAG_MAX_HP    data << uint8(powerType);                               // GROUP_UPDATE_FLAG_POWER_TYPE    data << uint16(player->GetPower(powerType));            // GROUP_UPDATE_FLAG_CUR_POWER    data << uint16(player->GetMaxPower(powerType));         // GROUP_UPDATE_FLAG_MAX_POWER    data << uint16(player->getLevel());                     // GROUP_UPDATE_FLAG_LEVEL    // verify player coordinates and zoneid to send to teammates    uint16 iZoneId = 0;    uint16 iCoordX = 0;    uint16 iCoordY = 0;    if (player->IsInWorld())    {        iZoneId = player->GetZoneId();        iCoordX = player->GetPositionX();        iCoordY = player->GetPositionY();    }    else if (player->IsBeingTeleported())               // Player is in teleportation    {        WorldLocation& loc = player->GetTeleportDest(); // So take teleportation destination        iZoneId = sTerrainMgr.GetZoneId(loc.mapid, loc.coord_x, loc.coord_y, loc.coord_z);        iCoordX = loc.coord_x;        iCoordY = loc.coord_y;    }    else    {        // unknown player status.    }    data << uint16(iZoneId);                              // GROUP_UPDATE_FLAG_ZONE    data << uint16(iCoordX);                              // GROUP_UPDATE_FLAG_POSITION    data << uint16(iCoordY);                              // GROUP_UPDATE_FLAG_POSITION    uint64 auramask = 0;    size_t maskPos = data.wpos();    data << uint64(auramask);                               // placeholder    for (uint8 i = 0; i < MAX_AURAS; ++i)    {        if (uint32 aura = player->GetVisibleAura(i))        {            auramask |= (uint64(1) << i);            data << uint32(aura);            data << uint8(1);        }    }    data.put<uint64>(maskPos, auramask);                    // GROUP_UPDATE_FLAG_AURAS    if (pet)    {        Powers petpowertype = pet->GetPowerType();        data << pet->GetObjectGuid();                       // GROUP_UPDATE_FLAG_PET_GUID        data << pet->GetName();                             // GROUP_UPDATE_FLAG_PET_NAME        data << uint16(pet->GetDisplayId());                // GROUP_UPDATE_FLAG_PET_MODEL_ID        data << uint32(pet->GetHealth());                   // GROUP_UPDATE_FLAG_PET_CUR_HP        data << uint32(pet->GetMaxHealth());                // GROUP_UPDATE_FLAG_PET_MAX_HP        data << uint8(petpowertype);                        // GROUP_UPDATE_FLAG_PET_POWER_TYPE        data << uint16(pet->GetPower(petpowertype));        // GROUP_UPDATE_FLAG_PET_CUR_POWER        data << uint16(pet->GetMaxPower(petpowertype));     // GROUP_UPDATE_FLAG_PET_MAX_POWER        uint64 petauramask = 0;        size_t petMaskPos = data.wpos();        data << uint64(petauramask);                        // placeholder        for (uint8 i = 0; i < MAX_AURAS; ++i)        {            if (uint32 petaura = pet->GetVisibleAura(i))            {                petauramask |= (uint64(1) << i);//.........这里部分代码省略.........
开发者ID:ElunaLuaEngine,项目名称:ElunaMangosWotlk,代码行数:101,


示例11: SendQuestGiverOfferReward

void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, uint64 npcGUID, bool canComplete, bool closeOnCancel) const{    // We can always call to RequestItems, but this packet only goes out if there are actually    // items.  Otherwise, we'll skip straight to the OfferReward    std::string questTitle = quest->GetTitle();    std::string requestItemsText = quest->GetRequestItemsText();    int32 locale = _session->GetSessionDbLocaleIndex();    if (locale >= 0)    {        if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(quest->GetQuestId()))        {            ObjectMgr::GetLocaleString(localeData->Title, locale, questTitle);            ObjectMgr::GetLocaleString(localeData->RequestItemsText, locale, requestItemsText);        }    }    if (!quest->GetReqItemsCount() && canComplete)    {        SendQuestGiverOfferReward(quest, npcGUID, true);        return;    }    WorldPacket data(SMSG_QUESTGIVER_REQUEST_ITEMS, 50);    // guess size    data << uint64(npcGUID);    data << uint32(quest->GetQuestId());    data << questTitle;    data << requestItemsText;    data << uint32(0x00);                                   // unknown    if (canComplete)        data << quest->GetCompleteEmote();    else        data << quest->GetIncompleteEmote();    // Close Window after cancel    if (closeOnCancel)        data << uint32(0x01);    else        data << uint32(0x00);    data << uint32(quest->GetFlags());                      // 3.3.3 questFlags    data << uint32(quest->GetSuggestedPlayers());           // SuggestedGroupNum    // Required Money    data << uint32(quest->GetRewOrReqMoney() < 0 ? -quest->GetRewOrReqMoney() : 0);    data << uint32(quest->GetReqItemsCount());    for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)    {        if (!quest->RequiredItemId[i])            continue;        data << uint32(quest->RequiredItemId[i]);        data << uint32(quest->RequiredItemCount[i]);        if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i]))            data << uint32(itemTemplate->DisplayInfoID);        else            data << uint32(0);    }    if (!canComplete)        data << uint32(0x00);    else        data << uint32(0x03);    data << uint32(0x04);    data << uint32(0x08);    data << uint32(0x10);    _session->SendPacket(&data);    sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_QUESTGIVER_REQUEST_ITEMS NPCGuid=%u, questid=%u", GUID_LOPART(npcGUID), quest->GetQuestId());}
开发者ID:3kids,项目名称:TrinityCore,代码行数:76,


示例12: uint32

void BattlegroundBFG::FillInitialWorldStates(ByteBuffer &data){    const uint8 plusArray[] = { 0, 2, 3, 0, 1 };    // Node icons.    for (uint8 node = 0; node < GILNEAS_BG_DYNAMIC_NODES_COUNT; ++node)        data << uint32((m_Nodes[node] == 0) ? 1 : 0) << uint32(GILNEAS_BG_OP_NODEICONS[node]);    // Node occupied states.    for (uint8 node = 0; node < GILNEAS_BG_DYNAMIC_NODES_COUNT; ++node)        for (uint8 i = 1; i < GILNEAS_BG_DYNAMIC_NODES_COUNT; ++i)            data << uint32((m_Nodes[node] == i) ? 1 : 0) << uint32(GILNEAS_BG_OP_NODESTATES[node] + plusArray[i]);    // How many bases each team owns.    uint8 ally = 0, horde = 0;    for (uint8 node = 0; node < GILNEAS_BG_DYNAMIC_NODES_COUNT; ++node)    {        if (m_Nodes[node] == GILNEAS_BG_NODE_STATUS_ALLY_OCCUPIED)            ++ally;        else if (m_Nodes[node] == GILNEAS_BG_NODE_STATUS_HORDE_OCCUPIED)            ++horde;    }    data  << uint32(ally)  << uint32(GILNEAS_BG_OP_OCCUPIED_BASES_ALLY);    data  << uint32(horde) << uint32(GILNEAS_BG_OP_OCCUPIED_BASES_HORDE);    // Team scores.    data << uint32(GILNEAS_BG_MAX_TEAM_SCORE)             << uint32(GILNEAS_BG_OP_RESOURCES_MAX);    data << uint32(GILNEAS_BG_WARNING_NEAR_VICTORY_SCORE) << uint32(GILNEAS_BG_OP_RESOURCES_WARNING);    data << uint32(m_TeamScores[BG_TEAM_ALLIANCE])        << uint32(GILNEAS_BG_OP_RESOURCES_ALLY);    data << uint32(m_TeamScores[BG_TEAM_HORDE])           << uint32(GILNEAS_BG_OP_RESOURCES_HORDE);    // Other / Unknown.    // data << uint32(0x2)                               << uint32(0x745);           // 37 1861 unk}
开发者ID:Expery,项目名称:Core,代码行数:35,


示例13: RuleR

void Client::AddEXP(uint32 in_add_exp, uint8 conlevel, bool resexp) {	this->EVENT_ITEM_ScriptStopReturn();	uint32 add_exp = in_add_exp;	if(!resexp && (XPRate != 0))		add_exp = static_cast<uint32>(in_add_exp * (static_cast<float>(XPRate) / 100.0f));	if (m_epp.perAA<0 || m_epp.perAA>100)		m_epp.perAA=0;	// stop exploit with sanity check	uint32 add_aaxp;	if(resexp) {		add_aaxp = 0;	} else {		//figure out how much of this goes to AAs		add_aaxp = add_exp * m_epp.perAA / 100;		//take that ammount away from regular exp		add_exp -= add_aaxp;		float totalmod = 1.0;		float zemmod = 1.0;		//get modifiers		if(RuleR(Character, ExpMultiplier) >= 0){			totalmod *= RuleR(Character, ExpMultiplier);		}		if(zone->newzone_data.zone_exp_multiplier >= 0){			zemmod *= zone->newzone_data.zone_exp_multiplier;		}		if(RuleB(Character,UseRaceClassExpBonuses))		{			if(GetBaseRace() == HALFLING){				totalmod *= 1.05;			}			if(GetClass() == ROGUE || GetClass() == WARRIOR){				totalmod *= 1.05;			}		}		if(zone->IsHotzone())		{			totalmod += RuleR(Zone, HotZoneBonus);		}		add_exp = uint32(float(add_exp) * totalmod * zemmod);		if(RuleB(Character,UseXPConScaling))		{			if (conlevel != 0xFF && !resexp) {				switch (conlevel)				{					case CON_GREEN:						add_exp = 0;						add_aaxp = 0;						return;					case CON_LIGHTBLUE:							add_exp = add_exp * RuleI(Character, LightBlueModifier)/100;							add_aaxp = add_aaxp * RuleI(Character, LightBlueModifier)/100;						break;					case CON_BLUE:							add_exp = add_exp * RuleI(Character, BlueModifier)/100;							add_aaxp = add_aaxp * RuleI(Character, BlueModifier)/100;						break;					case CON_WHITE:							add_exp = add_exp * RuleI(Character, WhiteModifier)/100;							add_aaxp = add_aaxp * RuleI(Character, WhiteModifier)/100;						break;					case CON_YELLOW:							add_exp = add_exp * RuleI(Character, YellowModifier)/100;							add_aaxp = add_aaxp * RuleI(Character, YellowModifier)/100;						break;					case CON_RED:							add_exp = add_exp * RuleI(Character, RedModifier)/100;							add_aaxp = add_aaxp * RuleI(Character, RedModifier)/100;						break;				}			}		}		if (IsLeadershipEXPOn() && (conlevel == CON_BLUE || conlevel == CON_WHITE || conlevel == CON_YELLOW || conlevel == CON_RED)) {			add_exp = static_cast<uint32>(static_cast<float>(add_exp) * 0.8f);			if (GetGroup()) {				if (m_pp.group_leadership_points < MaxBankedGroupLeadershipPoints(GetLevel())						&& RuleI(Character, KillsPerGroupLeadershipAA) > 0) {					uint32 exp = GROUP_EXP_PER_POINT / RuleI(Character, KillsPerGroupLeadershipAA);					Client *mentoree = GetGroup()->GetMentoree();					if (GetGroup()->GetMentorPercent() && mentoree &&							mentoree->GetGroupPoints() < MaxBankedGroupLeadershipPoints(mentoree->GetLevel())) {						uint32 mentor_exp = exp * (GetGroup()->GetMentorPercent() / 100.0f);						exp -= mentor_exp;						mentoree->AddLeadershipEXP(mentor_exp, 0); // ends up rounded down						mentoree->Message_StringID(MT_Leadership, GAIN_GROUP_LEADERSHIP_EXP);					}					if (exp > 0) { // possible if you mentor 100% to the other client//.........这里部分代码省略.........
开发者ID:artemyse,项目名称:Server,代码行数:101,


示例14: SetHordeFlagPicker

void BattlegroundWS::EventPlayerDroppedFlag(Player* Source){    if (GetStatus() != STATUS_IN_PROGRESS)    {        // if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages        // just take off the aura        if (Source->GetTeam() == ALLIANCE)        {            if (!this->IsHordeFlagPickedup())                return;            if (GetFlagPickerGUID(BG_TEAM_HORDE) == Source->GetGUID())            {                SetHordeFlagPicker(0);                Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            }        }        else        {            if (!this->IsAllianceFlagPickedup())                return;            if (GetFlagPickerGUID(BG_TEAM_ALLIANCE) == Source->GetGUID())            {                SetAllianceFlagPicker(0);                Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            }        }        return;    }    bool set = false;    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        if (GetFlagPickerGUID(BG_TEAM_HORDE) == Source->GetGUID())        {            SetHordeFlagPicker(0);            Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            if (m_FlagDebuffState == 1)              Source->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);            if (m_FlagDebuffState == 2)              Source->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);            m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_GROUND;            Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG_DROPPED, true);            set = true;        }    }    else    {        if (!IsAllianceFlagPickedup())            return;        if (GetFlagPickerGUID(BG_TEAM_ALLIANCE) == Source->GetGUID())        {            SetAllianceFlagPicker(0);            Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            if (m_FlagDebuffState == 1)              Source->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);            if (m_FlagDebuffState == 2)              Source->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);            m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_GROUND;            Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG_DROPPED, true);            set = true;        }    }    if (set)    {        Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);        UpdateFlagState(Source->GetTeam(), 1);        if (Source->GetTeam() == ALLIANCE)        {            SendMessageToAll(LANG_BG_WS_DROPPED_HF, CHAT_MSG_BG_SYSTEM_HORDE, Source);            UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1));        }        else        {            SendMessageToAll(LANG_BG_WS_DROPPED_AF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);            UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1));        }        m_FlagsDropTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;    }}
开发者ID:hodobaj,项目名称:Darkcore,代码行数:85,


示例15: EndBattleground

void BattlegroundWS::PostUpdateImpl(uint32 diff){    if (GetStatus() == STATUS_IN_PROGRESS)    {        if (GetStartTime() >= 25*MINUTE*IN_MILLISECONDS)        {            if (GetTeamScore(ALLIANCE) == 0)            {                if (GetTeamScore(HORDE) == 0)        // No one scored - result is tie                    EndBattleground(0);                else                                 // Horde has more points and thus wins                    EndBattleground(HORDE);            }            else if (GetTeamScore(HORDE) == 0)                EndBattleground(ALLIANCE);           // Alliance has > 0, Horde has 0, alliance wins            else if (GetTeamScore(HORDE) == GetTeamScore(ALLIANCE)) // Team score equal, winner is team that scored the last flag                EndBattleground(m_LastFlagCaptureTeam);            else if (GetTeamScore(HORDE) > GetTeamScore(ALLIANCE))  // Last but not least, check who has the higher score                EndBattleground(HORDE);            else                EndBattleground(ALLIANCE);        }        else if (GetStartTime() > uint32(m_minutesElapsed * MINUTE * IN_MILLISECONDS))        {            ++m_minutesElapsed;            UpdateWorldState(BG_WS_STATE_TIMER, 25 - m_minutesElapsed);        }        if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_WAIT_RESPAWN)        {            m_FlagsTimer[BG_TEAM_ALLIANCE] -= diff;            if (m_FlagsTimer[BG_TEAM_ALLIANCE] < 0)            {                m_FlagsTimer[BG_TEAM_ALLIANCE] = 0;                RespawnFlag(ALLIANCE, true);            }        }        if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_ON_GROUND)        {            m_FlagsDropTimer[BG_TEAM_ALLIANCE] -= diff;            if (m_FlagsDropTimer[BG_TEAM_ALLIANCE] < 0)            {                m_FlagsDropTimer[BG_TEAM_ALLIANCE] = 0;                RespawnFlagAfterDrop(ALLIANCE);                m_BothFlagsKept = false;            }        }        if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_WAIT_RESPAWN)        {            m_FlagsTimer[BG_TEAM_HORDE] -= diff;            if (m_FlagsTimer[BG_TEAM_HORDE] < 0)            {                m_FlagsTimer[BG_TEAM_HORDE] = 0;                RespawnFlag(HORDE, true);            }        }        if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_GROUND)        {            m_FlagsDropTimer[BG_TEAM_HORDE] -= diff;            if (m_FlagsDropTimer[BG_TEAM_HORDE] < 0)            {                m_FlagsDropTimer[BG_TEAM_HORDE] = 0;                RespawnFlagAfterDrop(HORDE);                m_BothFlagsKept = false;            }        }        if (m_BothFlagsKept)        {          m_FlagSpellForceTimer += diff;          if (m_FlagDebuffState == 0 && m_FlagSpellForceTimer >= 600000)  //10 minutes          {            if (Player* player = ObjectAccessor::FindPlayer(m_FlagKeepers[0]))              player->CastSpell(player, WS_SPELL_FOCUSED_ASSAULT, true);            if (Player* player = ObjectAccessor::FindPlayer(m_FlagKeepers[1]))              player->CastSpell(player, WS_SPELL_FOCUSED_ASSAULT, true);            m_FlagDebuffState = 1;          }          else if (m_FlagDebuffState == 1 && m_FlagSpellForceTimer >= 900000) //15 minutes          {            if (Player* player = ObjectAccessor::FindPlayer(m_FlagKeepers[0]))            {              player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);              player->CastSpell(player, WS_SPELL_BRUTAL_ASSAULT, true);            }            if (Player* player = ObjectAccessor::FindPlayer(m_FlagKeepers[1]))            {              player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);              player->CastSpell(player, WS_SPELL_BRUTAL_ASSAULT, true);            }            m_FlagDebuffState = 2;          }        }        else//.........这里部分代码省略.........
开发者ID:hodobaj,项目名称:Darkcore,代码行数:101,


示例16: reward

void WorldSession::HandleQuestGiverChooseRewardOpcode(WorldPacket & recv_data){    uint32 quest, reward;    uint64 guid;    recv_data >> guid >> quest >> reward;    if (reward >= QUEST_REWARD_CHOICES_COUNT)    {        sLog->outError("Error in CMSG_QUESTGIVER_CHOOSE_REWARD: player %s (guid %d) tried to get invalid reward (%u) (probably packet hacking)", _player->GetName(), _player->GetGUIDLow(), reward);        return;    }    if (!GetPlayer()->isAlive())        return;    sLog->outDebug("WORLD: Received CMSG_QUESTGIVER_CHOOSE_REWARD npc = %u, quest = %u, reward = %u",uint32(GUID_LOPART(guid)),quest,reward);    Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_PLAYER);    if (!pObject)        return;    if(!IS_PLAYER_GUID(guid))        if (!pObject->hasInvolvedQuest(quest))            return;    Quest const *pQuest = sObjectMgr->GetQuestTemplate(quest);    if (pQuest)    {        if (_player->CanRewardQuest(pQuest, reward, true))        {            _player->RewardQuest(pQuest, reward, pObject);            switch(pObject->GetTypeId())            {                case TYPEID_UNIT:                    if (!(sScriptMgr->OnQuestReward(_player, (pObject->ToCreature()), pQuest, reward)))                    {                        // Send next quest                        if (Quest const* nextquest = _player->GetNextQuest(guid ,pQuest))                            _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest,guid,true);                        (pObject->ToCreature())->AI()->sQuestReward(_player, pQuest, reward);                    }                    break;                case TYPEID_GAMEOBJECT:                    if (!sScriptMgr->OnQuestReward(_player, ((GameObject*)pObject), pQuest, reward))                    {                        // Send next quest                        if (Quest const* nextquest = _player->GetNextQuest(guid ,pQuest))                            _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest,guid,true);                        pObject->ToGameObject()->AI()->QuestReward(_player, pQuest, reward);                    }                    break;                case TYPEID_PLAYER: break;                default:                    break;            }        }        else            _player->PlayerTalkClass->SendQuestGiverOfferReward(pQuest, guid, true);        // Don't forget to close window.        _player->SendQuestWindowClose(pQuest->GetQuestId());    }    // Now save player every accept/deliver a quest    if (_player)        _player->SaveToDB();}
开发者ID:wuhongyi1977,项目名称:StrawberryCore,代码行数:69,


示例17: uint32

void BattlegroundWS::FillInitialWorldStates(WorldPacket& data){    data << uint32(BG_WS_FLAG_CAPTURES_ALLIANCE) << uint32(GetTeamScore(ALLIANCE));    data << uint32(BG_WS_FLAG_CAPTURES_HORDE) << uint32(GetTeamScore(HORDE));    if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_ON_GROUND)        data << uint32(BG_WS_FLAG_UNK_ALLIANCE) << uint32(-1);    else if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_ON_PLAYER)        data << uint32(BG_WS_FLAG_UNK_ALLIANCE) << uint32(1);    else        data << uint32(BG_WS_FLAG_UNK_ALLIANCE) << uint32(0);    if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_GROUND)        data << uint32(BG_WS_FLAG_UNK_HORDE) << uint32(-1);    else if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_PLAYER)        data << uint32(BG_WS_FLAG_UNK_HORDE) << uint32(1);    else        data << uint32(BG_WS_FLAG_UNK_HORDE) << uint32(0);    data << uint32(BG_WS_FLAG_CAPTURES_MAX) << uint32(BG_WS_MAX_TEAM_SCORE);    if (GetStatus() == STATUS_IN_PROGRESS)    {        data << uint32(BG_WS_STATE_TIMER_ACTIVE) << uint32(1);        data << uint32(BG_WS_STATE_TIMER) << uint32(25-m_minutesElapsed);    }    else        data << uint32(BG_WS_STATE_TIMER_ACTIVE) << uint32(0);    if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_PLAYER)        data << uint32(BG_WS_FLAG_STATE_ALLIANCE) << uint32(2);    else        data << uint32(BG_WS_FLAG_STATE_ALLIANCE) << uint32(1);    if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_ON_PLAYER)        data << uint32(BG_WS_FLAG_STATE_HORDE) << uint32(2);    else        data << uint32(BG_WS_FLAG_STATE_HORDE) << uint32(1);}
开发者ID:hodobaj,项目名称:Darkcore,代码行数:39,


示例18: questgiver

void WorldSession::HandleQuestGiverStatusQueryOpcode(WorldPacket & recv_data){    uint64 guid;    recv_data >> guid;    uint32 questStatus = DIALOG_STATUS_NONE;    uint32 defstatus = DIALOG_STATUS_NONE;    Object* questgiver = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);    if (!questgiver)    {        sLog->outDetail("Error in CMSG_QUESTGIVER_STATUS_QUERY, called for not found questgiver (Typeid: %u GUID: %u)",GuidHigh2TypeId(GUID_HIPART(guid)),GUID_LOPART(guid));        return;    }    switch(questgiver->GetTypeId())    {        case TYPEID_UNIT:        {            sLog->outDebug("WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for npc, guid = %u",uint32(GUID_LOPART(guid)));            Creature* cr_questgiver=questgiver->ToCreature();            if (!cr_questgiver->IsHostileTo(_player))       // do not show quest status to enemies            {                questStatus = sScriptMgr->GetDialogStatus(_player, cr_questgiver);                if (questStatus > 6)                    questStatus = getDialogStatus(_player, cr_questgiver, defstatus);            }            break;        }        case TYPEID_GAMEOBJECT:        {            sLog->outDebug("WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for GameObject guid = %u",uint32(GUID_LOPART(guid)));            GameObject* go_questgiver=(GameObject*)questgiver;            questStatus = sScriptMgr->GetDialogStatus(_player, go_questgiver);            if (questStatus > 6)                questStatus = getDialogStatus(_player, go_questgiver, defstatus);            break;        }        default:            sLog->outError("QuestGiver called for unexpected type %u", questgiver->GetTypeId());            break;    }    //inform client about status of quest    _player->PlayerTalkClass->SendQuestGiverStatus(questStatus, guid);}
开发者ID:wuhongyi1977,项目名称:StrawberryCore,代码行数:45,


示例19: COUNT

void WorldSession::SendPetitionQueryOpcode(uint64 petitionguid){    uint64 ownerguid = 0;    uint32 type;    std::string name = "NO_NAME_FOR_GUID";    uint8 signs = 0;    QueryResult_AutoPtr result = CharacterDatabase.PQuery(        "SELECT ownerguid, name, "        "  (SELECT COUNT(playerguid) FROM petition_sign WHERE petition_sign.petitionguid = '%u') AS signs, "        "  type "        "FROM petition WHERE petitionguid = '%u'", GUID_LOPART(petitionguid), GUID_LOPART(petitionguid));    if (result)    {        Field* fields = result->Fetch();        ownerguid = MAKE_NEW_GUID(fields[0].GetUInt32(), 0, HIGHGUID_PLAYER);        name      = fields[1].GetCppString();        signs     = fields[2].GetUInt8();        type      = fields[3].GetUInt32();    }    else    {        sLog->outDebug("CMSG_PETITION_QUERY failed for petition (GUID: %u)", GUID_LOPART(petitionguid));        return;    }    WorldPacket data(SMSG_PETITION_QUERY_RESPONSE, (4+8+name.size()+1+1+4*13));    data << GUID_LOPART(petitionguid);                      // guild/team guid (in Trinity always same as GUID_LOPART(petition guid)    data << ownerguid;                                      // charter owner guid    data << name;                                           // name (guild/arena team)    data << uint8(0);                                       // 1    if (type == 9)    {        data << uint32(9);        data << uint32(9);        data << uint32(0);                                  // bypass client - side limitation, a different value is needed here for each petition    }    else    {        data << type-1;        data << type-1;        data << type;                                       // bypass client - side limitation, a different value is needed here for each petition    }    data << uint32(0);                                      // 5    data << uint32(0);                                      // 6    data << uint32(0);                                      // 7    data << uint32(0);                                      // 8    data << uint16(0);                                      // 9 2 bytes field    data << uint32(0);                                      // 10    data << uint32(0);                                      // 11    data << uint32(0);                                      // 13 count of next strings?    data << uint32(0);                                      // 14    if (type == 9)        data << uint32(0);                                  // 15 0 - guild, 1 - arena team    else        data << uint32(1);    SendPacket(&data);}
开发者ID:Maczuga,项目名称:SkyFire_one,代码行数:61,


示例20: SF_LOG_DEBUG

bool AddonHandler::BuildAddonPacket(WorldPacket* source, WorldPacket* target){    ByteBuffer AddOnPacked;    uLongf AddonRealSize;    uint32 CurrentPosition;    uint32 TempValue;    // broken addon packet, can't be received from real client    if (source->rpos() + 4 > source->size())        return false;    *source >> TempValue;                                   // get real size of the packed structure    // empty addon packet, nothing process, can't be received from real client    if (!TempValue)        return false;    AddonRealSize = TempValue;                              // temp value because ZLIB only excepts uLongf    CurrentPosition = source->rpos();                       // get the position of the pointer in the structure    AddOnPacked.resize(AddonRealSize);                      // resize target for zlib action    if (uncompress(AddOnPacked.contents(), &AddonRealSize, source->contents() + CurrentPosition, source->size() - CurrentPosition) == Z_OK)    {        target->Initialize(SMSG_ADDON_INFO);        uint32 addonsCount;        AddOnPacked >> addonsCount;                         // addons count?        for (uint32 i = 0; i < addonsCount; ++i)        {            std::string addonName;            uint8 enabled;            uint32 crc, unk2;            // check next addon data format correctness            if (AddOnPacked.rpos()+1 > AddOnPacked.size())                return false;            AddOnPacked >> addonName;            // recheck next addon data format correctness            if (AddOnPacked.rpos()+1+4+4 > AddOnPacked.size())                return false;            AddOnPacked >> enabled >> crc >> unk2;            SF_LOG_DEBUG("network", "ADDON: Name: %s, Enabled: 0x%x, CRC: 0x%x, Unknown2: 0x%x", addonName.c_str(), enabled, crc, unk2);            uint8 state = (enabled ? 2 : 1);            *target << uint8(state);            uint8 unk1 = (enabled ? 1 : 0);            *target << uint8(unk1);            if (unk1)            {                uint8 unk = (crc != 0x4c1c776d);           // If addon is Standard addon CRC                *target << uint8(unk);                if (unk)                {                    unsigned char tdata[256] =                    {                        0xC3, 0x5B, 0x50, 0x84, 0xB9, 0x3E, 0x32, 0x42, 0x8C, 0xD0, 0xC7, 0x48, 0xFA, 0x0E, 0x5D, 0x54,                        0x5A, 0xA3, 0x0E, 0x14, 0xBA, 0x9E, 0x0D, 0xB9, 0x5D, 0x8B, 0xEE, 0xB6, 0x84, 0x93, 0x45, 0x75,                        0xFF, 0x31, 0xFE, 0x2F, 0x64, 0x3F, 0x3D, 0x6D, 0x07, 0xD9, 0x44, 0x9B, 0x40, 0x85, 0x59, 0x34,                        0x4E, 0x10, 0xE1, 0xE7, 0x43, 0x69, 0xEF, 0x7C, 0x16, 0xFC, 0xB4, 0xED, 0x1B, 0x95, 0x28, 0xA8,                        0x23, 0x76, 0x51, 0x31, 0x57, 0x30, 0x2B, 0x79, 0x08, 0x50, 0x10, 0x1C, 0x4A, 0x1A, 0x2C, 0xC8,                        0x8B, 0x8F, 0x05, 0x2D, 0x22, 0x3D, 0xDB, 0x5A, 0x24, 0x7A, 0x0F, 0x13, 0x50, 0x37, 0x8F, 0x5A,                        0xCC, 0x9E, 0x04, 0x44, 0x0E, 0x87, 0x01, 0xD4, 0xA3, 0x15, 0x94, 0x16, 0x34, 0xC6, 0xC2, 0xC3,                        0xFB, 0x49, 0xFE, 0xE1, 0xF9, 0xDA, 0x8C, 0x50, 0x3C, 0xBE, 0x2C, 0xBB, 0x57, 0xED, 0x46, 0xB9,                        0xAD, 0x8B, 0xC6, 0xDF, 0x0E, 0xD6, 0x0F, 0xBE, 0x80, 0xB3, 0x8B, 0x1E, 0x77, 0xCF, 0xAD, 0x22,                        0xCF, 0xB7, 0x4B, 0xCF, 0xFB, 0xF0, 0x6B, 0x11, 0x45, 0x2D, 0x7A, 0x81, 0x18, 0xF2, 0x92, 0x7E,                        0x98, 0x56, 0x5D, 0x5E, 0x69, 0x72, 0x0A, 0x0D, 0x03, 0x0A, 0x85, 0xA2, 0x85, 0x9C, 0xCB, 0xFB,                        0x56, 0x6E, 0x8F, 0x44, 0xBB, 0x8F, 0x02, 0x22, 0x68, 0x63, 0x97, 0xBC, 0x85, 0xBA, 0xA8, 0xF7,                        0xB5, 0x40, 0x68, 0x3C, 0x77, 0x86, 0x6F, 0x4B, 0xD7, 0x88, 0xCA, 0x8A, 0xD7, 0xCE, 0x36, 0xF0,                        0x45, 0x6E, 0xD5, 0x64, 0x79, 0x0F, 0x17, 0xFC, 0x64, 0xDD, 0x10, 0x6F, 0xF3, 0xF5, 0xE0, 0xA6,                        0xC3, 0xFB, 0x1B, 0x8C, 0x29, 0xEF, 0x8E, 0xE5, 0x34, 0xCB, 0xD1, 0x2A, 0xCE, 0x79, 0xC3, 0x9A,                        0x0D, 0x36, 0xEA, 0x01, 0xE0, 0xAA, 0x91, 0x20, 0x54, 0xF0, 0x72, 0xD8, 0x1E, 0xC7, 0x89, 0xD2                    };                    target->append(tdata, sizeof(tdata));                }                *target << uint32(0);            }            uint8 unk3 = (enabled ? 0 : 1);            *target << uint8(unk3);            if (unk3)            {                // String, 256 (null terminated?)                *target << uint8(0);            }        }        uint32 unk4;        AddOnPacked >> unk4;        uint32 count = 0;        *target << uint32(count);//.........这里部分代码省略.........
开发者ID:ChipLeo,项目名称:SkyFire_5xx,代码行数:101,



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


C++ uint32_to_bin函数代码示例
C++ uint256S函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。