Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server
You last visited: Today at 15:06

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Anybody understand stream sources?

Discussion on Anybody understand stream sources? within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2010
Posts: 951
Received Thanks: 76
Anybody understand stream sources?

Mainly the reborn system, I am able to reborn the characters but it seems the Windwalker class has issues when reborning. I reborn the character to Windwalker yet when I check the details it shows a ? instead of a class.

When I check the database I'm greeted with "Class=161" when it clearly should be 16001

Code:
        public unsafe void Reborn(Role.Player player, uint RebornClass, ServerSockets.Packet stream)
        {
        if (player.Class / 1000 != RebornClass / 1000 && player.Owner.Rune.WornObjects.Count(i => Role.Instance.Rune.GetSkillForRune(i) != null) > 0)
        {
             player.Owner.SendSysMesage("Please unequip red/blue runes before changing your class.", MsgMessage.ChatMode.SystemWhisper);
             player.Owner.CreateBoxDialog("Please unequip red/blue/Yellow runes before changing your class.");
                return;
        }
            #region Save Promotion
        if (Database.AtributesStatus.IsThunderStriker(player.Class))
        {
            player.Class -= 1;
            player.SavePromote = player.Class;
        }
        if (Database.AtributesStatus.IsArcher(player.Class))
        {
            player.Class -= 1;
            player.SavePromote1 = player.Class;
        }
        if (Database.AtributesStatus.IsFire(player.Class))
        {
            player.Class -= 1;
            player.SavePromote2 = player.Class;
        }
        if (Database.AtributesStatus.IsLee(player.Class))
        {
            player.Class -= 1;
            player.SavePromote3 = player.Class;
            }
        if (Database.AtributesStatus.IsMonk(player.Class))
        {
            player.Class -= 1;
            player.SavePromote4 = player.Class;
        }
        if (Database.AtributesStatus.IsNinja(player.Class))
        {
            player.Class -= 1;
            player.SavePromote5 = player.Class;
        }
        if (Database.AtributesStatus.IsPirate(player.Class))
        {
            player.Class -= 1;
            player.SavePromote6 = player.Class;
        }
        if (Database.AtributesStatus.IsTaoist(player.Class))
        {
            player.Class -= 1;
            player.SavePromote7 = player.Class;
        }
        if (Database.AtributesStatus.IsTrojan(player.Class))
        {
            player.Class -= 1;
            player.SavePromote8 = player.Class;
        }
        if (Database.AtributesStatus.IsWarrior(player.Class))
        {
            player.Class -= 1;
            player.SavePromote9 = player.Class;
        }
        if (Database.AtributesStatus.IsWater(player.Class))
        {
            player.Class -= 1;
            player.SavePromote10 = player.Class;
        }
        if (Database.AtributesStatus.IsWindWalker(player.Class))
        {
            player.Class -= 1;
            player.SavePromote11 = player.Class;
        }
        #endregion
        if (Database.AtributesStatus.IsTrojan(player.Class)) player.Class = 1005;
        if (Database.AtributesStatus.IsWarrior(player.Class)) player.Class = 2005;
        if (Database.AtributesStatus.IsArcher(player.Class)) player.Class = 4005;
        if (Database.AtributesStatus.IsNinja(player.Class)) player.Class = 5005;
        if (Database.AtributesStatus.IsMonk(player.Class)) player.Class = 6005;
        if (Database.AtributesStatus.IsPirate(player.Class)) player.Class = 7005;
        if (Database.AtributesStatus.IsThunderStriker(player.Class)) player.Class = 9005;
        if (Database.AtributesStatus.IsWater(player.Class)) player.Class = 13005;
        if (Database.AtributesStatus.IsFire(player.Class)) player.Class = 14005;
        if (Database.AtributesStatus.IsWindWalker(player.Class)) player.Class = 16005;
        if (Database.AtributesStatus.IsLee(player.Class)) player.Class = 8005;
        if (RebornClass < 1000)
        {
            switch (RebornClass)
            {
                case 11:
                    {
                        RebornClass = 1001;
                        break;
                    }
                case 21:
                    {
                        RebornClass = 2001;
                        break;
                    }
                case 41:
                    {
                        RebornClass = 4001;
                        break;
                    }

                case 51:
                    {
                        RebornClass = 5001;
                        break;
                    }
                case 61:
                    {
                        RebornClass = 6001;
                        break;
                    }
                case 71:
                    {
                        RebornClass = 7001;
                        break;
                    }
                case 81:
                    {
                        RebornClass = 8001;
                        break;
                    }
                case 91:
                    {
                        RebornClass = 9001;
                        break;
                    }
                case 132:
                    {
                        RebornClass = 13002;
                        break;
                    }
                case 142:
                    {
                        RebornClass = 14002;
                        break;
                    }
                case 162:
                    {
                        RebornClass = 16002;
                        break;
                    }

                }
        }
        if (RebornClass % 10 == 1 || RebornClass == 13002 || RebornClass == 14002)
        {
            switch (player.Reborn)
            {
                case 0:
                    {
                        foreach (var info in this)
                        {
                            if (info.Item1 == 1 && info.Item2 == player.Class && info.Item3 == RebornClass)
                            {
                                switch (info.Item4)
                                {
                                    case Action.AddRebornSpells:
                                    case Action.Add:
                                        {
                                            foreach (var spellid in info.Item5)
                                                player.Owner.MySpells.Add(stream, spellid);
                                            break;
                                        }
                                    case Action.Delete:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.Remove(spellid, stream);
                                            }
                                            break;
                                        }
                                    case Action.Downgrade:
                                        {
                                            foreach (var spellid in info.Item5)
                                                player.Owner.MySpells.RebornSpell(stream, spellid);
                                            break;
                                        }

                                }
                            }
                        }
                        player.FirstRebornLevel = (byte)player.Level;
                        player.FirstClass = player.Class;
                        player.Class = RebornClass;
                        player.Reborn = 1;
                        player.SendUpdate(stream, player.Reborn, Game.MsgServer.MsgUpdate.DataType.Reborn);
#if Arabic
                                Program.SendGlobalPackets.Enqueue(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got " + player.Reborn + " reborns.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

#else
                        Server.SendGlobalPacket(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got " + player.Reborn + " reborns.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

#endif

                        break;
                    }
                case 1:
                    {

                        foreach (var info in this)
                        {
                            if (info.Item1 == 2 && info.Item2 == player.Class && info.Item3 == RebornClass)
                            {
                                switch (info.Item4)
                                {
                                    case Action.AddRebornSpells:
                                    case Action.Add:
                                        {
                                            foreach (var spellid in info.Item5)
                                                player.Owner.MySpells.Add(stream, spellid);
                                            break;
                                        }
                                    case Action.Delete:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.Remove(spellid, stream);
                                            }
                                            break;
                                        }
                                    case Action.Downgrade:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.RebornSpell(stream, spellid);
                                            }
                                            break;
                                        }

                                }
                            }
                        }
                        player.SecondRebornLevel = (byte)player.Level;
                        player.SecondClass = player.Class;
                        player.Class = RebornClass;
                        player.Reborn = 2;
                        player.SendUpdate(stream, player.Reborn, Game.MsgServer.MsgUpdate.DataType.Reborn);
