From 014adaa0fd14a3f316588b0829ceea1960af12d5 Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Wed, 3 Sep 2014 17:25:36 -0300 Subject: Core/Tickets: Send global GM system messages on ticket complete --- sql/updates/world/2014_09_03_01_world_trinity_string.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 sql/updates/world/2014_09_03_01_world_trinity_string.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_03_01_world_trinity_string.sql b/sql/updates/world/2014_09_03_01_world_trinity_string.sql new file mode 100644 index 00000000000..0586c31e3d2 --- /dev/null +++ b/sql/updates/world/2014_09_03_01_world_trinity_string.sql @@ -0,0 +1,5 @@ +-- Implements in-game gm message when tickets are completed +SET @LANG_COMMAND_TICKETCOMPLETED := 2030; +DELETE FROM `trinity_string` WHERE `entry` = @LANG_COMMAND_TICKETCOMPLETED; +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES (@LANG_COMMAND_TICKETCOMPLETED, '|cff00ff00Completed by|r:|cff00ccff %s|r'); + -- cgit v1.2.3 From 87ed5de7e655ca7fec389415d67569c4aa755fdb Mon Sep 17 00:00:00 2001 From: mik1893 Date: Mon, 1 Sep 2014 13:06:21 +0200 Subject: Scripts/Onyxia Lair: small rework - fix crash on boss death - avoid abusing during phase switch - added better facing through trigger - corrected some timers - corrected inhabit type - cleanup and inheriting some BossAI functionalities instead of custom stuff --- sql/updates/world/2014_09_01_01_world_onyxia.sql | 2 + .../scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp | 114 ++++++++++++--------- .../Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp | 17 +++ .../scripts/Kalimdor/OnyxiasLair/onyxias_lair.h | 7 +- 4 files changed, 90 insertions(+), 50 deletions(-) create mode 100644 sql/updates/world/2014_09_01_01_world_onyxia.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_01_01_world_onyxia.sql b/sql/updates/world/2014_09_01_01_world_onyxia.sql new file mode 100644 index 00000000000..99824d2d47a --- /dev/null +++ b/sql/updates/world/2014_09_01_01_world_onyxia.sql @@ -0,0 +1,2 @@ +UPDATE creature_template SET InhabitType = 5 WHERE entry = 10184; +UPDATE creature_template SET InhabitType = 5 WHERE entry = 36538; diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index f04b5634616..347c87b160b 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -111,6 +111,7 @@ static OnyxMove MoveData[8]= Position const MiddleRoomLocation = {-23.6155f, -215.357f, -55.7344f, 0.0f}; Position const Phase2Location = {-80.924f, -214.299f, -82.942f, 0.0f}; +Position const Phase2Floating = { -80.924f, -214.299f, -57.942f, 0.0f }; Position const SpawnLocations[3]= { @@ -128,7 +129,7 @@ public: struct boss_onyxiaAI : public BossAI { - boss_onyxiaAI(Creature* creature) : BossAI(creature, DATA_ONYXIA), Summons(me) + boss_onyxiaAI(Creature* creature) : BossAI(creature, DATA_ONYXIA) { Reset(); } @@ -138,16 +139,16 @@ public: if (!IsCombatMovementAllowed()) SetCombatMovement(true); + _Reset(); + Phase = PHASE_START; MovePoint = urand(0, 5); PointData = GetMoveData(); - Summons.DespawnAll(); SummonWhelpCount = 0; IsMoving = false; - instance->SetBossState(DATA_ONYXIA, NOT_STARTED); instance->SetData(DATA_ONYXIA_PHASE, Phase); - instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); + instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } void EnterCombat(Unit* /*who*/) override @@ -155,20 +156,15 @@ public: Talk(SAY_AGGRO); me->SetInCombatWithZone(); - events.ScheduleEvent(EVENT_FLAME_BREATH, urand (10000, 20000)); - events.ScheduleEvent(EVENT_TAIL_SWEEP, urand (15000, 20000)); - events.ScheduleEvent(EVENT_CLEAVE, urand (2000, 5000)); - events.ScheduleEvent(EVENT_WING_BUFFET, urand (10000, 20000)); - - instance->SetBossState(DATA_ONYXIA, IN_PROGRESS); - instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); - } + events.Reset(); - void JustDied(Unit* /*killer*/) override - { - instance->SetBossState(DATA_ONYXIA, DONE); + events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); + events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); + events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); + events.ScheduleEvent(EVENT_WING_BUFFET, urand(10000, 20000)); - Summons.DespawnAll(); + instance->SetBossState(DATA_ONYXIA, IN_PROGRESS); + instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } void JustSummoned(Creature* summoned) override @@ -186,13 +182,9 @@ public: summoned->setActive(true); break; } - Summons.Summon(summoned); + summons.Summon(summoned); } - void SummonedCreatureDespawn(Creature* summon) override - { - Summons.Despawn(summon); - } void KilledUnit(Unit* /*victim*/) override { @@ -231,22 +223,43 @@ public: } break; case 9: - me->GetMotionMaster()->MoveChase(me->GetVictim()); - events.ScheduleEvent(EVENT_BELLOWING_ROAR, 1000); + me->SetCanFly(false); + me->SetDisableGravity(false); + me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TRIGGER_GUID))) + me->Kill(trigger); + me->SetReactState(REACT_AGGRESSIVE); + // tank selection based on phase one. If tank is not there i take nearest one + if (Unit* tank = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_TANK_GUID))) + me->GetMotionMaster()->MoveChase(tank); + else if (Unit* newtarget = SelectTarget(SELECT_TARGET_NEAREST, 0)) + me->GetMotionMaster()->MoveChase(newtarget); + events.ScheduleEvent(EVENT_BELLOWING_ROAR, 5000); + events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); + events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); + events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); + events.ScheduleEvent(EVENT_WING_BUFFET, urand(15000, 30000)); break; case 10: me->SetCanFly(true); - me->GetMotionMaster()->MovePoint(11, Phase2Location.GetPositionX(), Phase2Location.GetPositionY(), Phase2Location.GetPositionZ()+25); + me->SetDisableGravity(true); + me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + me->SetFacingTo(me->GetOrientation() + float(M_PI)); + if (Creature * trigger = me->SummonCreature(NPC_TRIGGER, MiddleRoomLocation, TEMPSUMMON_CORPSE_DESPAWN)) + instance->SetData64(DATA_TRIGGER_GUID, trigger->GetGUID()); + me->GetMotionMaster()->MoveTakeoff(11, Phase2Floating); me->SetSpeed(MOVE_FLIGHT, 1.0f); Talk(SAY_PHASE_2_TRANS); instance->SetData(DATA_ONYXIA_PHASE, Phase); events.ScheduleEvent(EVENT_WHELP_SPAWN, 5000); events.ScheduleEvent(EVENT_LAIR_GUARD, 15000); + events.ScheduleEvent(EVENT_DEEP_BREATH, 75000); + events.ScheduleEvent(EVENT_MOVEMENT, 10000); + events.ScheduleEvent(EVENT_FIREBALL, 18000); break; case 11: if (PointData) me->GetMotionMaster()->MovePoint(PointData->LocId, PointData->fX, PointData->fY, PointData->fZ); - me->GetMotionMaster()->Clear(false); me->GetMotionMaster()->MoveIdle(); break; default: @@ -272,13 +285,13 @@ public: (Spell->Id >= 22267 && Spell->Id <= 22268)) && (target->GetTypeId() == TYPEID_PLAYER)) { - instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL); + instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL); } } OnyxMove* GetMoveData() { - uint8 MaxCount = sizeof(MoveData)/sizeof(OnyxMove); + uint8 MaxCount = sizeof(MoveData) / sizeof(OnyxMove); for (uint8 i = 0; i < MaxCount; ++i) { @@ -291,9 +304,9 @@ public: void SetNextRandomPoint() { - uint8 MaxCount = sizeof(MoveData)/sizeof(OnyxMove); + uint8 MaxCount = sizeof(MoveData) / sizeof(OnyxMove); - uint8 iTemp = urand(0, MaxCount-1); + uint8 iTemp = urand(0, MaxCount - 1); if (iTemp >= MovePoint) ++iTemp; @@ -312,15 +325,13 @@ public: //Specific to PHASE_START || PHASE_END if (Phase == PHASE_START) { - if (HealthBelowPct(60)) + if (HealthBelowPct(65)) { SetCombatMovement(false); Phase = PHASE_BREATH; - events.ScheduleEvent(EVENT_DEEP_BREATH, 85000); - events.ScheduleEvent(EVENT_MOVEMENT, 14000); - events.ScheduleEvent(EVENT_FIREBALL, 15000); - events.ScheduleEvent(EVENT_LAIR_GUARD, 60000); - events.ScheduleEvent(EVENT_WHELP_SPAWN, 60000); + instance->SetData64(DATA_TANK_GUID, me->GetVictim()->GetGUID()); + me->SetReactState(REACT_PASSIVE); + me->AttackStop(); me->GetMotionMaster()->MovePoint(10, Phase2Location); return; } @@ -347,19 +358,19 @@ public: } case EVENT_FLAME_BREATH: // Phase PHASE_START and PHASE_END DoCastVictim(SPELL_FLAME_BREATH); - events.ScheduleEvent(EVENT_FLAME_BREATH, urand (10000, 20000)); + events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); break; case EVENT_TAIL_SWEEP: // Phase PHASE_START and PHASE_END DoCastAOE(SPELL_TAIL_SWEEP); - events.ScheduleEvent(EVENT_TAIL_SWEEP, urand (15000, 20000)); + events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); break; case EVENT_CLEAVE: // Phase PHASE_START and PHASE_END DoCastVictim(SPELL_CLEAVE); - events.ScheduleEvent(EVENT_CLEAVE, urand (2000, 5000)); + events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); break; case EVENT_WING_BUFFET: // Phase PHASE_START and PHASE_END DoCastVictim(SPELL_WING_BUFFET); - events.ScheduleEvent(EVENT_WING_BUFFET, urand (15000, 30000)); + events.ScheduleEvent(EVENT_WING_BUFFET, urand(15000, 30000)); break; default: break; @@ -374,15 +385,18 @@ public: Phase = PHASE_END; instance->SetData(DATA_ONYXIA_PHASE, PHASE_END); Talk(SAY_PHASE_3_TRANS); - SetCombatMovement(true); - me->SetCanFly(false); IsMoving = false; - me->GetMotionMaster()->MovePoint(9, me->GetHomePosition()); + Position const pos = me->GetHomePosition(); + me->GetMotionMaster()->MovePoint(9, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ() + 12.0f); events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000); return; } + if (!me->isMoving()) + if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TRIGGER_GUID))) + me->SetFacingToObject(trigger); + events.Update(diff); while (uint32 eventId = events.ExecuteEvent()) @@ -398,8 +412,10 @@ public: Talk(EMOTE_BREATH); if (PointData) /// @todo: In what cases is this null? What should we do? DoCast(me, PointData->SpellId); - events.ScheduleEvent(EVENT_DEEP_BREATH, 70000); + events.ScheduleEvent(EVENT_DEEP_BREATH, 75000); } + else + events.ScheduleEvent(EVENT_DEEP_BREATH, 1000); break; case EVENT_MOVEMENT: // Phase PHASE_BREATH if (!IsMoving && !(me->HasUnitState(UNIT_STATE_CASTING))) @@ -414,18 +430,21 @@ public: IsMoving = true; events.ScheduleEvent(EVENT_MOVEMENT, 25000); } + else + events.ScheduleEvent(EVENT_MOVEMENT, 500); break; case EVENT_FIREBALL: // Phase PHASE_BREATH - if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != POINT_MOTION_TYPE) + if (!IsMoving) { if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) DoCast(target, SPELL_FIREBALL); - events.ScheduleEvent(EVENT_FIREBALL, 8000); } + else + events.ScheduleEvent(EVENT_FIREBALL, 1000); break; case EVENT_LAIR_GUARD: // Phase PHASE_BREATH - me->SummonCreature(NPC_LAIRGUARD, SpawnLocations[2], TEMPSUMMON_CORPSE_DESPAWN); + me->SummonCreature(NPC_LAIRGUARD, SpawnLocations[2], TEMPSUMMON_CORPSE_DESPAWN); events.ScheduleEvent(EVENT_LAIR_GUARD, 30000); break; case EVENT_WHELP_SPAWN: // Phase PHASE_BREATH @@ -437,7 +456,7 @@ public: events.ScheduleEvent(EVENT_WHELP_SPAWN, 90000); } else - events.ScheduleEvent(EVENT_WHELP_SPAWN, 500); + events.ScheduleEvent(EVENT_WHELP_SPAWN, 500); break; default: break; @@ -447,7 +466,6 @@ public: } private: - SummonList Summons; OnyxMove* PointData; uint8 Phase; uint8 MovePoint; diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp index e6a08ade87f..36314366f12 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp @@ -53,6 +53,8 @@ public: SetBossNumber(EncounterCount); onyxiaGUID = 0; + triggerGUID = 0; + tankGUID = 0; onyxiaLiftoffTimer = 0; manyWhelpsCounter = 0; eruptTimer = 0; @@ -181,6 +183,12 @@ public: FloorEruptionGUIDQueue.push(data); eruptTimer = 2500; break; + case DATA_TRIGGER_GUID: + triggerGUID = data; + break; + case DATA_TANK_GUID: + tankGUID = data; + break; } } @@ -190,6 +198,13 @@ public: { case NPC_ONYXIA: return onyxiaGUID; + break; + case DATA_TRIGGER_GUID: + return triggerGUID; + break; + case DATA_TANK_GUID: + return tankGUID; + break; } return 0; @@ -298,6 +313,8 @@ public: std::map FloorEruptionGUID[2]; std::queue FloorEruptionGUIDQueue; uint64 onyxiaGUID; + uint64 triggerGUID; + uint64 tankGUID; uint32 onyxiaLiftoffTimer; uint32 manyWhelpsCounter; uint32 eruptTimer; diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h index cacbd8b2787..f98d1a83655 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h +++ b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h @@ -35,7 +35,9 @@ enum Data32 enum Data64 { DATA_ONYXIA_GUID = 0, - DATA_FLOOR_ERUPTION_GUID = 1 + DATA_FLOOR_ERUPTION_GUID = 1, + DATA_TRIGGER_GUID = 2, + DATA_TANK_GUID = 3 }; enum OnyxiaPhases @@ -49,7 +51,8 @@ enum CreatureIds { NPC_WHELP = 11262, NPC_LAIRGUARD = 36561, - NPC_ONYXIA = 10184 + NPC_ONYXIA = 10184, + NPC_TRIGGER = 14495 }; enum GameObjectIds -- cgit v1.2.3 From 5efd2579e5666a5330dd1f58028f3c30695746a8 Mon Sep 17 00:00:00 2001 From: Odyssey Date: Fri, 5 Sep 2014 12:38:31 +0200 Subject: Scripts/Commands: Move cs_misc command output hardcoded strings to DB so they can be localized too --- .../world/2014_XX_XX_XX_world_trinity_string.sql | 11 +++++ src/server/game/Miscellaneous/Language.h | 16 ++++-- src/server/scripts/Commands/cs_ban.cpp | 4 +- src/server/scripts/Commands/cs_misc.cpp | 57 +++++++++++----------- 4 files changed, 53 insertions(+), 35 deletions(-) create mode 100644 sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql b/sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql new file mode 100644 index 00000000000..172a4bdc381 --- /dev/null +++ b/sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql @@ -0,0 +1,11 @@ +-- Move cs_misc command output hardcoded strings to DB so they can be localized too +DELETE FROM `trinity_string` WHERE `entry` IN (5030,5035,5039,5040,5041,5042,5043,5044); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +(5030, ''), +(5035, 'No reason'), +(5039, 'Console'), +(5040, 'Character'), +(5041, 'Permanently'), +(5042, 'You are outdoors'), +(5043, 'You are indoors'), +(5044, 'no VMAP available for area info'); diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 66cae69cb33..cb26e63f6fe 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -404,8 +404,8 @@ enum TrinityStrings LANG_BANINFO_HISTORYENTRY = 418, LANG_BANINFO_INFINITE = 419, LANG_BANINFO_NEVER = 420, - LANG_BANINFO_YES = 421, - LANG_BANINFO_NO = 422, + LANG_YES = 421, + LANG_NO = 422, LANG_BANINFO_IPENTRY = 423, LANG_BANLIST_NOIP = 424, @@ -1078,16 +1078,22 @@ enum TrinityStrings LANG_GOINFO_NAME = 5027, LANG_GOINFO_LOOTID = 5028, LANG_COMMAND_LOOKUP_MAX_RESULTS = 5029, - // unused = 5030, + LANG_UNAUTHORIZED = 5030, LANG_NPCINFO_AIINFO = 5031, LANG_COMMAND_NO_BATTLEGROUND_FOUND = 5032, LANG_COMMAND_NO_ACHIEVEMENT_CRITERIA_FOUND = 5033, LANG_COMMAND_NO_OUTDOOR_PVP_FORUND = 5034, - // unused = 5035, + LANG_NO_REASON = 5035, LANG_NPCINFO_EQUIPMENT = 5036, LANG_NPCINFO_MECHANIC_IMMUNE = 5037, LANG_NPCINFO_UNIT_FIELD_FLAGS = 5038, - // Room for more Trinity strings 5039-9999 + LANG_CONSOLE = 5039, + LANG_CHARACTER = 5040, + LANG_PERMANENTLY = 5041, + LANG_GPS_POSITION_OUTDOORS = 5042, + LANG_GPS_POSITION_INDOORS = 5043, + LANG_GPS_NO_VMAP = 5044, + // Room for more Trinity strings 5045-9999 // Level requirement notifications LANG_SAY_REQ = 6604, diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp index a90bbd69e24..6143a4ca344 100644 --- a/src/server/scripts/Commands/cs_ban.cpp +++ b/src/server/scripts/Commands/cs_ban.cpp @@ -287,7 +287,7 @@ public: bool permanent = (fields[1].GetUInt64() == uint64(0)); std::string banTime = permanent ? handler->GetTrinityString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt64(), true); handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY, - fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_BANINFO_YES) : handler->GetTrinityString(LANG_BANINFO_NO), fields[4].GetCString(), fields[5].GetCString()); + fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO), fields[4].GetCString(), fields[5].GetCString()); } while (result->NextRow()); @@ -340,7 +340,7 @@ public: bool permanent = (fields[1].GetUInt32() == uint32(0)); std::string banTime = permanent ? handler->GetTrinityString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt32(), true); handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY, - fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_BANINFO_YES) : handler->GetTrinityString(LANG_BANINFO_NO), fields[4].GetCString(), fields[5].GetCString()); + fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO), fields[4].GetCString(), fields[5].GetCString()); } while (result->NextRow()); diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 9cb7173556a..80b7710cd21 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -192,17 +192,17 @@ public: if (haveVMap) { if (map->IsOutdoors(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ())) - handler->PSendSysMessage("You are outdoors"); + handler->PSendSysMessage(LANG_GPS_POSITION_OUTDOORS); else - handler->PSendSysMessage("You are indoors"); + handler->PSendSysMessage(LANG_GPS_POSITION_INDOORS); } else - handler->PSendSysMessage("no VMAP available for area info"); + handler->PSendSysMessage(LANG_GPS_NO_VMAP); handler->PSendSysMessage(LANG_MAP_POSITION, - mapId, (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : ""), - zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : ""), - areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : ""), + mapId, (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), + zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), + areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(), cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(), @@ -808,7 +808,7 @@ public: if (handler->HasLowerSecurity(target, 0)) return false; - std::string kickReasonStr = "No reason"; + std::string kickReasonStr = handler->GetTrinityString(LANG_NO_REASON); if (*args != '\0') { char const* kickReason = strtok(NULL, "\r"); @@ -1441,22 +1441,22 @@ public: std::string lastLogin = handler->GetTrinityString(LANG_ERROR); uint32 failedLogins = 0; uint32 latency = 0; - std::string OS = "None"; + std::string OS = handler->GetTrinityString(LANG_UNKNOWN); // Mute data print variables int64 muteTime = -1; - std::string muteReason = "unknown"; - std::string muteBy = "unknown"; + std::string muteReason = handler->GetTrinityString(LANG_NO_REASON); + std::string muteBy = handler->GetTrinityString(LANG_UNKNOWN); // Ban data print variables int64 banTime = -1; - std::string banType = "None"; - std::string banReason = "Unknown"; - std::string bannedBy = "Unknown"; + std::string banType = handler->GetTrinityString(LANG_UNKNOWN); + std::string banReason = handler->GetTrinityString(LANG_NO_REASON); + std::string bannedBy = handler->GetTrinityString(LANG_UNKNOWN); // Character data print variables uint8 raceid, classid = 0; //RACE_NONE, CLASS_NONE - std::string raceStr, classStr = "None"; + std::string raceStr, classStr = handler->GetTrinityString(LANG_UNKNOWN); uint8 gender = 0; int8 locale = handler->GetSessionDbcLocale(); uint32 totalPlayerTime = 0; @@ -1470,8 +1470,8 @@ public: uint32 mapId; uint32 areaId; uint32 phase = 0; - std::string areaName = ""; - std::string zoneName = ""; + std::string areaName = handler->GetTrinityString(LANG_UNKNOWN); + std::string zoneName = handler->GetTrinityString(LANG_UNKNOWN); // Guild data print variables defined so that they exist, but are not necessarily used uint32 guildId = 0; @@ -1499,7 +1499,7 @@ public: muteTime = target->GetSession()->m_muteTime; mapId = target->GetMapId(); areaId = target->GetAreaId(); - alive = target->IsAlive() ? "Yes" : "No"; + alive = target->IsAlive() ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO); gender = target->getGender(); phase = target->GetPhaseMask(); } @@ -1532,9 +1532,9 @@ public: uint32 playerFlags = fields[10].GetUInt32(); if (!health || playerFlags & PLAYER_FLAGS_GHOST) - alive = "No"; + alive = handler->GetTrinityString(LANG_NO); else - alive = "Yes"; + alive = handler->GetTrinityString(LANG_YES); } // Query the prepared statement for login data @@ -1574,9 +1574,10 @@ public: } else { - eMail = "Unauthorized"; - lastIp = "Unauthorized"; - lastLogin = "Unauthorized"; + eMail = handler->GetTrinityString(LANG_UNAUTHORIZED); + regMail = handler->GetTrinityString(LANG_UNAUTHORIZED); + lastIp = handler->GetTrinityString(LANG_UNAUTHORIZED); + lastLogin = handler->GetTrinityString(LANG_UNAUTHORIZED); } muteTime = fields[6].GetUInt64(); muteReason = fields[7].GetString(); @@ -1595,7 +1596,7 @@ public: PreparedQueryResult result2 = LoginDatabase.Query(stmt2); if (!result2) { - banType = "Character"; + banType = handler->GetTrinityString(LANG_CHARACTER); stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_BANS); stmt->setUInt32(0, lowguid); result2 = CharacterDatabase.Query(stmt); @@ -1652,7 +1653,7 @@ public: // Output III. LANG_PINFO_BANNED if ban exists and is applied if (banTime >= 0) - handler->PSendSysMessage(LANG_PINFO_BANNED, banType.c_str(), banReason.c_str(), banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : "permanently", bannedBy.c_str()); + handler->PSendSysMessage(LANG_PINFO_BANNED, banType.c_str(), banReason.c_str(), banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : handler->GetTrinityString(LANG_PERMANENTLY), bannedBy.c_str()); // Output IV. LANG_PINFO_MUTED if mute is applied if (muteTime > 0) @@ -1671,7 +1672,7 @@ public: handler->PSendSysMessage(LANG_PINFO_ACC_REGMAILS, regMail.c_str(), eMail.c_str()); // Output IX. LANG_PINFO_ACC_IP - handler->PSendSysMessage(LANG_PINFO_ACC_IP, lastIp.c_str(), locked ? "Yes" : "No"); + handler->PSendSysMessage(LANG_PINFO_ACC_IP, lastIp.c_str(), locked ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO)); // Output X. LANG_PINFO_CHR_LEVEL if (level != sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) @@ -1710,7 +1711,7 @@ public: } if (target) - handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], (!zoneName.empty() ? zoneName.c_str() : ""), (!areaName.empty() ? areaName.c_str() : "")); + handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], (!zoneName.empty() ? zoneName.c_str() : handler->GetTrinityString(LANG_UNKNOWN)), (!areaName.empty() ? areaName.c_str() : handler->GetTrinityString(LANG_UNKNOWN))); // Output XVII. - XVIX. if they are not empty if (!guildName.empty()) @@ -1790,7 +1791,7 @@ public: return false; char const* muteReason = strtok(NULL, "\r"); - std::string muteReasonStr = "No reason"; + std::string muteReasonStr = handler->GetTrinityString(LANG_NO_REASON); if (muteReason != NULL) muteReasonStr = muteReason; @@ -1818,7 +1819,7 @@ public: if (handler->GetSession()) muteBy = handler->GetSession()->GetPlayerName(); else - muteBy = "Console"; + muteBy = handler->GetTrinityString(LANG_CONSOLE); if (target) { -- cgit v1.2.3 From 245be07d2c8eb4fb1902378fbeacf0fae7245508 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Fri, 5 Sep 2014 18:24:20 +0100 Subject: DB/SAI: To Rule the Skies Proper script for Obsidia / Obsidia's Egg for quest http://www.wowhead.com/quest=11078/to-rule-the-skies Now reagents are taken and Obsidia spawned using correct spells Ie http://www.wowhead.com/spell=41035 (Four Dragons: Force Cast - Obsidia) which is cast on player as invoker cast when gossip option selected which triggers http://www.wowhead.com/spell=41036 (Four Dragons: Reagents - Obsidia) which requires 35 apexis shards as reagents this deducting these and then triggers http://www.wowhead.com/spell=40682 (http://www.wowhead.com/spell=40682) which triggers event to spawn Previous script was not using spells and was using sai to deduct shards and spawn obsidia. --- sql/updates/world/2014_09_05_02_world_sai.sql | 50 +++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sql/updates/world/2014_09_05_02_world_sai.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_05_02_world_sai.sql b/sql/updates/world/2014_09_05_02_world_sai.sql new file mode 100644 index 00000000000..1c6b1f02213 --- /dev/null +++ b/sql/updates/world/2014_09_05_02_world_sai.sql @@ -0,0 +1,50 @@ +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=23282; + + +DELETE FROM `smart_scripts` WHERE `entryorguid`=185932 AND `source_type`=1; + +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(185932, 1, 0, 1, 62, 0, 100, 0, 8685, 0, 0, 0, 85, 41035, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Invoker Cast 41035 Four Dragons: Force Cast - Obsidia'), +(185932, 1, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Close Gossip'); + +DELETE FROM `event_scripts` WHERE `id`=15005; +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(15005, 1, 10, 23364, 100000, 0, 2426.954, 7001.479, 367.3824, 0), +(15005, 0, 10, 23282, 300000, 0, 2424.975, 6933.425, 409.5501, 1.43117); + + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` =23364; +DELETE FROM `smart_scripts` WHERE `entryorguid` =23364 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` =23282 AND `source_type`=0 AND `id`>4; + +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(23364, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 11, 15750, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Cast Rookery Whelp Spawn-in Spell'), +(23364, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Say'), +(23364, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 18, 33536, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Set Unit Flags'), +(23364, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 14, 27915, 185932, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Despawn Obsidia\'s Egg'), +(23364, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 23364, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Start WP'), +(23364, 0, 5, 6, 40, 0, 100, 0, 2, 23364, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 23282, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Reached WP2 - Set Data on Obsidia'), +(23364, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - Reached WP2 - Despawn'), +(23282, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Spawn - Set Unit Flags'), +(23282, 0, 6, 7, 38, 0, 100, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Data Set - Say'), +(23282, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 1, 23282, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Data Set - Start WP'), +(23282, 0, 8, 9, 40, 0, 100, 0, 1, 23282, 0, 0, 94, 280, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Dynamic Flags'), +(23282, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Unit Flags'), +(23282, 0, 10, 11, 61, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Home Position'), +(23282, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Aggresive'); + +DELETE FROM `creature_text` WHERE `entry` IN(23364,23282); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(23364, 0, 0, 'The %s screams out for its mother.', 16, 0, 100, 0, 0, 431, 'Black Dragon Whelpling',21420), +(23282, 0, 0, 'I believe that I shall feast upon both $r and ogre flesh tonight.', 14, 0, 100, 0, 0, 7274, 'Obsidia',21718); + + +DELETE FROM `waypoints` WHERE `entry` IN(23364,23282); + +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(23364, 1,2425.253, 6994.862, 368.0848, 'Black Dragon Whelpling'), +(23364, 2,2424.881, 6998.754, 367.8495, 'Black Dragon Whelpling'), +(23282, 1,2428.085, 6980.77, 369.7684, 'Obsidia'); + + + -- cgit v1.2.3 From b3c9d44d36836a1f956f08f535d2db0b083058c3 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Fri, 5 Sep 2014 20:21:32 +0100 Subject: DB/SAI: Also fix the other of the four dragons Already fixed Obsidia from sniff I dont have sniffs of the other 3 but can still make these so the summon and payment occurs in properway. As with Obsidia all dragons are spawned by event script which is triggered from spell, egg despawns to prevent multiple spawns (even though this would be rather stupid as costs 35 shards to call each dragon. --- sql/updates/world/2014_09_05_03_world_sai.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 sql/updates/world/2014_09_05_03_world_sai.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_05_03_world_sai.sql b/sql/updates/world/2014_09_05_03_world_sai.sql new file mode 100644 index 00000000000..37deab39085 --- /dev/null +++ b/sql/updates/world/2014_09_05_03_world_sai.sql @@ -0,0 +1,17 @@ +DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid` IN (185937,185938,185936); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(185937, 1, 0, 1, 62, 0, 100, 0, 8690, 0, 0, 0, 85, 41050, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Furywing'), +(185938, 1, 0, 1, 62, 0, 100, 0, 8691, 0, 0, 0, 85, 41052, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Insidion'), +(185936, 1, 0, 1, 62, 0, 100, 0, 8689, 0, 0, 0, 85, 41044, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Rivendark'), +(185937, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185938, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185936, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185937, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185938, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185936, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Despawn GO'); + +DELETE FROM `event_scripts` WHERE `id` IN(15004,15002); +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(15004, 0, 10, 23061, 300000, 0, 2060.6, 7418.53, 391.098, 0), +(15002, 0, 10, 23281, 300000, 0, 4176.5, 5452.21, 291.923, 0), +(15003, 0, 10, 23261, 300000, 0, 3845.31, 5220.04, 295.412, 0); -- cgit v1.2.3 From 40ed666521e0e671478aa8306ec01e9a25ffc0c9 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Fri, 5 Sep 2014 21:59:55 +0100 Subject: SQLs: Rename SQLs after recent PR merges --- sql/updates/world/2014_09_01_01_world_onyxia.sql | 2 -- sql/updates/world/2014_09_03_01_world_trinity_string.sql | 5 ----- sql/updates/world/2014_09_05_04_world_trinity_string.sql | 5 +++++ sql/updates/world/2014_09_05_05_world_trinity_string.sql | 11 +++++++++++ sql/updates/world/2014_09_05_06_world_onyxia.sql | 2 ++ sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql | 11 ----------- 6 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 sql/updates/world/2014_09_01_01_world_onyxia.sql delete mode 100644 sql/updates/world/2014_09_03_01_world_trinity_string.sql create mode 100644 sql/updates/world/2014_09_05_04_world_trinity_string.sql create mode 100644 sql/updates/world/2014_09_05_05_world_trinity_string.sql create mode 100644 sql/updates/world/2014_09_05_06_world_onyxia.sql delete mode 100644 sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_01_01_world_onyxia.sql b/sql/updates/world/2014_09_01_01_world_onyxia.sql deleted file mode 100644 index 99824d2d47a..00000000000 --- a/sql/updates/world/2014_09_01_01_world_onyxia.sql +++ /dev/null @@ -1,2 +0,0 @@ -UPDATE creature_template SET InhabitType = 5 WHERE entry = 10184; -UPDATE creature_template SET InhabitType = 5 WHERE entry = 36538; diff --git a/sql/updates/world/2014_09_03_01_world_trinity_string.sql b/sql/updates/world/2014_09_03_01_world_trinity_string.sql deleted file mode 100644 index 0586c31e3d2..00000000000 --- a/sql/updates/world/2014_09_03_01_world_trinity_string.sql +++ /dev/null @@ -1,5 +0,0 @@ --- Implements in-game gm message when tickets are completed -SET @LANG_COMMAND_TICKETCOMPLETED := 2030; -DELETE FROM `trinity_string` WHERE `entry` = @LANG_COMMAND_TICKETCOMPLETED; -INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES (@LANG_COMMAND_TICKETCOMPLETED, '|cff00ff00Completed by|r:|cff00ccff %s|r'); - diff --git a/sql/updates/world/2014_09_05_04_world_trinity_string.sql b/sql/updates/world/2014_09_05_04_world_trinity_string.sql new file mode 100644 index 00000000000..f7a7c3d9684 --- /dev/null +++ b/sql/updates/world/2014_09_05_04_world_trinity_string.sql @@ -0,0 +1,5 @@ +-- Implements in-game gm message when tickets are completed +SET @LANG_COMMAND_TICKETCOMPLETED := 2030; +DELETE FROM `trinity_string` WHERE `entry` = @LANG_COMMAND_TICKETCOMPLETED; +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES (@LANG_COMMAND_TICKETCOMPLETED, '|cff00ff00Completed by|r:|cff00ccff %s|r'); + diff --git a/sql/updates/world/2014_09_05_05_world_trinity_string.sql b/sql/updates/world/2014_09_05_05_world_trinity_string.sql new file mode 100644 index 00000000000..616a77f36f1 --- /dev/null +++ b/sql/updates/world/2014_09_05_05_world_trinity_string.sql @@ -0,0 +1,11 @@ +-- Move cs_misc command output hardcoded strings to DB so they can be localized too +DELETE FROM `trinity_string` WHERE `entry` IN (5030,5035,5039,5040,5041,5042,5043,5044); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +(5030, ''), +(5035, 'No reason'), +(5039, 'Console'), +(5040, 'Character'), +(5041, 'Permanently'), +(5042, 'You are outdoors'), +(5043, 'You are indoors'), +(5044, 'no VMAP available for area info'); diff --git a/sql/updates/world/2014_09_05_06_world_onyxia.sql b/sql/updates/world/2014_09_05_06_world_onyxia.sql new file mode 100644 index 00000000000..99824d2d47a --- /dev/null +++ b/sql/updates/world/2014_09_05_06_world_onyxia.sql @@ -0,0 +1,2 @@ +UPDATE creature_template SET InhabitType = 5 WHERE entry = 10184; +UPDATE creature_template SET InhabitType = 5 WHERE entry = 36538; diff --git a/sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql b/sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql deleted file mode 100644 index 172a4bdc381..00000000000 --- a/sql/updates/world/2014_XX_XX_XX_world_trinity_string.sql +++ /dev/null @@ -1,11 +0,0 @@ --- Move cs_misc command output hardcoded strings to DB so they can be localized too -DELETE FROM `trinity_string` WHERE `entry` IN (5030,5035,5039,5040,5041,5042,5043,5044); -INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES -(5030, ''), -(5035, 'No reason'), -(5039, 'Console'), -(5040, 'Character'), -(5041, 'Permanently'), -(5042, 'You are outdoors'), -(5043, 'You are indoors'), -(5044, 'no VMAP available for area info'); -- cgit v1.2.3 From d6a11924a60219a637580b604a2d3d5a6b613db7 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Fri, 5 Sep 2014 22:10:39 +0100 Subject: DB/Misc: Fel Crystal Prism * Spawn missing spawns of Fel Crystal Prism http://www.wowhead.com/object=185927 * Script these to be usable to summon demons (needed in order to properly complete a Felwhip for Gahk!) at a cost of 35 Apexis shards * Scripts for the 4 demons * Adjustments to the egg scripts I made earlier have had to add the spell to take reagents to script (even though is meant to be triggered from other spell) but was failing ie not taking reagents. --- sql/updates/world/2014_09_05_07_world_sai.sql | 129 ++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 sql/updates/world/2014_09_05_07_world_sai.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_05_07_world_sai.sql b/sql/updates/world/2014_09_05_07_world_sai.sql new file mode 100644 index 00000000000..de4921fd9d4 --- /dev/null +++ b/sql/updates/world/2014_09_05_07_world_sai.sql @@ -0,0 +1,129 @@ +SET @OGUID := 21036; + +-- respawn Fel Crystal Prism (Currently only 1 is spawned) + +DELETE FROM `gameobject` WHERE `id`=185927; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@OGUID+0, 185927, 530, 1, 1, 2909.894, 6797.157, 365.7202, 2.391098, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+1, 185927, 530, 1, 1, 2988.61, 7129.965, 368.9746, 1.029743, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+2, 185927, 530, 1, 1, 3080.931, 6914.941, 369.3258, 4.32842, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+3, 185927, 530, 1, 1, 2810.343, 7006.054, 376.0882, 1.151916, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+4, 185927, 530, 1, 1, 1385.925, 7392.285, 371.1215, 0.5585039, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+5, 185927, 530, 1, 1, 1280.611, 7164.499, 377.1786, 5.585054, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+6, 185927, 530, 1, 1, 1616.641, 7207.047, 375.4805, 5.131269, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+9, 185927, 530, 1, 1, 1673.486, 7377.358, 375.558, 1.308995, 0, 0, 0, 1, 120, 255, 1); + +-- SAI for Fel Crystal Prism +UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=185927; +DELETE FROM `smart_scripts` WHERE `entryorguid`=185927 AND `source_type`=1; +DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN 18592700 AND 18592703 AND `source_type`=9; + +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(185927, 1, 0, 1, 62, 0, 100, 0, 8671, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Store Targetlist'), +(185927, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 40958, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Invoker Cast Blades Edge Terrace Demon Boss Summon Trigger'), +(185927, 1, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 85, 40962, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Invoker Cast Blades Edge Terrace Demon Boss Summon Branch'), +(185927, 1, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 87, 18592700, 18592701, 18592702, 18592703, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Run Random Timed Action list'), +(18592700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40957, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 1 - Invoker Cast Blades Edge Terrace Demon Boss Summon 1'), +(18592700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 1 - Despawn GO'), +(18592700, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 1 - Close Gossip'), +(18592701, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40959, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 2 - Invoker Cast Blades Edge Terrace Demon Boss Summon 2'), +(18592701, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 2 - Despawn GO'), +(18592701, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 2 - Close Gossip'), +(18592702, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40960, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 3 - Invoker Cast Blades Edge Terrace Demon Boss Summon 3'), +(18592702, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 3 - Despawn GO'), +(18592702, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 3 - Close Gossip'), +(18592703, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40961, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 4 - Invoker Cast Blades Edge Terrace Demon Boss Summon 4'), +(18592703, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 4 - Despawn GO'), +(18592703, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 4 - Close Gossip'); + +-- SAI for Demons +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(22281,23353,23354,23355) AND `source_type`=0; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN(22281,23353,23354,23355); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(22281,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Galvanoth - On Spawn - Set Faction'), +(22281,0,1,0,9,0,100,0,0,30,8000,11000,11,39139,0,0,0,0,0,7,0,0,0,0,0,0,0,'Galvanoth - On Range - Cast Fel Flamestike'), +(22281,0,2,0,9,0,100,0,0,10,13000,23000,11,38750,0,0,0,0,0,1,0,0,0,0,0,0,0,'Galvanoth - On Range - Cast War Stomp'), +(22281,0,3,0,9,0,100,0,0,5,11000,18000,11,15708,0,0,0,0,0,7,0,0,0,0,0,0,0,'Galvanoth - On Range - Cast Mortal Strike'), +(23353,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Braxxus - On Spawn - Set Faction'), +(23353,0,1,0,9,0,100,0,0,5,4000,8000,11,41437,0,0,0,0,0,7,0,0,0,0,0,0,0,'Braxxus - On Range - Cast Double Breath'), +(23353,0,2,0,9,0,100,0,0,10,15000,25000,11,41439,2,0,0,0,0,7,0,0,0,0,0,0,0,'Braxxus - On Range - Cast Mangle'), +(23353,0,3,0,0,0,100,0,5000,8000,7000,11000,11,41436,0,0,0,0,0,1,0,0,0,0,0,0,0,'Braxxus - IC - Cast Panic'), +(23354,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mo arg Incinerator - On Spawn - Set Faction'), +(23354,0,1,0,9,0,100,0,0,40,5000,8000,11,44431,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mo arg Incinerator - On Range - Cast Acid Geyser'), +(23354,0,2,0,9,0,100,0,10,60,10000,15000,11,36606,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mo arg Incinerator - On Range - Cast Mighty Charge'), +(23354,0,3,0,9,0,100,0,0,5,15000,25000,11,25174,2,0,0,0,0,7,0,0,0,0,0,0,0,'Mo arg Incinerator - On Range - Cast Sundering Cleave'), +(23355,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarcsin - On Spawn - Set Faction'), +(23355,0,1,0,9,0,100,0,0,5,5000,8000,11,41444,0,0,0,0,0,7,0,0,0,0,0,0,0,'Zarcsin - On Range - Cast Fel Flames'), +(23355,0,2,0,2,0,100,1,0,50,5000,8000,11,41447,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarcsin - 50% HP - Cast Enrage'); + +-- ALL 4 of these should have 100% chance to drop an apexis crystal, this is rolled if in party +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=100 WHERE `entry`IN(22281,23353,23354,23355) AND `item`=32572; +-- Fel Whip to complete quest is meant to have 100% chance to drop if on quest as all comments state you only have to kill 1 demon to complete the quest +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=-100 WHERE `entry`IN(22281,23353,23354,23355) AND `item`=32733; + +DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid` IN (185937,185938,185936,185932); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(185937, 1, 0, 1, 62, 0, 100, 0, 8690, 0, 0, 0, 85, 41050, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Furywing'), +(185938, 1, 0, 1, 62, 0, 100, 0, 8691, 0, 0, 0, 85, 41052, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Insidion'), +(185936, 1, 0, 1, 62, 0, 100, 0, 8689, 0, 0, 0, 85, 41044, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Rivendark'), +(185937, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41049, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Furywing'), +(185938, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41051, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Insidion'), +(185936, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41045, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Rivendark'), +(185937, 1, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185938, 1, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185936, 1, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185937, 1, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185938, 1, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185936, 1, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185932, 1, 0, 1, 62, 0, 100, 0, 8685, 0, 0, 0, 85, 41035, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Invoker Cast 41035 Four Dragons: Force Cast - Obsidia'), +(185932, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41036, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Obsidia'), +(185932, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Close Gossip'); + +DELETE FROM `event_scripts` WHERE `id` IN(15004,15002); +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(15004, 0, 10, 23061, 300000, 0, 2060.6, 7418.53, 391.098, 0), +(15002, 0, 10, 23281, 300000, 0, 4176.5, 5452.21, 291.923, 0), +(15003, 0, 10, 23261, 300000, 0, 3845.31, 5220.04, 295.412, 0); + +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=23282; + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` =23364; +DELETE FROM `smart_scripts` WHERE `entryorguid` =23364 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` =23282 AND `source_type`=0 AND `id`>4; + +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(23364, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 11, 15750, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Cast Rookery Whelp Spawn-in Spell'), +(23364, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Say'), +(23364, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 18, 33536, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Set Unit Flags'), +(23364, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 14, 27915, 185932, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Despawn Obsidia\'s Egg'), +(23364, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 23364, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Start WP'), +(23364, 0, 5, 6, 40, 0, 100, 0, 2, 23364, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 23282, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Reached WP2 - Set Data on Obsidia'), +(23364, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - Reached WP2 - Despawn'), +(23282, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Spawn - Set Unit Flags'), +(23282, 0, 6, 7, 38, 0, 100, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Data Set - Say'), +(23282, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 1, 23282, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Data Set - Start WP'), +(23282, 0, 8, 9, 40, 0, 100, 0, 1, 23282, 0, 0, 94, 280, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Dynamic Flags'), +(23282, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Unit Flags'), +(23282, 0, 10, 11, 61, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Home Position'), +(23282, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Aggresive'); + +DELETE FROM `creature_text` WHERE `entry` IN(23364,23282); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(23364, 0, 0, 'The %s screams out for its mother.', 16, 0, 100, 0, 0, 431, 'Black Dragon Whelpling',21420), +(23282, 0, 0, 'I believe that I shall feast upon both $r and ogre flesh tonight.', 14, 0, 100, 0, 0, 7274, 'Obsidia',21718); + + +DELETE FROM `waypoints` WHERE `entry` IN(23364,23282); + +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(23364, 1,2425.253, 6994.862, 368.0848, 'Black Dragon Whelpling'), +(23364, 2,2424.881, 6998.754, 367.8495, 'Black Dragon Whelpling'), +(23282, 1,2428.085, 6980.77, 369.7684, 'Obsidia'); + +DELETE FROM `event_scripts` WHERE `id` IN(15004,15002,15003,15005); +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(15004, 0, 10, 23061, 300000, 0, 2060.6, 7418.53, 391.098, 0), +(15002, 0, 10, 23281, 300000, 0, 4176.5, 5452.21, 291.923, 0), +(15003, 0, 10, 23261, 300000, 0, 3845.31, 5220.04, 295.412, 0), +(15005, 1, 10, 23364, 100000, 0, 2426.954, 7001.479, 367.3824, 0), +(15005, 0, 10, 23282, 300000, 0, 2424.975, 6933.425, 409.5501, 1.43117); -- cgit v1.2.3 From 0b4a2c6ca6df7a53e46782f7814c29f36747b9d6 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Sat, 6 Sep 2014 00:27:04 +0100 Subject: DB/NPCs: Remove dynamicflags that should not be in the DB Tapped and lootable flags --- sql/updates/world/2014_09_06_00_world_creature_template.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sql/updates/world/2014_09_06_00_world_creature_template.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_06_00_world_creature_template.sql b/sql/updates/world/2014_09_06_00_world_creature_template.sql new file mode 100644 index 00000000000..36bed391dd4 --- /dev/null +++ b/sql/updates/world/2014_09_06_00_world_creature_template.sql @@ -0,0 +1,4 @@ +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 1; -- lootable +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 4; -- tapped +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 8; -- tapped by player +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 128; -- tapped by threat list -- cgit v1.2.3 From 7f93e1e56e205c974b7644c6efa80fec11a6a78b Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sat, 6 Sep 2014 01:51:53 +0200 Subject: DB/Creature: Fix hover for "Maiden of Drak'Mar" in 7a04d5ee8276a81156af9fb7ac13521441cb3f36 --- sql/updates/world/2014_09_06_01_world_creature_template.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2014_09_06_01_world_creature_template.sql (limited to 'sql/updates') diff --git a/sql/updates/world/2014_09_06_01_world_creature_template.sql b/sql/updates/world/2014_09_06_01_world_creature_template.sql new file mode 100644 index 00000000000..a78145a174f --- /dev/null +++ b/sql/updates/world/2014_09_06_01_world_creature_template.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `HoverHeight`=1 WHERE `entry`=33273; -- Maiden of Drak'Mar -- cgit v1.2.3