这篇教程C++ HasLowerSecurity函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中HasLowerSecurity函数的典型用法代码示例。如果您正苦于以下问题:C++ HasLowerSecurity函数的具体用法?C++ HasLowerSecurity怎么用?C++ HasLowerSecurity使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了HasLowerSecurity函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: HandleCombatStopCommandbool 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: HandleSpectateFromCommandbool 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: HandleRepairitemsCommandbool 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: SendSysMessagebool 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函数代码示例 |