//.gm active bool ChatHandler::HandleGMActiveCommand(const char* args, WorldSession* m_session) { auto player = m_session->GetPlayer(); bool toggle_no_notice = std::string(args) == "no_notice" ? true : false; if (player->isGMFlagSet()) { if (!toggle_no_notice) { SystemMessage(m_session, "GM Flag removed."); BlueSystemMessage(m_session, "<GM> Will no longer show in chat messages or above your name until you use this command again."); } player->removePlayerFlags(PLAYER_FLAG_GM); player->SetFaction(player->GetInitialFactionId()); player->UpdatePvPArea(); player->UpdateVisibility(); } else { if (player->hasPlayerFlags(PLAYER_FLAG_DEVELOPER)) HandleGMDevTagCommand("no_notice", m_session); SystemMessage(m_session, "GM Flag set."); BlueSystemMessage(m_session, "<GM> will now appear above your name and in chat messages until you use this command again."); player->addPlayerFlags(PLAYER_FLAG_GM); player->SetFaction(35); player->RemovePvPFlag(); player->UpdateVisibility(); } return true; }
bool Transport::Create(ObjectGuid::LowType guidlow, uint32 entry, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress) { Relocate(x, y, z, ang); if (!IsPositionValid()) { TC_LOG_ERROR("entities.transport", "Transport (GUID: " UI64FMTD ") not created. Suggested coordinates isn't valid (X: %f Y: %f)", guidlow, x, y); return false; } Object::_Create(ObjectGuid::Create<HighGuid::Transport>(guidlow)); GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry); if (!goinfo) { TC_LOG_ERROR("sql.sql", "Transport not created: entry in `gameobject_template` not found, guidlow: " UI64FMTD " map: %u (X: %f Y: %f Z: %f) ang: %f", guidlow, mapid, x, y, z, ang); return false; } m_goInfo = goinfo; m_goTemplateAddon = sObjectMgr->GetGameObjectTemplateAddon(entry); TransportTemplate const* tInfo = sTransportMgr->GetTransportTemplate(entry); if (!tInfo) { TC_LOG_ERROR("sql.sql", "Transport %u (name: %s) will not be created, missing `transport_template` entry.", entry, goinfo->name.c_str()); return false; } _transportInfo = tInfo; // initialize waypoints _nextFrame = tInfo->keyFrames.begin(); _currentFrame = _nextFrame++; _triggeredArrivalEvent = false; _triggeredDepartureEvent = false; if (m_goTemplateAddon) { SetFaction(m_goTemplateAddon->faction); SetUInt32Value(GAMEOBJECT_FLAGS, m_goTemplateAddon->flags); } m_goValue.Transport.PathProgress = 0; SetObjectScale(goinfo->size); SetPeriod(tInfo->pathTime); SetEntry(goinfo->entry); SetDisplayId(goinfo->displayId); SetGoState(!goinfo->moTransport.allowstopping ? GO_STATE_READY : GO_STATE_ACTIVE); SetGoType(GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT); SetGoAnimProgress(animprogress); SetName(goinfo->name); SetWorldRotation(0.0f, 0.0f, 0.0f, 1.0f); SetParentRotation(QuaternionData()); m_model = CreateModel(); return true; }
bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress) { Relocate(x, y, z, ang); if (!IsPositionValid()) { TC_LOG_ERROR("entities.transport", "Transport (GUID: %u) not created. Suggested coordinates isn't valid (X: %f Y: %f)", guidlow, x, y); return false; } Object::_Create(guidlow, 0, HIGHGUID_MO_TRANSPORT); GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry); if (!goinfo) { TC_LOG_ERROR("sql.sql", "Transport not created: entry in `gameobject_template` not found, guidlow: %u map: %u (X: %f Y: %f Z: %f) ang: %f", guidlow, mapid, x, y, z, ang); return false; } m_goInfo = goinfo; TransportTemplate const* tInfo = sTransportMgr->GetTransportTemplate(entry); if (!tInfo) { TC_LOG_ERROR("sql.sql", "Transport %u (name: %s) will not be created, missing `transport_template` entry.", entry, goinfo->name.c_str()); return false; } _transportInfo = tInfo; // initialize waypoints _nextFrame = tInfo->keyFrames.begin(); _currentFrame = _nextFrame++; _triggeredArrivalEvent = false; _triggeredDepartureEvent = false; m_goValue.Transport.PathProgress = 0; SetObjectScale(goinfo->size); SetFaction(goinfo->faction); SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags); SetPeriod(tInfo->pathTime); SetEntry(goinfo->entry); SetDisplayId(goinfo->displayId); SetGoState(!goinfo->moTransport.canBeStopped ? GO_STATE_READY : GO_STATE_ACTIVE); SetGoType(GAMEOBJECT_TYPE_MO_TRANSPORT); SetGoAnimProgress(animprogress); SetName(goinfo->name); UpdateRotationFields(0.0f, 1.0f); m_model = GameObjectModel::Create(*this); return true; }
void CFlowNode_SetTurretFaction::ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo) { switch (event) { case eFE_Activate: { if (IsPortActive(pActInfo, InputPort_Set)) SetFaction(pActInfo); break; } } }
void CompanionSummon::Load(CreatureProto* proto, Unit* owner, LocationVector & position, uint32 spellid, int32 summonslot) { Summon::Load(proto, owner, position, spellid, summonslot); SetFaction(35); setLevel(1); m_aiInterface->Init(this, AITYPE_PET, MOVEMENTTYPE_NONE, owner); m_aiInterface->SetUnitToFollow(owner); m_aiInterface->SetUnitToFollowAngle(-M_PI_FLOAT / 2); m_aiInterface->SetFollowDistance(3.0f); m_aiInterface->disable_melee = true; bInvincible = true; RemovePvPFlag(); RemoveFFAPvPFlag(); }
void Summon::Load(CreatureProto* proto, Unit* owner, LocationVector & position, uint32 spellid, int32 summonslot) { ARCEMU_ASSERT(owner != NULL); Creature::Load(proto, owner->GetMapMgr(), position.x, position.y, position.z, position.o); SetFaction(owner->GetFaction()); Phase(PHASE_SET, owner->GetPhase()); SetZoneId(owner->GetZoneId()); SetCreatedBySpell(spellid); this->summonslot = summonslot; if (owner->IsPvPFlagged()) SetPvPFlag(); else RemovePvPFlag(); if (owner->IsFFAPvPFlagged()) SetFFAPvPFlag(); else RemoveFFAPvPFlag(); if (owner->IsSanctuaryFlagged()) SetSanctuaryFlag(); else RemoveSanctuaryFlag(); SetCreatedByGUID(owner->GetGUID()); if (owner->GetSummonedByGUID() == 0) SetSummonedByGUID(owner->GetGUID()); else SetSummonedByGUID(owner->GetSummonedByGUID()); this->owner = owner; if (owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE)) SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); }