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

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

51自学网 2021-06-01 20:59:52
  C++
这篇教程C++ GUID_LOPART函数代码示例写得很实用,希望能帮到您。

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

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

示例1: TC_LOG_ERROR

void WorldSession::HandleEjectPassenger(WorldPacket& data){    Vehicle* vehicle = _player->GetVehicleKit();    if (!vehicle)    {        data.rfinish();                                     // prevent warnings spam        TC_LOG_ERROR("network", "HandleEjectPassenger: Player %u is not in a vehicle!", GetPlayer()->GetGUIDLow());        return;    }	uint64 guid;	data >> guid;    if (IS_PLAYER_GUID(guid))    {        Player* player = ObjectAccessor::FindPlayer(guid);        if (!player)        {            TC_LOG_ERROR("network", "Player %u tried to eject player %u from vehicle, but the latter was not found in world!", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));            return;        }        if (!player->IsOnVehicle(vehicle->GetBase()))        {            TC_LOG_ERROR("network", "Player %u tried to eject player %u, but they are not in the same vehicle", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));            return;        }        VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(player);        ASSERT(seat);        if (seat->IsEjectable())            player->ExitVehicle();        else            TC_LOG_ERROR("network", "Player %u attempted to eject player %u from non-ejectable seat.", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));    }    else if (IS_CREATURE_GUID(guid))    {        Unit* unit = ObjectAccessor::GetUnit(*_player, guid);        if (!unit) // creatures can be ejected too from player mounts        {            TC_LOG_ERROR("network", "Player %u tried to eject creature guid %u from vehicle, but the latter was not found in world!", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));            return;        }        if (!unit->IsOnVehicle(vehicle->GetBase()))        {            TC_LOG_ERROR("network", "Player %u tried to eject unit %u, but they are not in the same vehicle", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));            return;        }        VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(unit);        ASSERT(seat);        if (seat->IsEjectable())        {            ASSERT(GetPlayer() == vehicle->GetBase());            unit->ExitVehicle();        }        else            TC_LOG_ERROR("network", "Player %u attempted to eject creature GUID %u from non-ejectable seat.", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));    }    else        TC_LOG_ERROR("network", "HandleEjectPassenger: Player %u tried to eject invalid GUID " UI64FMTD, GetPlayer()->GetGUIDLow(), guid);}
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:62,


示例2: GetId

void ArenaTeam::SaveToDB(){    // save team and member stats to db    // called after a match has ended, or when calculating arena_points    SQLTransaction trans = CharacterDatabase.BeginTransaction();    trans->PAppend("UPDATE arena_team_stats SET rating = '%u',games = '%u',played = '%u',rank = '%u',wins = '%u',wins2 = '%u' WHERE arenateamid = '%u'", m_stats.rating, m_stats.games_week, m_stats.games_season, m_stats.rank, m_stats.wins_week, m_stats.wins_season, GetId());    for (MemberList::const_iterator itr = m_members.begin(); itr !=  m_members.end(); ++itr)    {        trans->PAppend("UPDATE arena_team_member SET played_week = '%u', wons_week = '%u', played_season = '%u', wons_season = '%u' WHERE arenateamid = '%u' AND guid = '%u'", itr->games_week, itr->wins_week, itr->games_season, itr->wins_season, m_TeamId, GUID_LOPART(itr->guid));        trans->PAppend("REPLACE INTO character_arena_stats (guid,slot,personal_rating,matchmaker_rating) VALUES ('%u', '%u', '%u', '%u')", GUID_LOPART(itr->guid), GetSlot(), itr->personal_rating, itr->matchmaker_rating);    }    CharacterDatabase.CommitTransaction(trans);}
开发者ID:sensibob,项目名称:tempestcore,代码行数:13,


示例3: uint32

void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket & recv_data){    uint64 guid;    uint32 questId;    uint8 unk1;    recv_data >> guid >> questId >> unk1;    sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %u, quest = %u, unk1 = %u", uint32(GUID_LOPART(guid)), questId, unk1);    // Verify that the guid is valid and is a questgiver or involved in the requested quest    Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM);    if (!object || (!object->hasQuest(questId) && !object->hasInvolvedQuest(questId)))    {        _player->PlayerTalkClass->SendCloseGossip();        return;    }    Quest const* quest = sObjectMgr->GetQuestTemplate(questId);    if (quest)    {        // not sure here what should happen to quests with QUEST_FLAGS_AUTOCOMPLETE        // if this breaks them, add && object->GetTypeId() == TYPEID_ITEM to this check        // item-started quests never have that flag        if (!_player->CanTakeQuest(quest, true))            return;        if (quest->IsAutoAccept() && _player->CanAddQuest(quest, true))        {            _player->AddQuest(quest, object);            if (_player->CanCompleteQuest(questId))                _player->CompleteQuest(questId);        }        if (quest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))            _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, object->GetGUID(), _player->CanCompleteQuest(quest->GetQuestId()), true);        else            _player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, object->GetGUID(), true);    }}
开发者ID:Abrosia,项目名称:Ambrosia,代码行数:38,


示例4: GUID_LOPART

bool ArenaTeam::AddMember(const uint64& PlayerGuid){    std::string plName;    uint8 plClass;    uint32 plPRating;    uint32 plMMRating;    // arena team is full (can't have more than type * 2 players!)    if (GetMembersSize() >= GetType() * 2)        return false;    Player *pl = sObjectMgr.GetPlayer(PlayerGuid);    if (pl)    {        if (pl->GetArenaTeamId(GetSlot()))        {            sLog.outError("Arena::AddMember() : player already in this sized team");            return false;        }        plClass = pl->getClass();        plName = pl->GetName();    }    else    {        //                                                     0     1        QueryResult result = CharacterDatabase.PQuery("SELECT name, class FROM characters WHERE guid='%u'", GUID_LOPART(PlayerGuid));        if (!result)            return false;        plName = (*result)[0].GetString();        plClass = (*result)[1].GetUInt8();        // check if player already in arenateam of that size        if (Player::GetArenaTeamIdFromDB(PlayerGuid, GetType()) != 0)        {            sLog.outError("Arena::AddMember() : player already in this sized team");            return false;        }    }    plMMRating = sWorld.getIntConfig(CONFIG_ARENA_START_MATCHMAKER_RATING);    plPRating = sWorld.getIntConfig(CONFIG_ARENA_START_PERSONAL_RATING);    QueryResult result = CharacterDatabase.PQuery("SELECT matchmaker_rating FROM character_arena_stats WHERE guid='%u' AND slot='%u'", GUID_LOPART(PlayerGuid), GetSlot());    if (result)        plMMRating = (*result)[0].GetUInt32();    // remove all player signs from another petitions    // this will be prevent attempt joining player to many arenateams and corrupt arena team data integrity    Player::RemovePetitionsAndSigns(PlayerGuid, GetType());    ArenaTeamMember newmember;    newmember.name              = plName;    newmember.guid              = PlayerGuid;    newmember.Class             = plClass;    newmember.games_season      = 0;    newmember.games_week        = 0;    newmember.wins_season       = 0;    newmember.wins_week         = 0;    newmember.personal_rating   = plPRating;    newmember.matchmaker_rating = plMMRating;    m_members.push_back(newmember);    CharacterDatabase.PExecute("INSERT INTO arena_team_member (arenateamid, guid) VALUES ('%u', '%u')", m_TeamId, GUID_LOPART(newmember.guid));    if (pl)    {        pl->SetInArenaTeam(m_TeamId, GetSlot(), GetType());        pl->SetArenaTeamIdInvited(0);        // hide promote/remove buttons        if (m_CaptainGuid != PlayerGuid)            pl->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_MEMBER, 1);        sLog.outArena("Player: %s [GUID: %u] joined arena team type: %u [Id: %u].", pl->GetName(), pl->GetGUIDLow(), GetType(), GetId());    }    return true;}
开发者ID:sensibob,项目名称:tempestcore,代码行数:79,


示例5: TC_LOG_DEBUG

void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket){    ObjectGuid targetGuid;    targetGuid[7] = recvPacket.ReadBit();    targetGuid[1] = recvPacket.ReadBit();    targetGuid[5] = recvPacket.ReadBit();    targetGuid[6] = recvPacket.ReadBit();    targetGuid[2] = recvPacket.ReadBit();    targetGuid[3] = recvPacket.ReadBit();    targetGuid[0] = recvPacket.ReadBit();    targetGuid[4] = recvPacket.ReadBit();    recvPacket.ReadByteSeq(targetGuid[1]);    recvPacket.ReadByteSeq(targetGuid[2]);    recvPacket.ReadByteSeq(targetGuid[7]);    recvPacket.ReadByteSeq(targetGuid[5]);    recvPacket.ReadByteSeq(targetGuid[6]);    recvPacket.ReadByteSeq(targetGuid[0]);    recvPacket.ReadByteSeq(targetGuid[4]);    recvPacket.ReadByteSeq(targetGuid[3]);    TC_LOG_DEBUG("guild", "CMSG_GUILD_DEMOTE [%s]: Target: %u", GetPlayerInfo().c_str(), GUID_LOPART(targetGuid));    if (Guild* guild = GetPlayer()->GetGuild())        guild->HandleUpdateMemberRank(this, targetGuid, true);}
开发者ID:Destalker,项目名称:SkyFire_5xx,代码行数:27,


示例6: TC_LOG_ERROR

//remove player from queue and from group info, if group info is empty then remove it toovoid BattlegroundQueue::RemovePlayer(uint64 guid, bool decreaseInvitedCount){    int32 bracket_id = -1;                                     // signed for proper for-loop finish    QueuedPlayersMap::iterator itr;    //remove player from map, if he's there    itr = m_QueuedPlayers.find(guid);    if (itr == m_QueuedPlayers.end())    {        std::string playerName = "Unknown";        if (Player* player = ObjectAccessor::FindPlayer(guid))            playerName = player->GetName();        TC_LOG_ERROR("bg.battleground", "BattlegroundQueue: couldn't find player %s (GUID: %u)", playerName.c_str(), GUID_LOPART(guid));        return;    }    GroupQueueInfo* group = itr->second.GroupInfo;    GroupsQueueType::iterator group_itr;    // mostly people with the highest levels are in battlegrounds, thats why    // we count from MAX_BATTLEGROUND_QUEUES - 1 to 0    uint32 index = (group->Team == HORDE) ? BG_QUEUE_PREMADE_HORDE : BG_QUEUE_PREMADE_ALLIANCE;    for (int32 bracket_id_tmp = MAX_BATTLEGROUND_BRACKETS - 1; bracket_id_tmp >= 0 && bracket_id == -1; --bracket_id_tmp)    {        //we must check premade and normal team's queue - because when players from premade are joining bg,        //they leave groupinfo so we can't use its players size to find out index        for (uint32 j = index; j < BG_QUEUE_GROUP_TYPES_COUNT; j += BG_TEAMS_COUNT)        {            GroupsQueueType::iterator k = m_QueuedGroups[bracket_id_tmp][j].begin();            for (; k != m_QueuedGroups[bracket_id_tmp][j].end(); ++k)            {                if ((*k) == group)                {                    bracket_id = bracket_id_tmp;                    group_itr = k;                    //we must store index to be able to erase iterator                    index = j;                    break;                }            }        }    }    //player can't be in queue without group, but just in case    if (bracket_id == -1)    {        TC_LOG_ERROR("bg.battleground", "BattlegroundQueue: ERROR Cannot find groupinfo for player GUID: %u", GUID_LOPART(guid));        return;    }    TC_LOG_DEBUG("bg.battleground", "BattlegroundQueue: Removing player GUID %u, from bracket_id %u", GUID_LOPART(guid), (uint32)bracket_id);    // ALL variables are correctly set    // We can ignore leveling up in queue - it should not cause crash    // remove player from group    // if only one player there, remove group    // remove player queue info from group queue info    std::map<uint64, PlayerQueueInfo*>::iterator pitr = group->Players.find(guid);    if (pitr != group->Players.end())        group->Players.erase(pitr);    // if invited to bg, and should decrease invited count, then do it    if (decreaseInvitedCount && group->IsInvitedToBGInstanceGUID)        if (Battleground* bg = sBattlegroundMgr->GetBattleground(group->IsInvitedToBGInstanceGUID, group->BgTypeId))            bg->DecreaseInvitedCount(group->Team);    // remove player queue info    m_QueuedPlayers.erase(itr);    // announce to world if arena team left queue for rated match, show only once    if (group->ArenaType && group->IsRated && group->Players.empty() && sWorld->getBoolConfig(CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE))        if (ArenaTeam* Team = sArenaTeamMgr->GetArenaTeamById(group->ArenaTeamId))            sWorld->SendWorldText(LANG_ARENA_QUEUE_ANNOUNCE_WORLD_EXIT, Team->GetName().c_str(), group->ArenaType, group->ArenaType, group->ArenaTeamRating);    // if player leaves queue and he is invited to rated arena match, then he have to lose    if (group->IsInvitedToBGInstanceGUID && group->IsRated && decreaseInvitedCount)    {        if (ArenaTeam* at = sArenaTeamMgr->GetArenaTeamById(group->ArenaTeamId))        {            TC_LOG_DEBUG("bg.battleground", "UPDATING memberLost's personal arena rating for %u by opponents rating: %u", GUID_LOPART(guid), group->OpponentsTeamRating);            if (Player* player = ObjectAccessor::FindPlayer(guid))                at->MemberLost(player, group->OpponentsMatchmakerRating);            else                at->OfflineMemberLost(guid, group->OpponentsMatchmakerRating);            at->SaveToDB();        }    }    // remove group queue info if needed    if (group->Players.empty())    {        m_QueuedGroups[bracket_id][index].erase(group_itr);        delete group;        return;    }    // if group wasn't empty, so it wasn't deleted, and player have left a rated    // queue -> everyone from the group should leave too//.........这里部分代码省略.........
开发者ID:SunnyTheCool,项目名称:ArkCORE-NG,代码行数:101,


示例7: SendAuctionCommandResult

//this void creates new auction and adds auction to some auctionhousevoid WorldSession::HandleAuctionSellItem(WorldPacket& recvData){    uint64 auctioneer, bid, buyout;    uint32 itemsCount, etime;    recvData >> auctioneer;    recvData >> itemsCount;    uint64 itemGUIDs[MAX_AUCTION_ITEMS]; // 160 slot = 4x 36 slot bag + backpack 16 slot    uint32 count[MAX_AUCTION_ITEMS];    if (itemsCount > MAX_AUCTION_ITEMS)    {        SendAuctionCommandResult(NULL, AUCTION_SELL_ITEM, ERR_AUCTION_DATABASE_ERROR);        return;    }    for (uint32 i = 0; i < itemsCount; ++i)    {        recvData >> itemGUIDs[i];        recvData >> count[i];        if (!itemGUIDs[i] || !count[i] || count[i] > 1000 )            return;    }    recvData >> bid;    recvData >> buyout;    recvData >> etime;    if (!bid || !etime)        return;    Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(auctioneer, UNIT_NPC_FLAG_AUCTIONEER);    if (!creature)    {        sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: HandleAuctionSellItem - Unit (GUID: %u) not found or you can't interact with him.", GUID_LOPART(auctioneer));        return;    }    AuctionHouseEntry const* auctionHouseEntry = AuctionHouseMgr::GetAuctionHouseEntry(creature->getFaction());    if (!auctionHouseEntry)    {        sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: HandleAuctionSellItem - Unit (GUID: %u) has wrong faction.", GUID_LOPART(auctioneer));        return;    }    etime *= MINUTE;    switch (etime)    {        case 1*MIN_AUCTION_TIME:        case 2*MIN_AUCTION_TIME:        case 4*MIN_AUCTION_TIME:            break;        default:            return;    }    if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))        GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);    Item* items[MAX_AUCTION_ITEMS];    uint32 finalCount = 0;    for (uint32 i = 0; i < itemsCount; ++i)    {        Item* item = _player->GetItemByGuid(itemGUIDs[i]);        if (!item)        {            SendAuctionCommandResult(NULL, AUCTION_SELL_ITEM, ERR_AUCTION_ITEM_NOT_FOUND);            return;        }        if (sAuctionMgr->GetAItem(item->GetGUIDLow()) || !item->CanBeTraded() || item->IsNotEmptyBag() ||            item->GetTemplate()->Flags & ITEM_PROTO_FLAG_CONJURED || item->GetUInt32Value(ITEM_FIELD_DURATION) ||            item->GetCount() < count[i])        {            SendAuctionCommandResult(NULL, AUCTION_SELL_ITEM, ERR_AUCTION_DATABASE_ERROR);            return;        }        items[i] = item;        finalCount += count[i];    }    if (!finalCount)    {        SendAuctionCommandResult(NULL, AUCTION_SELL_ITEM, ERR_AUCTION_DATABASE_ERROR);        return;    }    for (uint32 i = 0; i < itemsCount; ++i)    {        Item* item = items[i];        if (item->GetMaxStackCount() < finalCount)        {//.........这里部分代码省略.........
开发者ID:AtVirus,项目名称:Forgotten-Lands-Source,代码行数:101,


示例8: GetPlayer

//void called when player click on auctioneer npcvoid WorldSession::HandleAuctionHelloOpcode(WorldPacket& recvData){    uint64 guid;                                            //NPC guid    recvData >> guid;    Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_AUCTIONEER);    if (!unit)    {        sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: HandleAuctionHelloOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)));        return;    }    // remove fake death    if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))        GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);    SendAuctionHello(guid, unit);}
开发者ID:AtVirus,项目名称:Forgotten-Lands-Source,代码行数:19,


示例9: GetPlayer

/** * Handles the Packet sent by the client when sending a mail. * * This methods takes the packet sent by the client and performs the following actions: * - Checks whether the mail is valid: i.e. can he send the selected items, *   does he have enough money, etc. * - Creates a MailDraft and adds the needed items, money, cost data. * - Sends the mail. * * Depending on the outcome of the checks performed the player will recieve a different * MailResponseResult. * * @see MailResponseResult * @see SendMailResult() * * @param recv_data the WorldPacket containing the data sent by the client. */void WorldSession::HandleSendMail(WorldPacket & recv_data ){    uint64 mailbox, unk3;    std::string receiver, subject, body;    uint32 unk1, unk2, money, COD;    uint8 unk4;    recv_data >> mailbox;    recv_data >> receiver;    recv_data >> subject;    recv_data >> body;    recv_data >> unk1;                                      // stationery?    recv_data >> unk2;                                      // 0x00000000    uint8 items_count;    recv_data >> items_count;                               // attached items count    if (items_count > MAX_MAIL_ITEMS)                       // client limit    {        GetPlayer()->SendMailResult(0, MAIL_SEND, MAIL_ERR_TOO_MANY_ATTACHMENTS);        recv_data.rpos(recv_data.wpos());                   // set to end to avoid warnings spam        return;    }    uint64 itemGUIDs[MAX_MAIL_ITEMS];    for(uint8 i = 0; i < items_count; ++i)    {        recv_data.read_skip<uint8>();                       // item slot in mail, not used        recv_data >> itemGUIDs[i];    }    recv_data >> money >> COD;                              // money and cod    recv_data >> unk3;                                      // const 0    recv_data >> unk4;                                      // const 0    // packet read complete, now do check    if (!GetPlayer()->GetGameObjectIfCanInteractWith(mailbox, GAMEOBJECT_TYPE_MAILBOX))        return;    if (receiver.empty())        return;    Player* pl = _player;    uint64 rc = 0;    if (normalizePlayerName(receiver))        rc = sObjectMgr.GetPlayerGUIDByName(receiver);    if (!rc)    {        sLog.outDetail("Player %u is sending mail to %s (GUID: not existed!) with subject %s and body %s includes %u items, %u copper and %u COD copper with unk1 = %u, unk2 = %u",            pl->GetGUIDLow(), receiver.c_str(), subject.c_str(), body.c_str(), items_count, money, COD, unk1, unk2);        pl->SendMailResult(0, MAIL_SEND, MAIL_ERR_RECIPIENT_NOT_FOUND);        return;    }    sLog.outDetail("Player %u is sending mail to %s (GUID: %u) with subject %s and body %s includes %u items, %u copper and %u COD copper with unk1 = %u, unk2 = %u", pl->GetGUIDLow(), receiver.c_str(), GUID_LOPART(rc), subject.c_str(), body.c_str(), items_count, money, COD, unk1, unk2);    if (pl->GetGUID() == rc)    {        pl->SendMailResult(0, MAIL_SEND, MAIL_ERR_CANNOT_SEND_TO_SELF);        return;    }    uint32 cost = items_count ? 30 * items_count : 30;      // price hardcoded in client    uint32 reqmoney = cost + money;    if (pl->GetMoney() < reqmoney)    {        pl->SendMailResult(0, MAIL_SEND, MAIL_ERR_NOT_ENOUGH_MONEY);        return;    }    Player *receive = sObjectMgr.GetPlayer(rc);    uint32 rc_team = 0;    uint8 mails_count = 0;                                  // do not allow to send to one player more than 100 mails//.........这里部分代码省略.........
开发者ID:Darkhunter,项目名称:mangos,代码行数:101,


示例10: CHECK_PACKET_SIZE

void WorldSession::HandleSendMail(WorldPacket & recv_data ){    CHECK_PACKET_SIZE(recv_data,8+1+1+1+4+4+1+4+4+8+1);    uint64 mailbox, unk3;    std::string receiver, subject, body;    uint32 unk1, unk2, money, COD;    uint8 unk4;    recv_data >> mailbox;    recv_data >> receiver;    if (!GetPlayer()->GetGameObjectIfCanInteractWith(mailbox, GAMEOBJECT_TYPE_MAILBOX))        return;    // recheck    CHECK_PACKET_SIZE(recv_data, 8+(receiver.size()+1)+1+1+4+4+1+4+4+8+1);    recv_data >> subject;    // recheck    CHECK_PACKET_SIZE(recv_data, 8+(receiver.size()+1)+(subject.size()+1)+1+4+4+1+4+4+8+1);    recv_data >> body;    // recheck    CHECK_PACKET_SIZE(recv_data, 8+(receiver.size()+1)+(subject.size()+1)+(body.size()+1)+4+4+1+4+4+8+1);    recv_data >> unk1;                                      // stationery?    recv_data >> unk2;                                      // 0x00000000    MailItemsInfo mi;    uint8 items_count;    recv_data >> items_count;                               // attached items count    if(items_count > 12)                                    // client limit        return;    // recheck    CHECK_PACKET_SIZE(recv_data, 8+(receiver.size()+1)+(subject.size()+1)+(body.size()+1)+4+4+1+items_count*(1+8)+4+4+8+1);    if(items_count)    {        for(uint8 i = 0; i < items_count; ++i)        {            uint8  item_slot;            uint64 item_guid;            recv_data >> item_slot;            recv_data >> item_guid;            mi.AddItem(GUID_LOPART(item_guid), item_slot);        }    }    recv_data >> money >> COD;                              // money and cod    recv_data >> unk3;                                      // const 0    recv_data >> unk4;                                      // const 0    items_count = mi.size();                                // this is the real size after the duplicates have been removed    if (receiver.empty())        return;    Player* pl = _player;    uint64 rc = 0;    if(normalizePlayerName(receiver))        rc = objmgr.GetPlayerGUIDByName(receiver);    if (!rc)    {        sLog.outDetail("Player %u is sending mail to %s (GUID: not existed!) with subject %s and body %s includes %u items, %u copper and %u COD copper with unk1 = %u, unk2 = %u",            pl->GetGUIDLow(), receiver.c_str(), subject.c_str(), body.c_str(), items_count, money, COD, unk1, unk2);        pl->SendMailResult(0, 0, MAIL_ERR_RECIPIENT_NOT_FOUND);        return;    }    sLog.outDetail("Player %u is sending mail to %s (GUID: %u) with subject %s and body %s includes %u items, %u copper and %u COD copper with unk1 = %u, unk2 = %u", pl->GetGUIDLow(), receiver.c_str(), GUID_LOPART(rc), subject.c_str(), body.c_str(), items_count, money, COD, unk1, unk2);    if(pl->GetGUID() == rc)    {        pl->SendMailResult(0, 0, MAIL_ERR_CANNOT_SEND_TO_SELF);        return;    }    uint32 cost = items_count ? 30 * items_count : 30;  // price hardcoded in client    uint32 reqmoney = cost + money;    if (pl->GetMoney() < reqmoney)    {        pl->SendMailResult(0, 0, MAIL_ERR_NOT_ENOUGH_MONEY);        return;    }    Player *receive = objmgr.GetPlayer(rc);    uint32 rc_team = 0;    uint8 mails_count = 0;                                  //do not allow to send to one player more than 100 mails    if(receive)//.........这里部分代码省略.........
开发者ID:madhatternc,项目名称:QuaDCore,代码行数:101,


示例11: ASSERT

void Item::RemoveFromUpdateQueueOf(Player* player){    if (!IsInUpdateQueue())        return;    ASSERT(player != NULL)    if (player->GetGUID() != GetOwnerGUID())    {        sLog->outDebug(LOG_FILTER_PLAYER_ITEMS, "Item::RemoveFromUpdateQueueOf - Owner's guid (%u) and player's guid (%u) don't match!", GUID_LOPART(GetOwnerGUID()), player->GetGUIDLow());        return;    }    if (player->m_itemUpdateQueueBlocked)        return;    player->m_itemUpdateQueue[uQueuePos] = NULL;    uQueuePos = -1;}
开发者ID:Bootz,项目名称:TrilliumEMU-1,代码行数:19,


示例12: GetGUIDLow

void Item::SaveToDB(SQLTransaction& trans){    bool isInTransaction = !(trans.null());    if (!isInTransaction)        trans = CharacterDatabase.BeginTransaction();    uint32 guid = GetGUIDLow();    switch (uState)    {        case ITEM_NEW:        case ITEM_CHANGED:        {            uint8 index = 0;            PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(uState == ITEM_NEW ? CHAR_ADD_ITEM_INSTANCE : CHAR_UPDATE_ITEM_INSTANCE);            stmt->setUInt32(  index, GetEntry());            stmt->setUInt32(++index, GUID_LOPART(GetOwnerGUID()));            stmt->setUInt32(++index, GUID_LOPART(GetUInt64Value(ITEM_FIELD_CREATOR)));            stmt->setUInt32(++index, GUID_LOPART(GetUInt64Value(ITEM_FIELD_GIFTCREATOR)));            stmt->setUInt32(++index, GetCount());            stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_DURATION));            std::ostringstream ssSpells;            for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)                ssSpells << GetSpellCharges(i) << ' ';            stmt->setString(++index, ssSpells.str());            stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_FLAGS));            std::ostringstream ssEnchants;            for (uint8 i = 0; i < MAX_ENCHANTMENT_SLOT; ++i)            {                ssEnchants << GetEnchantmentId(EnchantmentSlot(i)) << ' ';                ssEnchants << GetEnchantmentDuration(EnchantmentSlot(i)) << ' ';                ssEnchants << GetEnchantmentCharges(EnchantmentSlot(i)) << ' ';            }            stmt->setString(++index, ssEnchants.str());            stmt->setInt32 (++index, GetItemRandomPropertyId());            stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_DURABILITY));            stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME));            stmt->setString(++index, m_text);            stmt->setUInt32(++index, guid);            trans->Append(stmt);            if ((uState == ITEM_CHANGED) && HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_WRAPPED))            {                stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPDATE_GIFT_OWNER);                stmt->setUInt32(0, GUID_LOPART(GetOwnerGUID()));                stmt->setUInt32(1, guid);                trans->Append(stmt);            }            break;        }        case ITEM_REMOVED:        {            PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);            stmt->setUInt32(0, guid);            trans->Append(stmt);            if (HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_WRAPPED))            {                stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GIFT);                stmt->setUInt32(0, guid);                trans->Append(stmt);            }            if (!isInTransaction)                CharacterDatabase.CommitTransaction(trans);            delete this;            return;        }        case ITEM_UNCHANGED:            break;    }    SetState(ITEM_UNCHANGED);    if (!isInTransaction)        CharacterDatabase.CommitTransaction(trans);}
开发者ID:Bootz,项目名称:TrilliumEMU-1,代码行数:82,


