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);
 }
Exemple #4
0
 public SimpleTumainitheHopeless(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance)
 {
     //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0);
 }
Exemple #5
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);
 }
Exemple #7
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);
 }
Exemple #11
0
 public SimpleGlompdaSquigMasta(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance)
 {
     //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0);
 }
Exemple #12
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);
 }
Exemple #15
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;
            }
        }
Exemple #16
0
 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);
 }
Exemple #19
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;
            }
        }
Exemple #20
0
 public SimpleSarlothBloodtouched(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance)
 {
     //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0);
 }
Exemple #21
0
 public SimpleNKariKeeperofSecrets(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance)
 {
     //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0);
 }
Exemple #22
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);
 }
Exemple #25
0
 public void AddSpawn(Creature_spawn Spawn)
 {
     CreatureSpawns.Add(Spawn);
 }
Exemple #26
0
 public SimpleTheCadaithaineLion(Creature_spawn spawn, uint bossId, ushort Instanceid, Instance instance) : base(spawn, bossId, Instanceid, instance)
 {
     //EvtInterface.AddEvent(CheckBossRageTimer, 1000, 0);
 }
Exemple #27
0
 public Creature(Creature_spawn Spawn) : this()
 {
     this.Spawn = Spawn;
     Name       = Spawn.Proto.Name;
 }
Exemple #28
0
 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);
 }