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

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

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

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

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

示例1: HandleCombatStopCommand

bool ChatHandler::HandleCombatStopCommand(const char* args){    Player* target;    if (!extractPlayerTarget((char*)args, &target))        return false;    // check online security    if (HasLowerSecurity(target, 0))        return false;    target->CombatStop();    target->getHostileRefManager().deleteReferences();    return true;}
开发者ID:caedus,项目名称:ArkCORE,代码行数:14,


示例2: getSelectedUnit

//demorph player or unitbool ChatHandler::HandleDeMorphCommand(const char* /*args*/){    Unit* target = getSelectedUnit();    if (!target)        target = m_session->GetPlayer();    // check online security    else if (target->GetTypeId() == TYPEID_PLAYER && HasLowerSecurity((Player*)target, 0))        return false;    target->DeMorph();    return true;}
开发者ID:caedus,项目名称:ArkCORE,代码行数:15,


示例3: PSendSysMessage

//rename charactersbool ChatHandler::HandleCharacterRenameCommand(const char* args){    Player* target;    uint64 targetGuid;    std::string targetName;    if (!extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))        return false;    if (target)    {        // check online security        if (HasLowerSecurity(target, 0))            return false;        PSendSysMessage(LANG_RENAME_PLAYER, GetNameLink(target).c_str());        target->SetAtLoginFlag(AT_LOGIN_RENAME);    }    else    {        // check offline security        if (HasLowerSecurity(NULL, targetGuid))            return false;        std::string oldNameLink = playerLink(targetName);        PSendSysMessage(LANG_RENAME_PLAYER_GUID, oldNameLink.c_str(), GUID_LOPART(targetGuid));        PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);        stmt->setUInt16(0, uint16(AT_LOGIN_RENAME));        stmt->setUInt32(1, GUID_LOPART(targetGuid));        CharacterDatabase.Execute(stmt);    }    return true;}
开发者ID:BlackWolfsDen,项目名称:Justicar-WoW,代码行数:38,


示例4: extractOptFirstArg

//mute player for some timesbool ChatHandler::HandleMuteCommand(const char* args){    char* nameStr;    char* delayStr;    extractOptFirstArg((char*)args, &nameStr, &delayStr);    if (!delayStr)        return false;    char *mutereason = strtok(NULL, "/r");    std::string mutereasonstr = "No reason";    if (mutereason != NULL)         mutereasonstr = mutereason;    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget(nameStr, &target, &target_guid, &target_name))        return false;    uint32 account_id = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(target_guid);    // find only player from same account if any    if (!target)        if (WorldSession* session = sWorld->FindSession(account_id))            target = session->GetPlayer();    uint32 notspeaktime = (uint32) atoi(delayStr);    // must have strong lesser security level    if (HasLowerSecurity (target, target_guid, true))        return false;    time_t mutetime = time(NULL) + notspeaktime*60;    if (target)        target->GetSession()->m_muteTime = mutetime;    LoginDatabase.PExecute("UPDATE account SET mutetime = " UI64FMTD " WHERE id = '%u'", uint64(mutetime), account_id);    if (target)        ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_DISABLED, notspeaktime, mutereasonstr.c_str());    std::string nameLink = playerLink(target_name);    PSendSysMessage(LANG_YOU_DISABLE_CHAT, nameLink.c_str(), notspeaktime, mutereasonstr.c_str());    return true;}
开发者ID:Bootz,项目名称:Singularity,代码行数:49,


示例5: HandleSpectateFromCommand

bool ChatHandler::HandleSpectateFromCommand(const char *args){    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    Player* _player = m_session->GetPlayer();    // check online security    if (HasLowerSecurity(target, 0))        return false;    if (!_player->isSpectator())    {        PSendSysMessage("You are not spectator, spectate someone first.");        SetSentErrorMessage(true);        return false;    }    if (target->isSpectator() && target != _player)    {        PSendSysMessage("Can`t do that. Your target is spectator.");        SetSentErrorMessage(true);        return false;    }    if (_player->GetMap() != target->GetMap())    {        PSendSysMessage("Cant do that. Different arenas?");        SetSentErrorMessage(true);        return false;    }    //check for arena preperation    //if exists than battle didn`t begin    if (target->HasAura(32728) || target->HasAura(32727))    {        PSendSysMessage("Cant do that. Arena didn`t started.");        SetSentErrorMessage(true);        return false;    }    (target == _player) ? _player->SetViewpoint(_player->getSpectateFrom(), false) :                          _player->SetViewpoint(target, true);    return true;}
开发者ID:Vasilyi,项目名称:WoW_CORE,代码行数:48,


示例6: HandleUnmuteCommand

//unmute playerbool ChatHandler::HandleUnmuteCommand(const char* args){    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(target_guid);    // find only player from same account if any    if (!target)        if (WorldSession* session = sWorld->FindSession(accountId))            target = session->GetPlayer();    // must have strong lesser security level    if (HasLowerSecurity (target, target_guid, true))        return false;    if (target)    {        if (target->CanSpeak())        {            SendSysMessage(LANG_CHAT_ALREADY_ENABLED);            SetSentErrorMessage(true);            return false;        }        target->GetSession()->m_muteTime = 0;    }    PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);    stmt->setInt64(0, 0);    stmt->setUInt32(1, accountId);    LoginDatabase.Execute(stmt);    if (target)        ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_ENABLED);    std::string nameLink = playerLink(target_name);    PSendSysMessage(LANG_YOU_ENABLE_CHAT, nameLink.c_str());    return true;}
开发者ID:BlackWolfsDen,项目名称:Justicar-WoW,代码行数:47,


示例7: HandleRepairitemsCommand

bool ChatHandler::HandleRepairitemsCommand(const char* args){    Player* target;    if (!extractPlayerTarget((char*)args, &target))        return false;    // check online security    if (HasLowerSecurity(target, 0))        return false;    // Repair items    target->DurabilityRepairAll(false, 0, false);    PSendSysMessage(LANG_YOU_REPAIR_ITEMS, GetNameLink(target).c_str());    if (needReportToTarget(target))        ChatHandler(target).PSendSysMessage(LANG_YOUR_ITEMS_REPAIRED, GetNameLink().c_str());    return true;}
开发者ID:BlackWolfsDen,项目名称:Justicar-WoW,代码行数:18,


示例8: SendSysMessage

//Enable On/OFF all taxi pathsbool ChatHandler::HandleTaxiCheatCommand(const char* args){    if (!*args)    {        SendSysMessage(LANG_USE_BOL);        SetSentErrorMessage(true);        return false;    }    std::string argstr = (char*)args;    Player *chr = getSelectedPlayer();    if (!chr)    {        chr=m_session->GetPlayer();    }    // check online security    else if (HasLowerSecurity(chr, 0))        return false;    if (argstr == "on")    {        chr->SetTaxiCheater(true);        PSendSysMessage(LANG_YOU_GIVE_TAXIS, GetNameLink(chr).c_str());        if (needReportToTarget(chr))            ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_ADDED, GetNameLink().c_str());        return true;    }    if (argstr == "off")    {        chr->SetTaxiCheater(false);        PSendSysMessage(LANG_YOU_REMOVE_TAXIS, GetNameLink(chr).c_str());        if (needReportToTarget(chr))            ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_REMOVED, GetNameLink().c_str());        return true;    }    SendSysMessage(LANG_USE_BOL);    SetSentErrorMessage(true);    return false;}
开发者ID:Nedj,项目名称:TrinityCore,代码行数:45,


示例9: getSelectedUnit

//demorph player or unitbool ChatHandler::HandleDeMorphCommand(const char* /*args*/){    Unit *target = getSelectedUnit();    if (!target)        target = m_session->GetPlayer();    // check online security    if (target->GetTypeId() == TYPEID_PLAYER && HasLowerSecurity((Player*)target, 0))        return false;        if (target->GetTypeId() == TYPEID_PLAYER)        if (target->ToPlayer()->NoModify() && m_session->GetPlayer() != target && !m_session->GetPlayer()->IsAdmin())        {            PSendSysMessage("This player has disabled gm commands being used on them.");            return true;        }    target->DeMorph();    return true;}
开发者ID:sanysan,项目名称:ChaosCore-1,代码行数:22,


示例10: SendSysMessage

//kick playerbool ChatHandler::HandleKickPlayerCommand(const char *args){    Player* target = NULL;    std::string playerName;    if (!extractPlayerTarget((char*)args, &target, NULL, &playerName))        return false;    if (m_session && target == m_session->GetPlayer())    {        SendSysMessage(LANG_COMMAND_KICKSELF);        SetSentErrorMessage(true);        return false;    }    // check online security    if (HasLowerSecurity(target, 0))        return false;    PSendSysMessage(LANG_COMMAND_KICKMESSAGE, playerName.c_str());    target->GetSession()->KickPlayer();    return true;}
开发者ID:Darkelmo,项目名称:LivingLegend,代码行数:24,


示例11: SendSysMessage

//kick playerbool ChatHandler::HandleKickPlayerCommand(const char *args){    std::string announce;    Player* target = NULL;    std::string playerName;    if (!extractPlayerTarget((char*)args, &target, NULL, &playerName))        return false;    if (m_session && target == m_session->GetPlayer())    {        SendSysMessage(LANG_COMMAND_KICKSELF);        SetSentErrorMessage(true);        return false;    }    // check online security    if (HasLowerSecurity(target, 0))        return false;    if (sWorld.getBoolConfig(CONFIG_SHOW_KICK_IN_WORLD))        sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, playerName.c_str());    else        PSendSysMessage(LANG_COMMAND_KICKMESSAGE, playerName.c_str());    target->GetSession()->KickPlayer();    announce = "Игрок '";    announce += target->GetName();    announce += "' был кикнут персонажем '";    announce += m_session->GetPlayerName();    announce += "'.";    HandleAnnounceCommand(announce.c_str());    return true;}
开发者ID:ice74,项目名称:blizzwow,代码行数:37,


示例12: extractOptFirstArg

//mute player for some timesbool ChatHandler::HandleMuteCommand(const char* args){    char* nameStr;    char* delayStr;    extractOptFirstArg((char*)args, &nameStr, &delayStr);    if (!delayStr)        return false;    char *mutereason = strtok(NULL, "/r");    std::string mutereasonstr = "No reason";    if (mutereason != NULL)         mutereasonstr = mutereason;    mutereasonstr = mutereasonstr + " - Наказал - " + m_session->GetPlayer()->GetName();      Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget(nameStr, &target, &target_guid, &target_name))        return false;    uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(target_guid);    // find only player from same account if any    if (!target)        if (WorldSession* session = sWorld->FindSession(accountId))            target = session->GetPlayer();    uint32 notspeaktime = (uint32) atoi(delayStr);    // must have strong lesser security level    if (HasLowerSecurity (target, target_guid, true))        return false;    PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);    if (target)    {        // Target is online, mute will be in effect right away.        int64 muteTime = time(NULL) + notspeaktime * MINUTE;        target->GetSession()->m_muteTime = muteTime;        stmt->setInt64(0, muteTime);        ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_DISABLED, notspeaktime, mutereasonstr.c_str());    }    else    {        // Target is offline, mute will be in effect starting from the next login.        int32 muteTime = -int32(notspeaktime * MINUTE);        stmt->setInt64(0, muteTime);    }    stmt->setUInt32(1, accountId);    LoginDatabase.Execute(stmt);    std::string nameLink = playerLink(target_name);     if (sWorld->getBoolConfig(CONFIG_SHOW_MUTE_IN_WORLD))         sWorld->SendWorldText(target ? LANG_YOU_DISABLE_CHAT : LANG_COMMAND_DISABLE_CHAT_DELAYED, nameLink.c_str(), notspeaktime, mutereasonstr.c_str());     else         PSendSysMessage(target ? LANG_YOU_DISABLE_CHAT : LANG_COMMAND_DISABLE_CHAT_DELAYED, nameLink.c_str(), notspeaktime, mutereasonstr.c_str());    return true;}
开发者ID:Kinivus,项目名称:BlizzNetCore,代码行数:68,


示例13: extractOptFirstArg

//mute player for some timesbool ChatHandler::HandleMuteCommand(const char* args){    std::string announce;    char* nameStr;    char* delayStr;    extractOptFirstArg((char*)args, &nameStr, &delayStr);    if (!delayStr)        return false;    char *mutereason = strtok(NULL, "/r");    std::string mutereasonstr = "No reason";    if (mutereason != NULL)         mutereasonstr = mutereason;    if(!mutereason)    {        PSendSysMessage("You must enter a reason of mute");        SetSentErrorMessage(true);        return false;    }    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget(nameStr, &target, &target_guid, &target_name))        return false;    uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(target_guid);    // find only player from same account if any    if (!target)        if (WorldSession* session = sWorld->FindSession(accountId))            target = session->GetPlayer();    uint32 notspeaktime = (uint32) atoi(delayStr);    // must have strong lesser security level    if (HasLowerSecurity (target, target_guid, true))        return false;    PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);    if (target)    {        // Target is online, mute will be in effect right away.        int64 muteTime = time(NULL) + notspeaktime * MINUTE;        target->GetSession()->m_muteTime = muteTime;        stmt->setInt64(0, muteTime);        ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_DISABLED, notspeaktime, mutereasonstr.c_str());    }    else    {        // Target is offline, mute will be in effect starting from the next login.        int32 muteTime = -int32(notspeaktime * MINUTE);        stmt->setInt64(0, muteTime);    }    stmt->setUInt32(1, accountId);    LoginDatabase.Execute(stmt);    std::string nameLink = playerLink(target_name);    PSendSysMessage(target ? LANG_YOU_DISABLE_CHAT : LANG_COMMAND_DISABLE_CHAT_DELAYED, nameLink.c_str(), notspeaktime, mutereasonstr.c_str());    announce = "The character '";    announce += nameStr;    announce += "' was muted for ";    announce += delayStr;    announce += " minutes by the character '";    announce += m_session->GetPlayerName();    announce += "'. The reason is: ";    announce += mutereason;    HandleAnnounceCommand(announce.c_str());    return true;}
开发者ID:BlackWolfsDen,项目名称:Justicar-WoW,代码行数:82,


示例14: MAKE_NEW_GUID

//show info of playerbool ChatHandler::HandlePInfoCommand(const char* args){    Player* target;    uint64 target_guid;    std::string target_name;    uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER);    if (sObjectMgr->GetPlayerNameByGUID(parseGUID, target_name))    {        target = sObjectMgr->GetPlayerByLowGUID(parseGUID);        target_guid = parseGUID;    }    else if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    uint32 accId             = 0;    uint32 money             = 0;    uint32 total_player_time = 0;    uint8 level              = 0;    uint32 latency           = 0;    uint8 race;    uint8 Class;    int64 muteTime           = 0;    int64 banTime            = -1;    uint32 mapId;    uint32 areaId;    uint32 phase             = 0;    uint32 votepoints = 0;    uint32 donationpoints = 0;    std::string cheatcooldown = "";    std::string cheatcasttime = "";    std::string cheatpower = "";    // get additional information from Player object    if (target)    {        // check online security        if (HasLowerSecurity(target, 0))            return false;        QueryResult resultTwo = LoginDatabase.PQuery("SELECT vp, dp FROM fusion.account_data WHERE id = '%u' AND vp >= '0'", target->GetSession()->GetAccountId());        if (!resultTwo) // check            return false;        Field *fields = resultTwo->Fetch();        votepoints = fields[0].GetUInt32();        donationpoints = fields[1].GetUInt32();        accId             = target->GetSession()->GetAccountId();        money             = target->GetMoney();        total_player_time = target->GetTotalPlayedTime();        level             = target->getLevel();        latency           = target->GetSession()->GetLatency();        race              = target->getRace();        Class             = target->getClass();        muteTime          = target->GetSession()->m_muteTime;        mapId             = target->GetMapId();        areaId            = target->GetAreaId();        phase             = target->GetPhaseMask();	 if(target->GetCommandStatus(CHEAT_COOLDOWN))	    cheatcooldown = "ON";	 else	    cheatcooldown = "OFF";	 if(target->GetCommandStatus(CHEAT_CASTTIME))	    cheatcasttime = "ON";	 else	    cheatcasttime = "OFF";	 if(target->GetCommandStatus(CHEAT_POWER))	    cheatpower = "ON";	 else	    cheatpower = "OFF";    }    // get additional information from DB    else    {        // check offline security        if (HasLowerSecurity(NULL, target_guid))            return false;        PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_PINFO);        stmt->setUInt32(0, GUID_LOPART(target_guid));        PreparedQueryResult result = CharacterDatabase.Query(stmt);        if (!result)            return false;        Field* fields     = result->Fetch();        total_player_time = fields[0].GetUInt32();        level             = fields[1].GetUInt8();        money             = fields[2].GetUInt32();        accId             = fields[3].GetUInt32();        race              = fields[4].GetUInt8();        Class             = fields[5].GetUInt8();        mapId             = fields[6].GetUInt16();        areaId            = fields[7].GetUInt16();    }//.........这里部分代码省略.........
开发者ID:BlackWolfsDen,项目名称:Justicar-WoW,代码行数:101,


示例15: GetNameLink

//Summon group of playerbool ChatHandler::HandleGroupSummonCommand(const char* args){    Player* target;    if (!extractPlayerTarget((char*)args, &target))        return false;    // check online security    if (HasLowerSecurity(target, 0))        return false;    Group* group = target->GetGroup();    std::string nameLink = GetNameLink(target);    if (!group)    {        PSendSysMessage(LANG_NOT_IN_GROUP, nameLink.c_str());        SetSentErrorMessage(true);        return false;    }    Map* gmMap = m_session->GetPlayer()->GetMap();    bool to_instance =  gmMap->Instanceable();    // we are in instance, and can summon only player in our group with us as lead    if (to_instance && (        !m_session->GetPlayer()->GetGroup() || (group->GetLeaderGUID() != m_session->GetPlayer()->GetGUID()) ||        (m_session->GetPlayer()->GetGroup()->GetLeaderGUID() != m_session->GetPlayer()->GetGUID())))        // the last check is a bit excessive, but let it be, just in case    {        SendSysMessage(LANG_CANNOT_SUMMON_TO_INST);        SetSentErrorMessage(true);        return false;    }    for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())    {        Player* player = itr->getSource();        if (!player || player == m_session->GetPlayer() || !player->GetSession())            continue;        // check online security        if (HasLowerSecurity(player, 0))            return false;        std::string plNameLink = GetNameLink(player);        if (player->IsBeingTeleported() == true)        {            PSendSysMessage(LANG_IS_TELEPORTED, plNameLink.c_str());            SetSentErrorMessage(true);            return false;        }        if (to_instance)        {            Map* plMap = player->GetMap();            if (plMap->Instanceable() && plMap->GetInstanceId() != gmMap->GetInstanceId())            {                // cannot summon from instance to instance                PSendSysMessage(LANG_CANNOT_SUMMON_TO_INST, plNameLink.c_str());                SetSentErrorMessage(true);                return false;            }        }        PSendSysMessage(LANG_SUMMONING, plNameLink.c_str(), "");        if (needReportToTarget(player))            ChatHandler(player).PSendSysMessage(LANG_SUMMONED_BY, GetNameLink().c_str());        // stop flight if need        if (player->isInFlight())        {            player->GetMotionMaster()->MovementExpired();            player->CleanupAfterTaxiFlight();        }        // save only in non-flight case        else            player->SaveRecallPosition();        // before GM        float x, y, z;        m_session->GetPlayer()->GetClosePoint(x, y, z, player->GetObjectSize());        player->TeleportTo(m_session->GetPlayer()->GetMapId(), x, y, z, player->GetOrientation());    }    return true;}
开发者ID:Bluedead,项目名称:SkyFireEMU,代码行数:91,


示例16: SendSysMessage

//Teleport to Playerbool ChatHandler::HandleAppearCommand(const char* args){    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    Player* _player = m_session->GetPlayer();    if (target == _player || target_guid == _player->GetGUID())    {        SendSysMessage(LANG_CANT_TELEPORT_SELF);        SetSentErrorMessage(true);        return false;    }    if (target)    {        // check online security        if (HasLowerSecurity(target, 0))            return false;        std::string chrNameLink = playerLink(target_name);        Map* cMap = target->GetMap();        if (cMap->IsBattlegroundOrArena())        {            // only allow if gm mode is on            if (!_player->isGameMaster())            {                PSendSysMessage(LANG_CANNOT_GO_TO_BG_GM, chrNameLink.c_str());                SetSentErrorMessage(true);                return false;            }            // if both players are in different bgs            else if (_player->GetBattlegroundId() && _player->GetBattlegroundId() != target->GetBattlegroundId())                _player->LeaveBattleground(false); // Note: should be changed so _player gets no Deserter debuff            // all's well, set bg id            // when porting out from the bg, it will be reset to 0            _player->SetBattlegroundId(target->GetBattlegroundId(), target->GetBattlegroundTypeId());            // remember current position as entry point for return at bg end teleportation            if (!_player->GetMap()->IsBattlegroundOrArena())                _player->SetBattlegroundEntryPoint();        }        else if (cMap->IsDungeon())        {            // we have to go to instance, and can go to player only if:            //   1) we are in his group (either as leader or as member)            //   2) we are not bound to any group and have GM mode on            if (_player->GetGroup())            {                // we are in group, we can go only if we are in the player group                if (_player->GetGroup() != target->GetGroup())                {                    PSendSysMessage(LANG_CANNOT_GO_TO_INST_PARTY, chrNameLink.c_str());                    SetSentErrorMessage(true);                    return false;                }            }            else            {                // we are not in group, let's verify our GM mode                if (!_player->isGameMaster())                {                    PSendSysMessage(LANG_CANNOT_GO_TO_INST_GM, chrNameLink.c_str());                    SetSentErrorMessage(true);                    return false;                }            }            // if the player or the player's group is bound to another instance            // the player will not be bound to another one            InstancePlayerBind* pBind = _player->GetBoundInstance(target->GetMapId(), target->GetDifficulty(cMap->IsRaid()));            if (!pBind)            {                Group* group = _player->GetGroup();                // if no bind exists, create a solo bind                InstanceGroupBind* gBind = group ? group->GetBoundInstance(target) : NULL;                // if no bind exists, create a solo bind                if (!gBind)                    if (InstanceSave* save = sInstanceSaveMgr->GetInstanceSave(target->GetInstanceId()))                        _player->BindToInstance(save, !save->CanReset());            }            if (cMap->IsRaid())                _player->SetRaidDifficulty(target->GetRaidDifficulty());            else                _player->SetDungeonDifficulty(target->GetDungeonDifficulty());        }        PSendSysMessage(LANG_APPEARING_AT, chrNameLink.c_str());        // stop flight if need        if (_player->isInFlight())        {            _player->GetMotionMaster()->MovementExpired();            _player->CleanupAfterTaxiFlight();        }        // save only in non-flight case//.........这里部分代码省略.........
开发者ID:Bluedead,项目名称:SkyFireEMU,代码行数:101,


示例17: PSendSysMessage

//Summon Playerbool ChatHandler::HandleSummonCommand(const char* args){    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    Player* _player = m_session->GetPlayer();    if (target == _player || target_guid == _player->GetGUID())    {        PSendSysMessage(LANG_CANT_TELEPORT_SELF);        SetSentErrorMessage(true);        return false;    }    if (target)    {        std::string nameLink = playerLink(target_name);        // check online security        if (HasLowerSecurity(target, 0))            return false;        if (target->IsBeingTeleported())        {            PSendSysMessage(LANG_IS_TELEPORTED, nameLink.c_str());            SetSentErrorMessage(true);            return false;        }        Map* map = m_session->GetPlayer()->GetMap();        if (map->IsBattlegroundOrArena())        {            // only allow if gm mode is on            if (!_player->isGameMaster())            {                PSendSysMessage(LANG_CANNOT_GO_TO_BG_GM, nameLink.c_str());                SetSentErrorMessage(true);                return false;            }            // if both players are in different bgs            else if (target->GetBattlegroundId() && m_session->GetPlayer()->GetBattlegroundId() != target->GetBattlegroundId())                target->LeaveBattleground(false); // Note: should be changed so target gets no Deserter debuff            // all's well, set bg id            // when porting out from the bg, it will be reset to 0            target->SetBattlegroundId(m_session->GetPlayer()->GetBattlegroundId(), m_session->GetPlayer()->GetBattlegroundTypeId());            // remember current position as entry point for return at bg end teleportation            if (!target->GetMap()->IsBattlegroundOrArena())                target->SetBattlegroundEntryPoint();        }        else if (map->IsDungeon())        {            Map* cMap = target->GetMap();            if (cMap->Instanceable() && cMap->GetInstanceId() != map->GetInstanceId())                target->UnbindInstance(map->GetInstanceId(), target->GetDungeonDifficulty(), true);            // we are in instance, and can summon only player in our group with us as lead            if (!m_session->GetPlayer()->GetGroup() || !target->GetGroup() ||                (target->GetGroup()->GetLeaderGUID() != m_session->GetPlayer()->GetGUID()) ||                (m_session->GetPlayer()->GetGroup()->GetLeaderGUID() != m_session->GetPlayer()->GetGUID()))                // the last check is a bit excessive, but let it be, just in case            {                PSendSysMessage(LANG_CANNOT_SUMMON_TO_INST, nameLink.c_str());                SetSentErrorMessage(true);                return false;            }        }        PSendSysMessage(LANG_SUMMONING, nameLink.c_str(), "");        if (needReportToTarget(target))            ChatHandler(target).PSendSysMessage(LANG_SUMMONED_BY, playerLink(_player->GetName()).c_str());        // stop flight if need        if (target->isInFlight())        {            target->GetMotionMaster()->MovementExpired();            target->CleanupAfterTaxiFlight();        }        // save only in non-flight case        else            target->SaveRecallPosition();        // before GM        float x, y, z;        m_session->GetPlayer()->GetClosePoint(x, y, z, target->GetObjectSize());        target->TeleportTo(m_session->GetPlayer()->GetMapId(), x, y, z, target->GetOrientation());        target->SetPhaseMask(m_session->GetPlayer()->GetPhaseMask(), true);    }    else    {        // check offline security        if (HasLowerSecurity(NULL, target_guid))            return false;        std::string nameLink = playerLink(target_name);//.........这里部分代码省略.........
开发者ID:Bluedead,项目名称:SkyFireEMU,代码行数:101,


示例18: MAKE_NEW_GUID

//show info of playerbool ChatHandler::HandlePInfoCommand(const char* args){    Player* target;    uint64 target_guid;    std::string target_name;    uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER);    if (sObjectMgr->GetPlayerNameByGUID(parseGUID, target_name))    {        target = sObjectMgr->GetPlayerByLowGUID(parseGUID);        target_guid = parseGUID;    }    else if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    uint32 accId = 0;    uint32 money = 0;    uint32 total_player_time = 0;    uint8 level = 0;    uint32 latency = 0;    uint8 race;    uint8 Class;    int64 muteTime = 0;    int64 banTime = -1;    uint32 mapId;    uint32 areaId;    uint32 phase = 0;    bool p_jail_isjailed;    uint32 p_jail_guid;    std::string p_jail_char;    uint32 p_jail_release;    bool p_jail_amnestietime;    std::string p_jail_reason;    uint32 p_jail_times;    uint32 p_jail_gmacc;    std::string p_jail_gmchar;    std::string p_jail_lasttime;    uint32 p_jail_duration;    std::string gmname;    // get additional information from Player object    if (target)    {        // check online security        if (HasLowerSecurity(target, 0))            return false;        accId = target->GetSession()->GetAccountId();        money = target->GetMoney();        total_player_time = target->GetTotalPlayedTime();        level = target->getLevel();        latency = target->GetSession()->GetLatency();        race = target->getRace();        Class = target->getClass();        muteTime = target->GetSession()->m_muteTime;        mapId = target->GetMapId();        areaId = target->GetAreaId();        phase = target->GetPhaseMask();        p_jail_isjailed = target->m_jail_isjailed;        p_jail_guid = target->m_jail_guid;        p_jail_char = target->m_jail_char;        p_jail_release = target->m_jail_release;        p_jail_amnestietime = target->m_jail_amnestietime;        p_jail_reason = target->m_jail_reason;        p_jail_times =  target->m_jail_times;        p_jail_gmacc =  target->m_jail_gmacc;        p_jail_gmchar = target->m_jail_gmchar;        p_jail_lasttime = target->m_jail_lasttime;        p_jail_duration = target->m_jail_duration;        gmname = target->GetName();    }    // get additional information from DB    else    {        // check offline security        if (HasLowerSecurity(NULL, target_guid))            return false;        //                                                     0          1      2      3        4     5      6    7        QueryResult result = CharacterDatabase.PQuery("SELECT totaltime, level, money, account, race, class, map, zone FROM characters "                                                      "WHERE guid = '%u'", GUID_LOPART(target_guid));        if (!result)          {              return false;        }        else        {        Field* fields = result->Fetch();        total_player_time = fields[0].GetUInt32();        level = fields[1].GetUInt32();        money = fields[2].GetUInt32();        accId = fields[3].GetUInt32();        race = fields[4].GetUInt8();        Class = fields[5].GetUInt8();        mapId = fields[6].GetUInt16();        areaId = fields[7].GetUInt16();        }		//.........这里部分代码省略.........
开发者ID:aedansilver,项目名称:CzechFunCore,代码行数:101,


示例19: SendSysMessage

bool ChatHandler::HandleSpectateCommand(const char *args){    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name))        return false;    Player* _player = m_session->GetPlayer();    if (target == _player || target_guid == _player->GetGUID())    {        SendSysMessage(LANG_CANT_TELEPORT_SELF);        SetSentErrorMessage(true);        return false;    }    // check online security    if (HasLowerSecurity(target, 0))        return false;    std::string chrNameLink = playerLink(target_name);    if (_player->isInCombat())    {        SendSysMessage(LANG_YOU_IN_COMBAT);        SetSentErrorMessage(true);        return false;    }    if (!target)    {        SendSysMessage(LANG_PLAYER_NOT_EXIST_OR_OFFLINE);        SetSentErrorMessage(true);        return false;    }    if (_player->GetMap()->IsBattlegroundOrArena() && !_player->isSpectator())    {        PSendSysMessage("You are already on battleground or arena.");        SetSentErrorMessage(true);        return false;    }    Map* cMap = target->GetMap();    if (!cMap->IsBattlegroundOrArena())    {        PSendSysMessage("Player didnt found in arena.");        SetSentErrorMessage(true);        return false;    }    if (_player->GetMap()->IsBattleground())    {        PSendSysMessage("Cant do that while you are on battleground.");        SetSentErrorMessage(true);        return false;    }    // all's well, set bg id    // when porting out from the bg, it will be reset to 0    _player->SetBattlegroundId(target->GetBattlegroundId(), target->GetBattlegroundTypeId());    // remember current position as entry point for return at bg end teleportation    if (!_player->GetMap()->IsBattlegroundOrArena())        _player->SetBattlegroundEntryPoint();    if (target->isSpectator())    {        PSendSysMessage("Can`t do that. Your target is spectator.");        SetSentErrorMessage(true);        return false;    }    PSendSysMessage(LANG_APPEARING_AT, chrNameLink.c_str());    // stop flight if need    if (_player->isInFlight())    {        _player->GetMotionMaster()->MovementExpired();        _player->CleanupAfterTaxiFlight();    }    // save only in non-flight case    else        _player->SaveRecallPosition();    // to point to see at target with same orientation    float x, y, z;    target->GetContactPoint(_player, x, y, z);    _player->SetSpectate(true);    _player->TeleportTo(target->GetMapId(), x, y, z, _player->GetAngle(target), TELE_TO_GM_MODE);    _player->SetPhaseMask(target->GetPhaseMask(), true);    return true;}
开发者ID:Vasilyi,项目名称:WoW_CORE,代码行数:93,


示例20: extractOptFirstArg

//mute player for some timesbool ChatHandler::HandleMuteCommand(const char* args){    std::string announce;    char* nameStr;    char* delayStr;    extractOptFirstArg((char*)args,&nameStr,&delayStr);    if (!delayStr)        return false;    char *mutereason = strtok(NULL, "/r");    std::string mutereasonstr = "Нет причины";    if (mutereason != NULL)        mutereasonstr = mutereason;    if(!mutereason)    {        PSendSysMessage("Вы должны ввести причину блокировки чата");        SetSentErrorMessage(true);        return false;    }    Player* target;    uint64 target_guid;    std::string target_name;    if (!extractPlayerTarget(nameStr,&target,&target_guid,&target_name))        return false;    uint32 account_id = target ? target->GetSession()->GetAccountId() : sObjectMgr.GetPlayerAccountIdByGUID(target_guid);    // find only player from same account if any    if (!target)        if (WorldSession* session = sWorld.FindSession(account_id))            target = session->GetPlayer();    uint32 notspeaktime = (uint32) atoi(delayStr);    // must have strong lesser security level    if (HasLowerSecurity (target,target_guid,true))        return false;    time_t mutetime = time(NULL) + notspeaktime*60;    if (target)        target->GetSession()->m_muteTime = mutetime;    LoginDatabase.PExecute("UPDATE account SET mutetime = " UI64FMTD " WHERE id = '%u'",uint64(mutetime), account_id);    if (target)        ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_DISABLED, notspeaktime, mutereasonstr.c_str());    std::string nameLink = playerLink(target_name);    PSendSysMessage(LANG_YOU_DISABLE_CHAT, nameLink.c_str(), notspeaktime, mutereasonstr.c_str());    announce = "У игрока '";    announce += nameStr;    announce += "' был отключён чат на ";    announce += delayStr;    announce += " минут персонажем '";    announce += m_session->GetPlayerName();    announce += "'. Причина: ";    announce += mutereason;    HandleAnnounceCommand(announce.c_str());    return true;}
开发者ID:ice74,项目名称:blizzwow,代码行数:68,



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


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