public SimpleSarthaintheWorldbearer(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleJahitheIndignant(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleSpiritofKurnous(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleTumainitheHopeless(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public void SendCurrentStage(Player Plr) { Plr.QtsInterface.updateObjects(); PacketOut Out = new PacketOut((byte)Opcodes.F_OBJECTIVE_INFO); Out.WriteUInt32(Info.Entry); Out.WriteByte(0); Out.WriteByte((byte)Plr.Realm); Out.WriteByte(Info.Type); Out.WriteUInt16(0); Out.WritePascalString(Info.Name); Out.WriteByte((byte)Plr.Realm); Out.WriteUInt16(0); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Guid); Out.WriteByte((byte)Stage.Objectives.First().Objective.G0); Out.WriteByte((byte)Stage.Objectives.First().Objective.G1); Out.WriteByte(Stage.Objectives.First().Objective.RedDot); // SEND GREEN DOT 1 Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); Out.WriteUInt16((ushort)0); Out.WriteByte(0); Out.WritePascalString(Stage.Objectives.First().Objective.Objective); //RUINS OF SCHLOS EASY (2 dots) ST 1 if (Stage.Objectives.First().Objective.Guid == (ushort)0x0385) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count2); Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } //RUINS OF SCHLOS EASY (2 dots) ST 2 if (Stage.Objectives.First().Objective.Guid == (ushort)0x0386) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count2); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } //THE WEBWORKS EASY if (Stage.Objectives.First().Objective.Guid == (ushort)0x0439) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // PLAGUE ON THE WIND EASY if (Stage.Objectives.First().Objective.Guid == (ushort)0x0472) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // THE BLACK MIRE EASY (OSTLAND) if (Stage.Objectives.First().Objective.Guid == (ushort)0x049D) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // HOCHNAR EASY (OSTLAND) // if (Stage.Objectives.First().Objective.Guid == (ushort)0x0488) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // THE GRISLY HEARD EASY (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x057D) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // CULT OF THE MAGUS EASY (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x0559) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // CULT OF THE MAGUS EASY (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x0559) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } // TOMB OF THE TRAITOR EASY (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x0565) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // THE FALL OF NIGHT EASY (CHAOS WASTE) (3 COUNTERS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E9) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // THE FALL OF NIGHT EASY (CHAOS WASTE) (3 COUNTERS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E9) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } // THE siren sea EASY (CHAOS WASTE) (2 COUNTERS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06A1) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // burning windmill NORMAL(nordland st3) if (Stage.Objectives.First().Objective.Guid == (ushort)0x036C) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count2); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // lost artifacts normal (CHAOS WASTE) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06B8) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // PLAGUE TROLLS NORMAL(TROLL COUNTRY) if (Stage.Objectives.First().Objective.Guid == (ushort)0x049A) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // siege of bohsenfels NORMAL (OSTLAND) if (Stage.Objectives.First().Objective.Guid == (ushort)0x04AF) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // TEMPLE OF CHANGE NORMAL (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x055C) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // TEMPLE OF CHANGE NORMAL (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x055C) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } // THE FOETID PLAINS NORMAL(HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x0568) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // ALTAR OF MADNESS NORMAL(chaos waste) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E5) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // ALTAR OF MADNESS NORMAL(chaos waste) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E5) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } // MADNESS NORMAL(chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06AB) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // GREEN DOT 2 /////////////// if (Stage.Objectives.First().Objective.Guid == (ushort)0x034F) { ///////////////SECOND STUFF counter/////////////// Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // DEATHSTONE QUARRY HARD (sent 4 times) 2 if (Stage.Objectives.First().Objective.Guid == (ushort)0x0469) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // DEATHSTONE QUARRY HARD 3 if (Stage.Objectives.First().Objective.Guid == (ushort)0x0469) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } // DEATHSTONE QUARRY HARD 4 if (Stage.Objectives.First().Objective.Guid == (ushort)0x0469) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective4); } //Gore Wood HARD (ostland) if (Stage.Objectives.First().Objective.Guid == (ushort)0x04C3) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } //LAKE OF THE DAMNED HARD (HIGH PASS) if (Stage.Objectives.First().Objective.Guid == (ushort)0x055F) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } //The Reaping Field HARD (chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06A8) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } //The Reaping Field HARD (chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06A8) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } //Ebon keep HARD (chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E0) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } //Ebon keep HARD (chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E0) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); } //Ebon keep HARD (chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06E0) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective4); } //DANCE OF BONES HARD (chaos wastes) if (Stage.Objectives.First().Objective.Guid == (ushort)0x06AE) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective); } //Broken ground HARD (pragg) if (Stage.Objectives.First().Objective.Guid == (ushort)0x062F) { Out.WriteByte(Stage.Objectives.First().Objective.RedDot); Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); //second dot counter 0/4 Out.WriteUInt16(0); // count killed ? Out.WriteByte(0); // Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); } // DISABLING THIS MAKES NORSE ARE COMING EASY GREEN // GREEN DOT 3 // some bug on guidbyte1 set at 3dots if (Stage.Objectives.First().Objective.Guid == (ushort)0x034F) { ///////////////THIRD STUFF counter/////////////// Out.WriteByte(Stage.Objectives.First().Objective.RedDot); // 0= green 1= red //turns THIRD dot red Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count); // Out.WriteUInt16(0); // THIRD HOW MANY BEEN KILLED COUNT 0028= 40 Out.WriteByte(0); Out.WritePascalString(Stage.Objectives.First().Objective.Objective3); ///////////////////////////////////////////////////////// } // ENABLING this makes PILLAGERS APPROCH RED HARD // GREEN DOT 4 // 0445= 1093= pillagers approch if (Stage.Objectives.First().Objective.Guid == (ushort)0x0445) { ////////////////////////////// Out.WriteByte(Stage.Objectives.First().Objective.RedDot); // 0= green 1= red //turns THIRD dot red Out.WriteUInt16((ushort)Stage.Objectives.First().Objective.Count2); // Out.WriteUInt16(0); // THIRD HOW MANY BEEN KILLED COUNT 0028= 40 Out.WriteByte(0); Out.WritePascalString(Stage.Objectives.First().Objective.Objective2); ///////////////////////////////////////////////////////// } foreach (PQuest_Spawn Spawn in Stage.Objectives.First().Objective.Spawns) { Log.Info("Creature", "npc = " + Name + " Oid = " + Oid + " X= " + Spawn.WorldX + " Y= " + Spawn.WorldY + " Z= " + Spawn.WorldZ); // Log.Success("SENDING Spawn.Type", "STARTING Spawn.Type "); //if (Stage.Objectives.First().Objective.Guid == (UInt16)0x052E) if (Spawn.Type == 1 & Stage.Objectives.First().Objective.Guid == (UInt16)0x052E) { Creature_proto Proto = WorldMgr.GetCreatureProto(Spawn.Entry); if (Proto == null) { Log.Error("PQCreatue", "No Proto"); return; } Creature_spawn S = new Creature_spawn(); S.Guid = (uint)WorldMgr.GenerateCreatureSpawnGUID(); S.BuildFromProto(Proto); S.WorldO = Spawn.WorldO; S.WorldY = Spawn.WorldY; S.WorldZ = Spawn.WorldZ; S.WorldX = Spawn.WorldX; S.ZoneId = Spawn.ZoneId; S.Bytes = ""; } } ///////////////////////////////////////////////// Out.WriteByte(Stage.Objectives.First().Objective.PQDifficulty); // THIS SHOULD BE 0 // dificulty // 0= easy 2-3 players 1= normal but shows no players // 2= hard 9 or more players // 4,5= normal 6-9 players Out.WriteByte(0); Out.WritePascalString(Stage.StageName); Out.WriteByte(0); // added this which shows the description in white writing kill the raven host marauders terr Out.WritePascalString(Stage.Objectives.First().Objective.Description); //52=size of string= 4B 69 6C 6C 20 74 68 65 20 52 61 76 65 6E 20 48 6F 73 Out.WriteUInt32((uint)Stage.Objectives.First().Objective.Timer); //00 00 00 00// clock//////////// Out.WriteUInt32((uint)Stage.Objectives.First().Objective.Timer); // 00 00 00 00 // clock//////////// //Out.WriteUInt32(0);//00 00 00 00 Out.WriteUInt16(0);///////////////// Out.WriteByte(0);// is this in here ??? // MAY BE ADD THE IF TO THIS FOR BATTLEFEALD OBJECTIVE ? // Out.WritePascalString(Info.Name);// weard this shows battle feald objective if anabled //Out.WriteUInt16(0x0048);// GetInfluenceInfo()->influenceid);////////////////////// Out.WriteUInt16(0x0044);// only for pillger pq////////////// Out.WriteUInt32(0); Plr.SendPacket(Out); // GOLD CHEST ON MAP TURNS GOLD WHEN MORE THAN ONE PLAYER IS IN THE ZONE Out = new PacketOut((byte)Opcodes.F_OBJECTIVE_UPDATE); Out.WriteUInt32(0); Out.WriteByte(6); Out.WriteUInt32(Info.ZoneId); //zoneid Out.WriteUInt16(2); // zone public quests size 00 02 zone.public quest counts Out.WriteUInt32(Info.Entry); //(entry);//02 26// entry=550 Out.WriteUInt16((ushort)Zone._Players.Count); //(0x0004);// get player counts //Out.WriteUInt16((UInt16)1); Out.WriteUInt16(0); Out.WriteUInt16(0x0238);// ??? Out.WriteUInt16(0); DispatchPacket(Out, true); // SENDS STATE OF BO FLAGS }
public SimpleVultheBloodchosen(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleLorthThunderbelly(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
private void SpawnNPCFromGO(Unit killer = null) { long now = TCPManager.GetTimeStampMS(); if (now > CreatureSpawnCooldown) { Random rand = new Random(); Creature_proto Proto = CreatureService.GetCreatureProto(this.Spawn.Proto.CreatureId); for (int i = 0; i < this.Spawn.Proto.CreatureCount; i++) // CreatureCount - how many creatures are spawned { Creature_spawn CreSpawn = new Creature_spawn(); CreSpawn.Guid = (uint)CreatureService.GenerateCreatureSpawnGUID(); CreSpawn.BuildFromProto(Proto); CreSpawn.WorldO = this.Spawn.WorldO; CreSpawn.WorldX = (int)(this.Spawn.WorldX + 50 - 150 * rand.NextDouble()); CreSpawn.WorldY = (int)(this.Spawn.WorldY + 50 - 150 * rand.NextDouble()); CreSpawn.WorldZ = this.Spawn.WorldZ; CreSpawn.ZoneId = this.Spawn.ZoneId; Creature c = null; if (killer != null && killer is Player) { c = killer.Region.CreateCreature(CreSpawn); } else { c = this.Region.CreateCreature(CreSpawn); } if (this.Spawn.Proto.CreatureCooldownMinutes > 0) { CreatureSpawnCooldown = TCPManager.GetTimeStampMS() + (int)this.Spawn.Proto.CreatureCooldownMinutes * 60000; // Cannot be spawned more often than once per respawn time c.EvtInterface.AddEventNotify(EventName.OnDie, RemoveNPC); c.EvtInterface.AddEvent(c.Destroy, (int)this.Spawn.Proto.CreatureCooldownMinutes * 60000, 1); // Creature goes away after the respawn time this.EvtInterface.AddEvent(EventSendMeTo, (int)this.Spawn.Proto.CreatureCooldownMinutes * 60000, 1); } else { CreatureSpawnCooldown = TCPManager.GetTimeStampMS() + 120000; // Creature cannot be spawned more than once every 120 second if it is normal NPC c.EvtInterface.AddEventNotify(EventName.OnDie, RemoveNPC); c.EvtInterface.AddEvent(c.Destroy, 120000, 1); // Creature goes away after 2 minutes this.EvtInterface.AddEvent(EventSendMeTo, 120000, 1); } var prms = new List <object>() { c, Spawn.Proto.CreatureSpawnText }; if (!String.IsNullOrEmpty(this.Spawn.Proto.CreatureSpawnText)) // It is possible to allow the GO to say something after the NPCs spawned //if (c != null) { EvtInterface.AddEvent(DelayedSay, 500, 1, prms); } //c.Say(this.Spawn.Proto.CreatureSpawnText, ChatLogFilters.CHATLOGFILTERS_MONSTER_SAY); } /*if (!String.IsNullOrEmpty(this.Spawn.Proto.CreatureSpawnText)) // It is possible to allow the GO to say something after the NPCs spawned * this.Say(this.Spawn.Proto.CreatureSpawnText, ChatLogFilters.CHATLOGFILTERS_MONSTER_SAY);*/ // This check if the GO we clicked is a Door - if it is we don't want to mess with its // VFXState because we can break it if (this.Spawn.DoorId == 0) { this.EvtInterface.AddEvent(EventSendMeTo, 60000, 1); if (this.Spawn.AllowVfxUpdate == 1) { this.VfxState = 1; } foreach (Player plr in PlayersInRange) { this.UpdateVfxState(this.VfxState); } } } else { this.Say("**You must wait a little longer...**", ChatLogFilters.CHATLOGFILTERS_MONSTER_SAY); } }
public SimpleMalghorGreathorn(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { }
public SimpleCuliusEmbervine(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleGlompdaSquigMasta(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleMasterMoulderVitchek(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleSkullLordVarIthrok(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleTheDarkpromiseBeast2(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public void SummonPet(ushort myID) { if (_summoning) { return; } try { _summoning = true; // Happens when pet is automatically reset after zone change if (myPet != null) { myPet.ReceiveDamage(myPet, uint.MaxValue); myPet = null; } if (myPlayer.Zone == null) { return; } _currentPetID = myID; Creature_proto Proto = new Creature_proto { Faction = 129 }; switch (myID) { case 1841: Proto.Name = myPlayer.Name + "'s Squig"; Proto.Model1 = 136; Proto.Ranged = 0; break; case 1842: Proto.Name = myPlayer.Name + "'s Horned Squig"; Proto.Model1 = 137; Proto.Ranged = 0; break; case 1843: Proto.Name = myPlayer.Name + "'s Gas Squig"; Proto.Model1 = 139; Proto.Ranged = 100; break; case 1844: Proto.Name = myPlayer.Name + "'s Spiked Squig"; Proto.Model1 = 138; Proto.Ranged = 100; break; case 1845: Proto.Name = myPlayer.Name + "'s Battle Squig"; Proto.Model1 = 140; Proto.Ranged = 0; break; case 2828: Proto.Name = myPlayer.Name + "'s Horned Squig"; Proto.Model1 = 137; Proto.Ranged = 0; break; case 2829: Proto.Name = myPlayer.Name + "'s Gas Squig"; Proto.Model1 = 139; Proto.Ranged = 100; break; } Creature_spawn Spawn = new Creature_spawn(); Proto.MinScale = 50; Proto.MaxScale = 50; Spawn.BuildFromProto(Proto); Spawn.WorldO = myPlayer._Value.WorldO; Spawn.WorldY = myPlayer._Value.WorldY; Spawn.WorldZ = myPlayer._Value.WorldZ; Spawn.WorldX = myPlayer._Value.WorldX; Spawn.ZoneId = myPlayer.Zone.ZoneId; Spawn.Icone = 18; Spawn.WaypointType = 0; Spawn.Proto.MinLevel = Spawn.Proto.MaxLevel = myPlayer.EffectiveLevel; if (Spawn.Proto.MinLevel > 40) { Spawn.Proto.MinLevel = 40; Spawn.Proto.MaxLevel = 40; } _myPet = new Pet(myID, Spawn, myPlayer, _AIMode, false, true); if (myID == 1844) { myPet.BuffInterface.QueueBuff(new BuffQueueInfo(myPet, 1, AbilityMgr.GetBuffInfo(14))); } myPlayer.Region.AddObject(_myPet, Spawn.ZoneId); myPlayer.BuffInterface.NotifyPetEvent(myPet); } finally { _summoning = false; } }
public SimpleNecromancerMalcidious(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleSsrydianMorbidae(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleTonragThunderborn(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { EvtInterface.AddEvent(CheckDistanceAndUpdateAbilitiyDmgHeal, 500, 0); }
public void SummonPet(ushort myID) { if (_summoning) { return; } try { _summoning = true; // Happens when pet is automatically reset after zone change if (myPet != null) { myPet.Destroy(); myPet = null; } if (myPlayer.Zone == null) { return; } ushort model1; byte faction; string name; if (myPlayer.Realm == GameData.Realms.REALMS_REALM_ORDER) { model1 = (ushort)(132 + ((myPlayer.Level - 1) * 0.1f)); faction = 65; if (myPlayer.Level < 16) { name = "Lion Cub"; } else { name = "War Lion"; } } else { Random rand = new Random(); switch (rand.Next(1, 4)) { case 1: model1 = 1156; faction = 129; name = "War Manticore"; break; case 2: model1 = 1142; faction = 129; name = "War Scorpion"; break; case 3: model1 = 1086; faction = 129; name = "Vicious Harpy"; break; default: model1 = 1272; faction = 129; name = "Hydra Wyrmling"; break; } } if (myPlayer.Info.PetModel != 0) { model1 = myPlayer.Info.PetModel; } if (!String.IsNullOrEmpty(myPlayer.Info.PetName)) { myPetName = myPlayer.Info.PetName; } Creature_proto Proto = new Creature_proto { Name = string.IsNullOrEmpty(myPetName) ? name : myPetName, Ranged = 0, Faction = faction, Model1 = model1 }; Creature_spawn Spawn = new Creature_spawn(); if (model1 == 1272) { Proto.MinScale = 15; Proto.MaxScale = 15; } else { Proto.MinScale = 50; Proto.MaxScale = 50; } Spawn.BuildFromProto(Proto); Spawn.WorldO = myPlayer._Value.WorldO; Spawn.WorldY = myPlayer._Value.WorldY; Spawn.WorldZ = myPlayer._Value.WorldZ; Spawn.WorldX = myPlayer._Value.WorldX; Spawn.ZoneId = myPlayer.Zone.ZoneId; Spawn.Icone = 18; Spawn.WaypointType = 0; Spawn.Proto.MinLevel = Spawn.Proto.MaxLevel = myPlayer.EffectiveLevel; if (Spawn.Proto.MinLevel > 40) { Spawn.Proto.MinLevel = 40; Spawn.Proto.MaxLevel = 40; } myPet = new Pet(myID, Spawn, myPlayer, AIMode, false, true); myPlayer.Region.AddObject(myPet, Spawn.ZoneId); if (_careerResource != 0) { //currentHealth = myPet.Health; myPet.BuffInterface.QueueBuff(new BuffQueueInfo(myPlayer, myPlayer.EffectiveLevel, AbilityMgr.GetBuffInfo(_petTrainBuffs[_careerResource - 1], myPlayer, myPet))); //myPet.EvtInterface.AddEvent(SetHealth, 100, 1); } myPlayer.BuffInterface.NotifyPetEvent(myPet); } finally { _summoning = false; } }
public SimpleSarlothBloodtouched(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleNKariKeeperofSecrets(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleDralel(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { }
public GuardCreature(Creature_spawn spawn, FlagGuard FlagGrd) : base(spawn) { this.FlagGrd = FlagGrd; }
public SimpleUzhaktheBetrayer(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public void AddSpawn(Creature_spawn Spawn) { CreatureSpawns.Add(Spawn); }
public SimpleTheCadaithaineLion(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public Creature(Creature_spawn Spawn) : this() { this.Spawn = Spawn; Name = Spawn.Proto.Name; }
public SimpleHierophantEutrata(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleHighPriestHerakh2(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }
public SimpleSebcrawtheDiscarded(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance) { //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0); }