示例13: GetPlayer

void WorldSession::SendTaxiStatus(uint64 guid){    // cheating checks    Creature *unit = GetPlayer()->GetMap()->GetCreature(guid);    if (!unit)    {        sLog->outDebug("WorldSession::SendTaxiStatus - Unit (GUID: %u) not found.", uint32(GUID_LOPART(guid)));        return;    }    uint32 curloc = sObjectMgr->GetNearestTaxiNode(unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ(), unit->GetMapId());    // not found nearest    if (curloc == 0)        return;    sLog->outDebug("WORLD: current location %u ", curloc);    WorldPacket data(SMSG_TAXINODE_STATUS, 9);    data << guid;    data << uint8(GetPlayer()->m_taxi.IsTaximaskNodeKnown(curloc) ? 1 : 0);    SendPacket(&data);    sLog->outDebug("WORLD: Sent SMSG_TAXINODE_STATUS");}
开发者ID:TheGhostGroup,项目名称:SkyFire_one,代码行数:24,


示例14: fact

//called when player lists his bidsvoid WorldSession::HandleAuctionListBidderItems(WorldPacket& recvData){    sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_AUCTION_LIST_BIDDER_ITEMS");    uint64 guid;                                            //NPC guid    uint32 listfrom;                                        //page of auctions    uint32 outbiddedCount;                                  //count of outbidded auctions    recvData >> guid;    recvData >> listfrom;                                  // not used in fact (this list not have page control in client)    recvData >> outbiddedCount;    if (recvData.size() != (16 + outbiddedCount * 4))    {        sLog->outError(LOG_FILTER_NETWORKIO, "Client sent bad opcode!!! with count: %u and size : %lu (must be: %u)", outbiddedCount, (unsigned long)recvData.size(), (16 + outbiddedCount * 4));        outbiddedCount = 0;    }    Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_AUCTIONEER);    if (!creature)    {        sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: HandleAuctionListBidderItems - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)));        recvData.rfinish();        return;    }    // remove fake death    if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))        GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);    AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(creature->getFaction());    WorldPacket data(SMSG_AUCTION_BIDDER_LIST_RESULT, (4+4+4));    Player* player = GetPlayer();    data << uint32(0);                                     //add 0 as count    uint32 count = 0;    uint32 totalcount = 0;    while (outbiddedCount > 0)                             //add all data, which client requires    {        --outbiddedCount;        uint32 outbiddedAuctionId;        recvData >> outbiddedAuctionId;        AuctionEntry* auction = auctionHouse->GetAuction(outbiddedAuctionId);        if (auction && auction->BuildAuctionInfo(data))        {            ++totalcount;            ++count;        }    }    auctionHouse->BuildListBidderItems(data, player, count, totalcount);    data.put<uint32>(0, count);                           // add count to placeholder    data << totalcount;    data << uint32(300);                                  //unk 2.3.0    SendPacket(&data);}
开发者ID:AtVirus,项目名称:Forgotten-Lands-Source,代码行数:56,


示例15: while

bool ChatHandler::ExecuteCommandInTable(ChatCommand* table, const char* text, const std::string& fullcmd){    char const* oldtext = text;    std::string cmd = "";    while (*text != ' ' && *text != '/0')    {        cmd += *text;        ++text;    }    while (*text == ' ') ++text;    for (uint32 i = 0; table[i].Name != NULL; ++i)    {        if (!hasStringAbbr(table[i].Name, cmd.c_str()))            continue;        bool match = false;        if (strlen(table[i].Name) > cmd.length())        {            for (uint32 j = 0; table[j].Name != NULL; ++j)            {                if (!hasStringAbbr(table[j].Name, cmd.c_str()))                    continue;                if (strcmp(table[j].Name, cmd.c_str()) != 0)                    continue;                else                {                    match = true;                    break;                }            }        }        if (match)            continue;        // select subcommand from child commands list        if (table[i].ChildCommands != NULL)        {            if (!ExecuteCommandInTable(table[i].ChildCommands, text, fullcmd))            {                if (text[0] != '/0')                    SendSysMessage(LANG_NO_SUBCMD);                else                    SendSysMessage(LANG_CMD_SYNTAX);                ShowHelpForCommand(table[i].ChildCommands, text);            }            return true;        }        // must be available and have handler        if (!table[i].Handler || !isAvailable(table[i]))            continue;        SetSentErrorMessage(false);        // table[i].Name == "" is special case: send original command to handler        if ((table[i].Handler)(this, table[i].Name[0] != '/0' ? text : oldtext))        {            // FIXME: When Command system is moved to RBAC this check must be changed            if (!AccountMgr::IsPlayerAccount(table[i].SecurityLevel))            {                // chat case                if (m_session)                {                    Player* p = m_session->GetPlayer();                    uint64 sel_guid = p->GetSelection();                    uint32 areaId = p->GetAreaId();                    std::string areaName = "Unknown";                    std::string zoneName = "Unknown";                    if (AreaTableEntry const* area = GetAreaEntryByAreaID(areaId))                    {                        int locale = GetSessionDbcLocale();                        areaName = area->area_name[locale];                        if (AreaTableEntry const* zone = GetAreaEntryByAreaID(area->zone))                            zoneName = zone->area_name[locale];                    }                    sLog->outCommand(m_session->GetAccountId(), "Command: %s [Player: %s (Guid: %u) (Account: %u) X: %f Y: %f Z: %f Map: %u (%s) Area: %u (%s) Zone: %s Selected %s: %s (GUID: %u)]",                        fullcmd.c_str(), p->GetName().c_str(), GUID_LOPART(p->GetGUID()), m_session->GetAccountId(), p->GetPositionX(), p->GetPositionY(), p->GetPositionZ(), p->GetMapId(), p->GetMap() ? p->GetMap()->GetMapName() : "Unknown", areaId, areaName.c_str(), zoneName.c_str(),                        GetLogNameForGuid(sel_guid), (p->GetSelectedUnit()) ? p->GetSelectedUnit()->GetName().c_str() : "", GUID_LOPART(sel_guid));                }            }        }        // some commands have custom error messages. Don't send the default one in these cases.        else if (!HasSentErrorMessage())        {            if (!table[i].Help.empty())                SendSysMessage(table[i].Help.c_str());            else                SendSysMessage(LANG_CMD_SYNTAX);        }        return true;    }    return false;//.........这里部分代码省略.........
开发者ID:Dzef,项目名称:TrinityCore,代码行数:101,


示例16: GetSlot

bool ArenaTeam::LoadMembersFromDB(QueryResult arenaTeamMembersResult){    if (!arenaTeamMembersResult)        return false;    bool captainPresentInTeam = false;    do    {        Field *fields = arenaTeamMembersResult->Fetch();        //prevent crash if db records are broken, when all members in result are already processed and current team hasn't got any members        if (!fields)            break;        uint32 arenaTeamId        = fields[0].GetUInt32();        if (arenaTeamId < m_TeamId)        {            //there is in table arena_team_member record which doesn't have arenateamid in arena_team table, report error            sLog.outErrorDb("ArenaTeam %u does not exist but it has record in arena_team_member table, deleting it!", arenaTeamId);            CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u'", arenaTeamId);            continue;        }        if (arenaTeamId > m_TeamId)            //we loaded all members for this arena_team already, break cycle            break;        uint32 player_guid = fields[1].GetUInt32();        QueryResult result = CharacterDatabase.PQuery(            "SELECT personal_rating, matchmaker_rating FROM character_arena_stats WHERE guid = '%u' AND slot = '%u'", player_guid, GetSlot());        uint32 personalrating = 0;        uint32 matchmakerrating = 1500;        if (result)        {            personalrating = (*result)[0].GetUInt32();            matchmakerrating = (*result)[1].GetUInt32();        }        ArenaTeamMember newmember;        newmember.guid              = MAKE_NEW_GUID(player_guid, 0, HIGHGUID_PLAYER);        newmember.games_week        = fields[2].GetUInt32();        newmember.wins_week         = fields[3].GetUInt32();        newmember.games_season      = fields[4].GetUInt32();        newmember.wins_season       = fields[5].GetUInt32();        newmember.name              = fields[6].GetString();        newmember.Class             = fields[7].GetUInt8();        newmember.personal_rating   = personalrating;        newmember.matchmaker_rating = matchmakerrating;        //check if member exists in characters table        if (newmember.name.empty())        {            sLog.outErrorDb("ArenaTeam %u has member with empty name - probably player %u doesn't exist, deleting him from memberlist!", arenaTeamId, GUID_LOPART(newmember.guid));            this->DelMember(newmember.guid);            continue;        }        if (newmember.guid == GetCaptain())            captainPresentInTeam = true;        m_members.push_back(newmember);    }while (arenaTeamMembersResult->NextRow());    if (Empty() || !captainPresentInTeam)    {        // arena team is empty or captain is not in team, delete from db        sLog.outErrorDb("ArenaTeam %u does not have any members or its captain is not in team, disbanding it...", m_TeamId);        return false;    }    return true;}
开发者ID:sensibob,项目名称:tempestcore,代码行数:74,


示例17: GetName

void ArenaTeam::DelMember(uint64 guid){    for (MemberList::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)        if (itr->guid == guid)        {            m_members.erase(itr);            break;        }    if (Player *player = sObjectMgr.GetPlayer(guid))    {        player->GetSession()->SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, GetName(), "", 0);        // delete all info regarding this team        for (uint32 i = 0; i < ARENA_TEAM_END; ++i)            player->SetArenaTeamInfoField(GetSlot(), ArenaTeamInfoType(i), 0);        sLog.outArena("Player: %s [GUID: %u] left arena team type: %u [Id: %u].", player->GetName(), player->GetGUIDLow(), GetType(), GetId());    }    CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u' AND guid = '%u'", GetId(), GUID_LOPART(guid));}
开发者ID:sensibob,项目名称:tempestcore,代码行数:19,


示例18: reward

void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket & recv_data){    uint32 questId, reward;    uint64 guid;    recv_data >> guid >> questId >> 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;    }    sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_QUESTGIVER_CHOOSE_REWARD npc = %u, quest = %u, reward = %u", uint32(GUID_LOPART(guid)), questId, reward);    Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);    if (!object || !object->hasInvolvedQuest(questId))        return;    // some kind of WPE protection    if (!_player->CanInteractWithQuestGiver(object))        return;    if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))    {        if ((!_player->CanSeeStartQuest(quest) &&  _player->GetQuestStatus(questId) == QUEST_STATUS_NONE) ||            (_player->GetQuestStatus(questId) != QUEST_STATUS_COMPLETE && !quest->IsAutoComplete()))        {            sLog->outError("HACK ALERT: Player %s (guid: %u) is trying to complete quest (id: %u) but he has no right to do it!",                           _player->GetName(), _player->GetGUIDLow(), questId);            return;        }        if (_player->CanRewardQuest(quest, reward, true))        {            _player->RewardQuest(quest, reward, object);            switch (object->GetTypeId())            {                case TYPEID_UNIT:                    if (!(sScriptMgr->OnQuestReward(_player, (object->ToCreature()), quest, reward)))                    {                        // Send next quest                        if (Quest const* nextQuest = _player->GetNextQuest(guid , quest))                        {                            if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true) && _player->CanTakeQuest(quest, true))                            {                                _player->AddQuest(nextQuest, object);                                if (_player->CanCompleteQuest(nextQuest->GetQuestId()))                                    _player->CompleteQuest(nextQuest->GetQuestId());                            }                            _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true);                        }                        (object->ToCreature())->AI()->sQuestReward(_player, quest, reward);                    }                    break;                case TYPEID_GAMEOBJECT:                    if (!sScriptMgr->OnQuestReward(_player, ((GameObject*)object), quest, reward))                    {                        // Send next quest                        if (Quest const* nextQuest = _player->GetNextQuest(guid , quest))                        {                            if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true) && _player->CanTakeQuest(quest, true))                            {                                _player->AddQuest(nextQuest, object);                                if (_player->CanCompleteQuest(nextQuest->GetQuestId()))                                    _player->CompleteQuest(nextQuest->GetQuestId());                            }                            _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true);                        }                        object->ToGameObject()->AI()->QuestReward(_player, quest, reward);                    }                    break;                default:                    break;            }        }        else            _player->PlayerTalkClass->SendQuestGiverOfferReward(quest, guid, true);    }}
开发者ID:Abrosia,项目名称:Ambrosia,代码行数:83,


示例19: uint32

void WorldSession::HandlePetCastSpellOpcode(WorldPacket& recvPacket){    sLog->outDetail("WORLD: CMSG_PET_CAST_SPELL");    uint64 guid;    uint8  castCount;    uint32 spellId;    uint8  castFlags;    recvPacket >> guid >> castCount >> spellId >> castFlags;    sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_PET_CAST_SPELL, guid: " UI64FMTD ", castCount: %u, spellId %u, castFlags %u", guid, castCount, spellId, castFlags);    // This opcode is also sent from charmed and possessed units (players and creatures)    if (!_player->GetGuardianPet() && !_player->GetCharm())        return;    Unit* caster = ObjectAccessor::GetUnit(*_player, guid);    if (!caster || (caster != _player->GetGuardianPet() && caster != _player->GetCharm()))    {        sLog->outError("HandlePetCastSpellOpcode: Pet %u isn't pet of player %s .", uint32(GUID_LOPART(guid)), GetPlayer()->GetName());        return;    }    SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);    if (!spellInfo)    {        sLog->outError("WORLD: unknown PET spell id %i", spellId);        return;    }    if (spellInfo->StartRecoveryCategory > 0) // Check if spell is affected by GCD        if (caster->GetTypeId() == TYPEID_UNIT && caster->ToCreature()->GetGlobalCooldown() > 0)        {            caster->SendPetCastFail(spellId, SPELL_FAILED_NOT_READY);            return;        }    // do not cast not learned spells    if (!caster->HasSpell(spellId) || IsPassiveSpell(spellId))        return;    SpellCastTargets targets;    targets.read(recvPacket, caster);    HandleClientCastFlags(recvPacket, castFlags, targets);    caster->ClearUnitState(UNIT_STAT_FOLLOW);    Spell *spell = new Spell(caster, spellInfo, false);    spell->m_cast_count = castCount;                    // probably pending spell cast    spell->m_targets = targets;    // TODO: need to check victim?    SpellCastResult result;    if (caster->m_movedPlayer)        result = spell->CheckPetCast(caster->m_movedPlayer->GetSelectedUnit());    else        result = spell->CheckPetCast(NULL);    if (result == SPELL_CAST_OK)    {        if (caster->GetTypeId() == TYPEID_UNIT)        {            Creature* pet = caster->ToCreature();            pet->AddCreatureSpellCooldown(spellId);            if (pet->isPet())            {                Pet* p = (Pet*)pet;                // 10% chance to play special pet attack talk, else growl                // actually this only seems to happen on special spells, fire shield for imp, torment for voidwalker, but it's stupid to check every spell                if (p->getPetType() == SUMMON_PET && (urand(0, 100) < 10))                    pet->SendPetTalk((uint32)PET_TALK_SPECIAL_SPELL);                else                    pet->SendPetAIReaction(guid);            }        }        spell->prepare(&(spell->m_targets));    }    else    {        caster->SendPetCastFail(spellId, result);        if (caster->GetTypeId() == TYPEID_PLAYER)        {            if (!caster->ToPlayer()->HasSpellCooldown(spellId))                GetPlayer()->SendClearCooldown(spellId, caster);        }        else        {            if (!caster->ToCreature()->HasSpellCooldown(spellId))                GetPlayer()->SendClearCooldown(spellId, caster);        }        spell->finish(false);        delete spell;    }}
开发者ID:xerkoss,项目名称:Project-WoW,代码行数:97,



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


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