#if Arabic
                             Program.SendGlobalPackets.Enqueue(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got " + player.Reborn + " nd reborn.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

#else
                        Server.SendGlobalPacket(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got " + player.Reborn + "nd reborn.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

#endif

                        break;
                    }
                case 2:
                    {

                        //Monk

                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.InfernalEcho))
                            player.Owner.Inventory.Add(stream, 3007568);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.GraceofHeaven))
                            player.Owner.Inventory.Add(stream, 3007567);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.WrathoftheEmperor))
                            player.Owner.Inventory.Add(stream, 3007566);

                        //Pirate

                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.SeaBurial))
                            player.Owner.Inventory.Add(stream, 3307432);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.BloomofDeath))
                            player.Owner.Inventory.Add(stream, 3307433);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.BloomofDeath))
                            player.Owner.Inventory.Add(stream, 3307434);

                        //Taoist

                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AuroraLotus))
                            player.Owner.Inventory.Add(stream, 3006018);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.BlessingTouch))
                            player.Owner.Inventory.Add(stream, 3006020);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FlameLotus))
                            player.Owner.Inventory.Add(stream, 3006017);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.SearingTouch))
                            player.Owner.Inventory.Add(stream, 3006019);

                        //Ninja

                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.TwilightDance))
                            player.Owner.Inventory.Add(stream, 3004460);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ShadowClone))
                            player.Owner.Inventory.Add(stream, 3004459);
                        if (player.Owner.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FatalSpin))
                            player.Owner.Inventory.Add(stream, 3004461);
                        player.Owner.MySpells.ClearSpells(StaticSpells, stream);

                        uint RClass = 0;
                        if (player.SecondClass == 13005)
                            RClass = 13002;
                        else if (player.SecondClass == 14005)
                            RClass = 14002;
                        else
                            RClass = (uint)(player.SecondClass - 4);

                        uint Twoclass = 0;
                        if (player.Class == 13005)
                            Twoclass = 13002;
                        else if (player.Class == 14005)
                            Twoclass = 14002;
                        else
                            Twoclass = (uint)(player.Class - 4);

                        foreach (var info in this)
                        {
                            if (info.Item1 == 0 && info.Item2 == 0 && info.Item3 == RClass)
                            {
                                switch (info.Item4)
                                {
                                    case Action.AllClassSpells:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                if (!StaticSpells.Contains(spellid))
                                                    player.Owner.MySpells.Add(stream, spellid);
                                            }
                                            break;
                                        }
                                }
                            }
                        }
                        foreach (var info in this)
                        {
                            if (info.Item1 == 1 && info.Item2 == player.SecondClass && info.Item3 == Twoclass)
                            {
                                switch (info.Item4)
                                {
                                    case Action.AddRebornSpells:
                                    case Action.Add:
                                        {
                                            foreach (var spellid in info.Item5)
                                                player.Owner.MySpells.Add(stream, spellid);
                                            break;
                                        }
                                    case Action.Delete:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.Remove(spellid, stream);
                                            }
                                            break;
                                        }
                                    case Action.Downgrade:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.RebornSpell(stream, spellid);
                                            }
                                            break;
                                        }

                                }
                            }
                        }
                        foreach (var info in this)
                        {
                            if (info.Item1 == 0 && info.Item2 == 0 && info.Item3 == Twoclass)
                            {
                                switch (info.Item4)
                                {
                                    case Action.AllClassSpells:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                if (!StaticSpells.Contains(spellid))
                                                    player.Owner.MySpells.Add(stream, spellid);
                                            }
                                            break;
                                        }
                                }
                            }
                        }
                        foreach (var info in this)
                        {
                            if (info.Item1 == 2 && info.Item2 == player.Class && info.Item3 == RebornClass)
                            {
                                switch (info.Item4)
                                {
                                    case Action.AddRebornSpells:
                                    case Action.Add:
                                        {
                                            foreach (var spellid in info.Item5)
                                                player.Owner.MySpells.Add(stream, spellid);
                                            break;
                                        }
                                    case Action.Delete:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.Remove(spellid, stream);
                                            }
                                            break;
                                        }
                                    case Action.Downgrade:
                                        {
                                            foreach (var spellid in info.Item5)
                                            {
                                                player.Owner.MySpells.RebornSpell(stream, spellid);
                                            }
                                            break;
                                        }
                                }
                            }
                        }
                        player.FirstRebornLevel = player.SecondRebornLevel;
                        player.SecondRebornLevel = (byte)player.Level;
                        player.FirstClass = player.SecondClass;
                        player.SecondClass = player.Class;
                        player.Class = RebornClass;
#if Arabic
                             Program.SendGlobalPackets.Enqueue(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got Reincarnation.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

#else
                        Server.SendGlobalPacket(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got reincarnation.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.System).GetArray(stream));

#endif

                        player.Reincarnation = true;
                        break;
                    }
            }

            try
            {
                foreach (var item in player.Owner.Equipment.ClientItems.Values)
                {
                    if (item != null)
                    {
                        try
                        {
                            if (item.Position != (ushort)Role.Flags.ConquerItem.AleternanteBottle
                                && item.Position != (ushort)Role.Flags.ConquerItem.AleternanteGarment
                                && item.Position != (ushort)Role.Flags.ConquerItem.Bottle
                                && item.Position != (ushort)Role.Flags.ConquerItem.Fan
                                && item.Position != (ushort)Role.Flags.ConquerItem.Garment
                                && item.Position != (ushort)Role.Flags.ConquerItem.LeftWeaponAccessory
                                && item.Position != (ushort)Role.Flags.ConquerItem.RidingCrop
                                && item.Position != (ushort)Role.Flags.ConquerItem.RightWeaponAccessory
                                && item.Position != (ushort)Role.Flags.ConquerItem.Steed
                                && item.Position != (ushort)Role.Flags.ConquerItem.SteedMount
                                && item.Position != (ushort)Role.Flags.ConquerItem.Tower)
                            {
                                item.ITEM_ID = Pool.ItemsBase.DowngradeItem(item.ITEM_ID);
                                item.Mode = Role.Flags.ItemMode.Update;
                                item.Send(player.Owner, stream);
                            }
                        }
                        catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
                    }
                }
            }
            catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
            player.Owner.Equipment.Remove(Role.Flags.ConquerItem.LeftWeapon, stream);
            player.Owner.Equipment.Remove(Role.Flags.ConquerItem.AleternanteLeftWeapon, stream);
            player.Level = 15;
            player.Experience = Pool.LevelInfo[Database.DBLevExp.Sort.User][(byte)(player.Level - 1)].Experience;
            player.SendUpdate(stream, (long)player.Experience, Game.MsgServer.MsgUpdate.DataType.Experience);


            ActionQuery action = new ActionQuery()
            {
                ObjId = player.UID,
                Type = ActionType.Leveled,
                dwParam = player.Level
            };
            player.Owner.Send(stream.ActionCreate(action));


            player.SendUpdate(stream, player.Level, Game.MsgServer.MsgUpdate.DataType.Level);
            // Database.DataCore.AtributeStatus.GetStatus(player, true);

            player.Strength = player.Agility = player.Spirit = 0;
            player.Vitality = 1;
            if (player.Reborn == 1)
            {
                player.Atributes = (ushort)(Pool.RebornInfo.ExtraAtributePoints(player.FirstRebornLevel, player.FirstClass)
                    + 52 + 3 * (player.Level - 15) + player.ExtraAtributes);
            }
            else
            {
                player.Atributes = (ushort)(Pool.RebornInfo.ExtraAtributePoints(player.FirstRebornLevel, player.FirstClass) +
                    Pool.RebornInfo.ExtraAtributePoints(player.SecondRebornLevel, player.SecondClass) + 52 + 3 * (player.Level - 15) + player.ExtraAtributes);
            }
            player.SendUpdate(stream, player.Strength, Game.MsgServer.MsgUpdate.DataType.Strength);
            player.SendUpdate(stream, player.Agility, Game.MsgServer.MsgUpdate.DataType.Agility);
            player.SendUpdate(stream, player.Spirit, Game.MsgServer.MsgUpdate.DataType.Spirit);
            player.SendUpdate(stream, player.Vitality, Game.MsgServer.MsgUpdate.DataType.Vitality);
            player.SendUpdate(stream, player.Atributes, Game.MsgServer.MsgUpdate.DataType.Atributes);
            player.SendUpdate(stream, player.FirstClass, Game.MsgServer.MsgUpdate.DataType.FirstRebornClass);
            player.SendUpdate(stream, player.SecondClass, Game.MsgServer.MsgUpdate.DataType.SecondRebornClass);
            player.Owner.Equipment.QueryEquipment(player.Owner.Equipment.Alternante, true);
            Database.PrestigeRanking.CheckReborn(player.Owner);

            var client = player.Owner;
            client.HundredWeapons.UpdateRank();
            client.Player.RemoveFlag(MsgUpdate.Flags.ChillingSnow);
            client.Player.RemoveFlag(MsgUpdate.Flags.HealingSnow);
            client.Player.ClearFlags();
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Pitching, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Comprehension, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Comprehension, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Pitching, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Rampage, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.FrostArrows, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Sacrifice, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Infinity, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Absolution, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.IronShield, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.TideTrap, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Slayer, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.CounterPunch, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.FineRain, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.FireCurse, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Wildwind, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.BloomofDeath, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.SkyFall, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.SpaceLeap, stream);
            client.MySpells.Remove((ushort)Role.Flags.SpellID.Duel, stream);
            if (Database.AtributesStatus.IsTrojan(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FastBlader))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.FastBlader);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ScrenSword))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ScrenSword);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Cyclone))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Cyclone);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.MonsterHunter))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.MonsterHunter);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.UndyingWill))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.UndyingWill);
            }
            else if (Database.AtributesStatus.IsWindWalker(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AngerofStomper))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AngerofStomper);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.JusticeChant))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.JusticeChant);


                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Circle))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Circle);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Rectangle))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Rectangle);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Sector))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Sector);
            }
            else if (Database.AtributesStatus.IsWarrior(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Superman))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Superman);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FastBlader))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.FastBlader);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ScrenSword))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ScrenSword);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Shield))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Shield);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Accuracy))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Accuracy);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Roar))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Roar);
            }
            else if (Database.AtributesStatus.IsArcher(client.Player.Class))
            {
                client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.XpFly);
            }
            else if (Database.AtributesStatus.IsNinja(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FatalStrike))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.FatalStrike);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ToxicFog))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ToxicFog);
            }
            else if (Database.AtributesStatus.IsMonk(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.WhirlwindKick))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.WhirlwindKick);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.TripleAttack))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.TripleAttack);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Oblivion))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Oblivion);
            }
            else if (Database.AtributesStatus.IsPirate(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.CannonBarrage))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.CannonBarrage);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.BladeTempest))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.BladeTempest);
            }
            else if (Database.AtributesStatus.IsLee(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.DragonPunch))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.DragonPunch);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.DragonCyclone))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.DragonCyclone);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.DragonFlow))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.DragonFlow);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirRaid))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirRaid);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirSweep))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirSweep);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirKick))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirKick);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirStrike))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirStrike);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.EarthSweep))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.EarthSweep);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Kick))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Kick);
            }
            else if (Database.AtributesStatus.IsTaoist(client.Player.Class))
            {
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ChainBolt))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ChainBolt);
                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Lightning))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Lightning);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Thunder))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Thunder);

                if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Cure))
                    client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Cure);
            }
        }
    }
Ignore the badly spelled words I have yet to edit the source to English lol

Nobody? Yes I have checked other stream sources and no replacing the code made 0 difference

Reborn NPC code

Code:
public static void RebirthMaster(Client.GameClient client, ServerSockets.Packet stream, byte Option, string Input, uint id)
{
    Dialog data = new Dialog(client, stream);
    switch (Option)
    {
        case 0:
            {
                data.AddText("I devote all my life to the research of eternity. And finally I know the secret of rebirth! Well, anything I can help you with?")
               .AddOption("1st~Rebirth.", 1)
               .AddOption("2nd~Rebirth.", 4)
               .AddOption("Reincarnation.", 5)
               .AddOption("Reallot~my~Attribute~Points.", 8)
               .AddOption("OblivionDew for 1 cps.", 67)
                     
                        
               .AddOption("Just~passing~by.", 255)
               .AddAvatar(67).FinalizeDialog();

                break;
            }
        case 8:
            {
             data.AddText("Reborn~level~70+~players~can~redistribute~their~attribute~points~at~the~cost~of~a~dragonball.")
            .AddOption("I~will~reallot~my~points.", 9)
            .AddOption("OblivionDew for 1 cps.", 67)
            .AddOption("Let~me~think~it~over.", 255)
            .AddAvatar(67).FinalizeDialog();


                break;

            }
        case 67:
            {
                if (client.Player.ConquerPoints >= 1)
                {
                    client.Player.ConquerPoints -= 1;
                    client.Inventory.Add(stream, 711083, 1);
                }
                else
                {

                    data.AddText("Please have 1 cps .")
                    .AddOption("Thanks!", 255)
                    .AddAvatar(166).FinalizeDialog();

                }

                break;
            }
        case 9:
            {
                if (client.Player.Level >= 70)
                {
                    if (client.Inventory.Contain(Database.ItemType.DragonBall, 1))
                    {
                        client.Inventory.Remove(Database.ItemType.DragonBall, 1, stream);
                        
                        client.Player.Agility = 0;
                        client.Player.Strength = 0;
                        client.Player.Vitality = 1;
                        client.Player.Spirit = 0;

                        client.CreateBoxDialog("You have successfully reloaded your attribute points.");
                       
                        if (client.Player.Reborn == 0)
                        {
                            client.Player.Atributes = 0;
                            Database.DataCore.AtributeStatus.ResetStatsNonReborn(client.Player);
                            if (Database.AtributesStatus.IsWater(client.Player.Class))
                            {
                                if (client.Player.Level > 110)
                                    client.Player.Atributes = (ushort)((client.Player.Level - 110) * 3 + client.Player.ExtraAtributes);
                            }
                            else
                            {
                                if (client.Player.Level > 120)
                                    client.Player.Atributes = (ushort)((client.Player.Level - 120) * 3 + client.Player.ExtraAtributes);
                            }
                        }
                        else if (client.Player.Reborn == 1)
                        {
                            client.Player.Atributes = (ushort)(Pool.RebornInfo.ExtraAtributePoints(client.Player.FirstRebornLevel, client.Player.FirstClass)
                                + 52 + 3 * (client.Player.Level - 15) + client.Player.ExtraAtributes);
                        }
                        else
                        {
                            if (client.Player.SecondRebornLevel == 0)
                                client.Player.SecondRebornLevel = 130;
                            client.Player.Atributes = (ushort)(Pool.RebornInfo.ExtraAtributePoints(client.Player.FirstRebornLevel, client.Player.FirstClass) +
                                Pool.RebornInfo.ExtraAtributePoints(client.Player.SecondRebornLevel, client.Player.SecondClass) + 52 + 3 * (client.Player.Level - 15) + client.Player.ExtraAtributes);
                        }
                        client.Player.SendUpdate(stream, client.Player.Strength, Game.MsgServer.MsgUpdate.DataType.Strength);
                        client.Player.SendUpdate(stream, client.Player.Agility, Game.MsgServer.MsgUpdate.DataType.Agility);
                        client.Player.SendUpdate(stream, client.Player.Spirit, Game.MsgServer.MsgUpdate.DataType.Spirit);
                        client.Player.SendUpdate(stream, client.Player.Vitality, Game.MsgServer.MsgUpdate.DataType.Vitality);
                        client.Player.SendUpdate(stream, client.Player.Atributes, Game.MsgServer.MsgUpdate.DataType.Atributes);
                       
                    }
                    else
                    {
                        data.AddText("Sorry, you don't have one DragonBall.")
           .AddOption("I~see.", 255)
           .AddAvatar(67).FinalizeDialog();
                    }
                }
                else
                {
                    data.AddText("You~cannot~reallot~your~ability~points~unless~you~are~reborn~and~above~level~70.")
          .AddOption("I~see", 255)
          .AddAvatar(67).FinalizeDialog();
                }


                break;
            }
        case 5:
            {
                data.AddText("From now on, have total control of your life! If you've been Reborn twice and are at least Level 110, just bring me some Oblivion Dew and I'll help you become Reincarnated! After the Reincarnation, your class skills will revert to level 0,")
                                            .AddText("~but they`ll return to their previous levels when you reach Level 110, again. If your classes have been the same for all three lives, including your current one, you can learn the Pure Skills from your class trainer,")
                                            .AddText("~in the job center.")
                                  .AddOption("I~want~to~get~Reincarnated.", 6)
                                  .AddOption("Where~can~I~get~the~Dew?", 7)
                                  .AddAvatar(67).FinalizeDialog();


                break;
            }
        case 7:
            {
                data.AddText("Oblivion Dew is available in the Honor Store and the Horse Race Store. You can use your Honor Points or Horse Race Points to purchase one.")
            .AddOption("Got~it!~Thanks!", 255)
            .AddAvatar(67).FinalizeDialog();

                break;
            }
        case 6:
            {
                int limitPoints2 = client.Player.Agility + client.Player.Strength + client.Player.Vitality + client.Player.Spirit + client.Player.Atributes;
                /*  if (limitPoints2 > 900)
                  {
                      client.Player.Agility = 0;
                      client.Player.Strength = 0;
                      client.Player.Vitality = 1;
                      client.Player.Spirit = 0;
                      client.Player.Atributes = 901;
                      client.Player.SendUpdate(stream, client.Player.Strength, Game.MsgServer.MsgUpdate.DataType.Strength);
                      client.Player.SendUpdate(stream, client.Player.Agility, Game.MsgServer.MsgUpdate.DataType.Agility);
                      client.Player.SendUpdate(stream, client.Player.Spirit, Game.MsgServer.MsgUpdate.DataType.Spirit);
                      client.Player.SendUpdate(stream, client.Player.Vitality, Game.MsgServer.MsgUpdate.DataType.Vitality);
                      client.Player.SendUpdate(stream, client.Player.Atributes, Game.MsgServer.MsgUpdate.DataType.Atributes);
                  }*/
                if (client.Player.Reborn == 2 && client.Inventory.Contain(711083, 1))
                {
                    ActionQuery action = new ActionQuery()
                    {
                        Type = ActionType.OpenDialog,
                        ObjId = client.Player.UID,
                        dwParam = MsgServer.DialogCommands.Reincarnation,
                        PositionX = client.Player.X,
                        PositionY = client.Player.Y
                    };
                    client.Send(stream.ActionCreate(action));


                }
                else
                {
                    data.AddText("You have not been Reborn twice. I`m afraid you will not withstand the power of the Oblivion Dew. Come to me when you get stronger.")
             .AddOption("Got~it!~Thanks!", 255)
             .AddAvatar(67).FinalizeDialog();
                }


                break;
            }
        case 1:
            {
                if (client.Player.Reborn == 0 && (client.Player.Level >= 110 && Database.AtributesStatus.IsWater(client.Player.Class) || client.Player.Level >= 120 & client.Player.Class % 10 >= 5))
                {
                    if (client.Inventory.Contain(721259, 1) || client.Inventory.Contain(721259, 1, 1))
                    {
                        data.AddText("There are two kinds of reborns. One is the normal one and the second one is blessed.")
                            .AddText("The normal reborn will give you the chance to get a Super Gem and the blessed reborn will set a -1 into one of your equipment that you wear during the reborn. What do you chose?")
                     .AddOption("Normal reborn.", 2)
                     .AddOption("Blessed reborn.", 3)
                     .AddOption("I`ll~think~about~it.", 255)
                     .AddAvatar(67).FinalizeDialog();
                    }
                    else
                    {
                        data.AddText("Sorry, you don't have CelestialStone.")
              .AddOption("I~see.", 255)
              .AddAvatar(67).FinalizeDialog();
                    }
                }
                else
                {
                    data.AddText("You~haven`t~reached~the~highest~rank~yet.~Please~work~harder. You cannot reborn if your level is not 110+ for water saints and 120+ for other masters.")
                .AddOption("I~see.", 255)
                .AddAvatar(67).FinalizeDialog();
                }

                break;
            }
        case 4:
            {
                if (client.Player.Reborn == 1 && (client.Player.Level >= 110 && Database.AtributesStatus.IsWater(client.Player.Class) || client.Player.Level >= 120 & client.Player.Class % 10 >= 5))
                {
                    if (client.Inventory.Contain(723701, 1) || client.Inventory.Contain(723701, 1, 1))
                    {
                        data.AddText("You don't worry, it's not gonna hurt you a bit when getting the third life. You just need an exemption token and it's all going to be fine.")
                     .AddOption("Here is the ExemptionToken.", 3)
                     .AddOption("I`ll~think~about~it.", 255)
                     .AddAvatar(67).FinalizeDialog();
                    }
                    else
                    {
                        data.AddText("Sorry, you don't have ExemptionToken.")
              .AddOption("I~see.", 255)
              .AddAvatar(67).FinalizeDialog();
                    }
                }
                else
                {
                    data.AddText("Sorry,~you~are~ineligible~for~second~rebirth.~Please~wait~until~you~are~a~level~120~reborn~person.")
                .AddOption("I~see.", 255)
                .AddAvatar(67).FinalizeDialog();
                }



                break;
            }
        case 2:
            {
                data.AddText("Select the super gem you desire.")
              .AddOption("SuperPhoenixGem.", 203)
              .AddOption("SuperDragonGem.", 213)
              .AddOption("SuperFuryGem.", 223)
              .AddOption("SuperRainbowGem.", 233)
              .AddOption("SuperVioletGem.", 253)
              .AddOption("SuperMoonGem.", 254)
              .AddOption("SuperKylinGem", 243)
              .AddOption("I`ll~think~about~it.", 255)
              .AddAvatar(67).FinalizeDialog();


                break;
            }
        case 203:
        case 213:
        case 223:
        case 233:
        case 253:
        case 254:
        case 243:
            {
                if (client.Player.Reborn == 0)
                {
                    client.RebornGem = (uint)(Option % 100);
                    if (client.RebornGem == 254)
                        client.RebornGem = 263;
                }
                data.AddText("Select the class you want to reborn in.")
              .AddOption("Trojan.", 11)
              .AddOption("Warrior.", 21)
              .AddOption("Archer.", 41)
              .AddOption("WaterTaoist.", 132)
              .AddOption("FireTaoist.", 142)
              .AddOption("Ninja.", 51)
              .AddOption("Monk", 61)
              .AddOption("Pirate", 71)
              .AddOption("Dragon-Warrior", 81)
              .AddOption("Windwalker", 161)
              .AddOption("Thunderstriker.", 91)
              .AddOption("I`ll~think~about~it.", 255)
              .AddAvatar(67).FinalizeDialog();

                break;
            }
        case 3:
            {
                data.AddText("Select the class you want to reborn in.")
            .AddOption("Trojan.", 11)
            .AddOption("Warrior.", 21)
            .AddOption("Archer.", 41)
            .AddOption("WaterTaoist.", 132)
            .AddOption("FireTaoist.", 142)
            .AddOption("Ninja.", 51)
            .AddOption("Monk", 61)
            .AddOption("Pirate", 71)
            .AddOption("Dragon-Warrior", 81)
            .AddOption("Windwalker", 161)
            .AddOption("Thunderstriker.", 91)
            .AddOption("I`ll~think~about~it.", 255)
            .AddAvatar(67).FinalizeDialog();

                break;
            }
        case 11:
        case 21:
        case 41:
        case 132:
        case 142:
        case 51:
        case 161:
        case 61:
        case 81:
        case 71:
        case 91:
            {

                if (!client.Inventory.HaveSpace(5))
                {
                    data.AddText("Sorry, but you need atleast 5 free spaces in your inventory.")
                    .AddOption("I~see.", 255)
                    .AddAvatar(67).FinalizeDialog();
                    break;
                }

                if (client.Player.Class / 1000 != Option / 10 && client.Rune.WornObjects.Count(i => Role.Instance.Rune.GetSkillForRune(i) != null) > 0)
                {
                    client.SendSysMesage("Please unequip red/blue runes before changing your class.", MsgMessage.ChatMode.SystemWhisper);
                    client.CreateBoxDialog("Please unequip red/blue/Yellow runes before changing your class.");
                    break;
                }
               
                if (client.Player.Reborn == 0 && (client.Player.Level >= 110 && Database.AtributesStatus.IsWater(client.Player.Class) || client.Player.Level >= 120 & client.Player.Class % 10 >= 5))
                {
                    if (client.Inventory.Contain(721259, 1) || client.Inventory.Contain(721259, 1, 1))
                    {
                        client.Inventory.Remove(721259, 1, stream);
                        if (client.RebornGem != 0)
                        {
                            client.Inventory.Add(stream, (uint)(700000 + client.RebornGem), 1);
                            client.RebornGem = 0;

                        }
                        else
                        {
                            foreach (var item in client.Equipment.CurentEquip)
                            {
                                if (item.Position != (ushort)Role.Flags.ConquerItem.Steed)
                                {
                                    if (item.Bless == 0)
                                    {
                                        item.Bless = 1;
                                        item.Mode = Role.Flags.ItemMode.Update;
                                        item.Send(client, stream);
                                        break;
                                    }
                                }
                            }
                        }
                        switch (Option)
                        {
                            case 161:
                            case 11:
                            case 21:
                            case 51:
                            case 61:
                            case 71:
                            case 81:
                            case 91:
                                {
                                    client.Inventory.Add(stream, 410077, 1, 0, 0, 0, Role.Flags.Gem.NoSocket, Role.Flags.Gem.NoSocket, false, Role.Flags.ItemEffect.Poison);
                                    break;
                                }
                            case 41:
                                {
                                    client.Inventory.Add(stream, 410077, 1, 0, 0, 0, Role.Flags.Gem.NoSocket, Role.Flags.Gem.NoSocket, false, Role.Flags.ItemEffect.Poison);
                                    break;
                                }
                            case 132:
                            case 142:
                                {
                                    client.Inventory.Add(stream, 421077, 1, 0, 0, 0, Role.Flags.Gem.NoSocket, Role.Flags.Gem.NoSocket, false, Role.Flags.ItemEffect.MP);
                                    break;
                                }
                        }

                        uint RebornClass = (uint)(((Option / 10) * 1000) + (Option % 10));
                        Pool.RebornInfo.Reborn(client.Player, Option, stream);
                    }
                    else
                    {
                        data.AddText("Sorry, you don't have CelestialStone.")
              .AddOption("I~see.", 255)
              .AddAvatar(67).FinalizeDialog();
                    }
                }
                else if (client.Player.Reborn == 1 && (client.Player.Level >= 110 && client.Player.Class >= 13005 && client.Player.Class <= 13049 || client.Player.Level >= 120 & client.Player.Class % 10 >= 5))
                {
                    if (client.Inventory.Contain(723701, 1) || client.Inventory.Contain(723701, 1, 1))
                    {
                        client.Inventory.Remove(723701, 1, stream);
                        uint RebornClass = (uint)(((Option / 10) * 1000) + (Option % 10));
                        Pool.RebornInfo.Reborn(client.Player, Option, stream);
                    }
                    else
                    {
                        data.AddText("Sorry, you don't have ExemptionToken.")
              .AddOption("I~see.", 255)
              .AddAvatar(67).FinalizeDialog();
                    }
                }


                break;
            }
    }
}
denominator is offline  
Reply


Similar Threads Similar Threads
Does AnyBody Exactly UnderStand This???
02/07/2012 - Shaiya Private Server - 3 Replies
68 241.72 43.75 1776.19 1 0 99 43 1243.61 2.57 176.27 127.51 53.17 706.74 1 60 99 70 1480.65 33.16 163.59 1834.50 59.5 167.00 1 60 99 71 198.00 28.16 354.00 69 1762.06 25.67 166.81 2 0 99 44 1172.65 32.46 1808.02 308.11 54.24 1703.83 2 60 99 70 192.75 39.24 195.43 755.40 35.22 1872.30 2 60 99 72 89.26 39.30 365.73
[Sources]Old GroundZero Sources
10/21/2011 - S4 League Hacks, Bots, Cheats & Exploits - 21 Replies
Deleted because of RoomCrasher
(B)Youtube Bot Sources Acc Creator Sources (S) E*GOLD
06/19/2011 - elite*gold Trading - 5 Replies
Thread sagt alles, ! Pn or Skype wenn interesse!



All times are GMT +1. The time now is 15:06.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.