Advertisement
Jh0n-K3v1n

ReborInformation

Jun 9th, 2025 (edited)
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 27.83 KB | Help | 0 0
  1.         public unsafe void Reborn(Role.Player player, byte RebornClass , ServerSockets.Packet stream)
  2.         {
  3.  
  4.  
  5.                 if (RebornClass % 10 == 1 || RebornClass == 132 || RebornClass == 142)
  6.                 {
  7.                     switch (player.Reborn)
  8.                     {
  9.                         case 0:
  10.                             {
  11.  
  12.  
  13.                                 foreach (var info in this)
  14.                                 {
  15.                                     if (info.Item1 == 1 && info.Item2 == player.Class && info.Item3 == RebornClass)
  16.                                     {
  17.                                         switch (info.Item4)
  18.                                         {
  19.                                             case Action.AddRebornSpells:
  20.                                             case Action.Add:
  21.                                                 {
  22.                                                     foreach (var spellid in info.Item5)
  23.                                                         player.Owner.MySpells.Add(stream,spellid);
  24.                                                     break;
  25.                                                 }
  26.                                             case Action.Delete:
  27.                                                 {
  28.                                                     foreach (var spellid in info.Item5)
  29.                                                     {
  30.                                                         player.Owner.MySpells.Remove(spellid,stream);
  31.                                                     }
  32.                                                     break;
  33.                                                 }
  34.                                             case Action.Downgrade:
  35.                                                 {
  36.                                                     foreach (var spellid in info.Item5)
  37.                                                         player.Owner.MySpells.RebornSpell(stream,spellid);
  38.                                                     break;
  39.                                                 }
  40.  
  41.                                         }
  42.                                     }
  43.                                 }
  44.                                 player.FirstRebornLevel = (byte)player.Level;
  45.                                 player.FirstClass = player.Class;
  46.                                 player.Class = RebornClass;
  47.                                 player.Reborn = 1;
  48.                                 player.SendUpdate(stream,player.Reborn, Game.MsgServer.MsgUpdate.DataType.Reborn);
  49. #if Arabic
  50.                                     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));
  51.                              
  52. #else
  53.                                 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));
  54.                              
  55. #endif
  56.                                
  57.                                 break;
  58.                             }
  59.                         case 1:
  60.                             {
  61.  
  62.                                 foreach (var info in this)
  63.                                 {
  64.                                     if (info.Item1 == 2 && info.Item2 == player.Class && info.Item3 == RebornClass)
  65.                                     {
  66.                                         switch (info.Item4)
  67.                                         {
  68.                                             case Action.AddRebornSpells:
  69.                                             case Action.Add:
  70.                                                 {
  71.                                                     foreach (var spellid in info.Item5)
  72.                                                         player.Owner.MySpells.Add(stream,spellid);
  73.                                                     break;
  74.                                                 }
  75.                                             case Action.Delete:
  76.                                                 {
  77.                                                     foreach (var spellid in info.Item5)
  78.                                                     {
  79.                                                         player.Owner.MySpells.Remove(spellid, stream);
  80.                                                     }
  81.                                                     break;
  82.                                                 }
  83.                                             case Action.Downgrade:
  84.                                                 {
  85.                                                     foreach (var spellid in info.Item5)
  86.                                                     {
  87.                                                         player.Owner.MySpells.RebornSpell(stream,spellid);
  88.                                                     }
  89.                                                     break;
  90.                                                 }
  91.  
  92.                                         }
  93.                                     }
  94.                                 }
  95.                                 player.SecoundeRebornLevel = (byte)player.Level;
  96.                                 player.SecoundeClass = player.Class;
  97.                                 player.Class = RebornClass;
  98.                                 player.Reborn = 2;
  99.                                 player.SendUpdate(stream,player.Reborn, Game.MsgServer.MsgUpdate.DataType.Reborn);
  100. #if Arabic
  101.                                  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));
  102.                                
  103. #else
  104.                                 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));
  105.                                
  106. #endif
  107.                                
  108.                                 break;
  109.                             }
  110.                         case 2:
  111.                             {
  112.                                 player.Owner.MySpells.ClearSpells(StaticSpells, stream);
  113.  
  114.                                 byte RClass = 0;
  115.                                 if (player.SecoundeClass == 135)
  116.                                     RClass = 132;
  117.                                 else if (player.SecoundeClass == 145)
  118.                                     RClass = 142;
  119.                                 else
  120.                                     RClass = (byte)(player.SecoundeClass - 4);
  121.  
  122.                                 byte Twoclass = 0;
  123.                                 if (player.Class == 135)
  124.                                     Twoclass = 132;
  125.                                 else if (player.Class == 145)
  126.                                     Twoclass = 142;
  127.                                 else
  128.                                     Twoclass = (byte)(player.Class - 4);
  129.  
  130.                                 foreach (var info in this)
  131.                                 {
  132.                                     if (info.Item1 == 0 && info.Item2 == 0 && info.Item3 == RClass)
  133.                                     {
  134.                                         switch (info.Item4)
  135.                                         {
  136.                                             case Action.AllClassSpells:
  137.                                                 {
  138.                                                     foreach (var spellid in info.Item5)
  139.                                                     {
  140.                                                         if (!StaticSpells.Contains(spellid))
  141.                                                             player.Owner.MySpells.Add(stream,spellid);
  142.                                                     }
  143.                                                     break;
  144.                                                 }
  145.                                         }
  146.                                     }
  147.                                 }
  148.                                 foreach (var info in this)
  149.                                 {
  150.                                     if (info.Item1 == 1 && info.Item2 == player.SecoundeClass && info.Item3 == Twoclass)
  151.                                     {
  152.                                         switch (info.Item4)
  153.                                         {
  154.                                             case Action.AddRebornSpells:
  155.                                             case Action.Add:
  156.                                                 {
  157.                                                     foreach (var spellid in info.Item5)
  158.                                                         player.Owner.MySpells.Add(stream,spellid);
  159.                                                     break;
  160.                                                 }
  161.                                             case Action.Delete:
  162.                                                 {
  163.                                                     foreach (var spellid in info.Item5)
  164.                                                     {
  165.                                                         player.Owner.MySpells.Remove(spellid, stream);
  166.                                                     }
  167.                                                     break;
  168.                                                 }
  169.                                             case Action.Downgrade:
  170.                                                 {
  171.                                                     foreach (var spellid in info.Item5)
  172.                                                     {
  173.                                                         player.Owner.MySpells.RebornSpell(stream,spellid);
  174.                                                     }
  175.                                                     break;
  176.                                                 }
  177.  
  178.                                         }
  179.                                     }
  180.                                 }
  181.                                 foreach (var info in this)
  182.                                 {
  183.                                     if (info.Item1 == 0 && info.Item2 == 0 && info.Item3 == Twoclass)
  184.                                     {
  185.                                         switch (info.Item4)
  186.                                         {
  187.                                             case Action.AllClassSpells:
  188.                                                 {
  189.                                                     foreach (var spellid in info.Item5)
  190.                                                     {
  191.                                                         if (!StaticSpells.Contains(spellid))
  192.                                                             player.Owner.MySpells.Add(stream,spellid);
  193.                                                     }
  194.                                                     break;
  195.                                                 }
  196.                                         }
  197.                                     }
  198.                                 }
  199.                                 foreach (var info in this)
  200.                                 {
  201.                                     if (info.Item1 == 2 && info.Item2 == player.Class && info.Item3 == RebornClass)
  202.                                     {
  203.                                         switch (info.Item4)
  204.                                         {
  205.                                             case Action.AddRebornSpells:
  206.                                             case Action.Add:
  207.                                                 {
  208.                                                     foreach (var spellid in info.Item5)
  209.                                                         player.Owner.MySpells.Add(stream,spellid);
  210.                                                     break;
  211.                                                 }
  212.                                             case Action.Delete:
  213.                                                 {
  214.                                                     foreach (var spellid in info.Item5)
  215.                                                     {
  216.                                                         player.Owner.MySpells.Remove(spellid, stream);
  217.                                                     }
  218.                                                     break;
  219.                                                 }
  220.                                             case Action.Downgrade:
  221.                                                 {
  222.                                                     foreach (var spellid in info.Item5)
  223.                                                     {
  224.                                                         player.Owner.MySpells.RebornSpell(stream,spellid);
  225.                                                     }
  226.                                                     break;
  227.                                                 }
  228.                                         }
  229.                                     }
  230.                                 }
  231.                                 player.FirstRebornLevel = player.SecoundeRebornLevel;
  232.                                 player.SecoundeRebornLevel = (byte)player.Level;
  233.                                 player.FirstClass = player.SecoundeClass;
  234.                                 player.SecoundeClass = player.Class;
  235.                                 player.Class = RebornClass;
  236. #if Arabic
  237.                                  Program.SendGlobalPackets.Enqueue(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got reincanation.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));
  238.                                
  239. #else
  240.                                 Program.SendGlobalPackets.Enqueue(new Game.MsgServer.MsgMessage("Congratulations! " + player.Name + " has got reincanation.", Game.MsgServer.MsgMessage.MsgColor.white, Game.MsgServer.MsgMessage.ChatMode.System).GetArray(stream));
  241.                                
  242. #endif
  243.                                
  244.                                 player.Reincarnation = true;
  245.                                 break;
  246.                             }
  247.                     }
  248.  
  249.                     try
  250.                     {
  251.                         foreach (var item in player.Owner.Equipment.ClientItems.Values)
  252.                         {
  253.                             if (item != null)
  254.                             {
  255.                                 try
  256.                                 {
  257.                                     if (item.Position != (ushort)Role.Flags.ConquerItem.AleternanteBottle
  258.                                         && item.Position != (ushort)Role.Flags.ConquerItem.AleternanteGarment
  259.                                         && item.Position != (ushort)Role.Flags.ConquerItem.Bottle
  260.                                         && item.Position != (ushort)Role.Flags.ConquerItem.Fan
  261.                                         && item.Position != (ushort)Role.Flags.ConquerItem.Garment
  262.                                         && item.Position != (ushort)Role.Flags.ConquerItem.LeftWeaponAccessory
  263.                                         && item.Position != (ushort)Role.Flags.ConquerItem.RidingCrop
  264.                                         && item.Position != (ushort)Role.Flags.ConquerItem.RightWeaponAccessory
  265.                                         && item.Position != (ushort)Role.Flags.ConquerItem.Steed
  266.                                         && item.Position != (ushort)Role.Flags.ConquerItem.SteedMount
  267.                                         && item.Position != (ushort)Role.Flags.ConquerItem.Tower)
  268.                                     {
  269.                                         item.ITEM_ID = Database.Server.ItemsBase.DowngradeItem(item.ITEM_ID);
  270.                                         item.Mode = Role.Flags.ItemMode.Update;
  271.                                         item.Send(player.Owner, stream);
  272.                                     }
  273.                                 }
  274.                                 catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
  275.                             }
  276.                         }
  277.                     }
  278.                     catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
  279.                     player.Owner.Equipment.Remove(Role.Flags.ConquerItem.LeftWeapon, stream);
  280.                     player.Owner.Equipment.Remove(Role.Flags.ConquerItem.AleternanteLeftWeapon, stream);
  281.  
  282.  
  283.                     player.Level = 15;
  284.                     player.Experience = Database.Server.LevelInfo[Database.DBLevExp.Sort.User][(byte)(player.Level - 1)].Experience;
  285.                     player.SendUpdate(stream,(long)player.Experience, Game.MsgServer.MsgUpdate.DataType.Experience);
  286.  
  287.  
  288.                     ActionQuery action = new ActionQuery()
  289.                     {
  290.                         ObjId = player.UID,
  291.                         Type = ActionType.Leveled,
  292.                        dwParam = player.Level
  293.                     };
  294.                     player.Owner.Send(stream.ActionCreate(&action));
  295.  
  296.                
  297.                     player.SendUpdate(stream,player.Level, Game.MsgServer.MsgUpdate.DataType.Level);
  298.                     // Database.DataCore.AtributeStatus.GetStatus(player, true);
  299.  
  300.                     player.Strength = player.Agility = player.Spirit = 0;
  301.                     player.Vitality = 1;
  302.                     if (player.Reborn == 1)
  303.                     {
  304.                         player.Atributes = (ushort)(Database.Server.RebornInfo.ExtraAtributePoints(player.FirstRebornLevel, player.FirstClass)
  305.                             + 52 + 3 * (player.Level - 15) + player.ExtraAtributes);
  306.                     }
  307.                     else
  308.                     {
  309.                         player.Atributes = (ushort)(Database.Server.RebornInfo.ExtraAtributePoints(player.FirstRebornLevel, player.FirstClass) +
  310.                             Database.Server.RebornInfo.ExtraAtributePoints(player.SecoundeRebornLevel, player.SecoundeClass) + 52 + 3 * (player.Level - 15) + player.ExtraAtributes);
  311.                     }
  312.                     player.SendUpdate(stream,player.Strength, Game.MsgServer.MsgUpdate.DataType.Strength);
  313.                     player.SendUpdate(stream,player.Agility, Game.MsgServer.MsgUpdate.DataType.Agility);
  314.                     player.SendUpdate(stream,player.Spirit, Game.MsgServer.MsgUpdate.DataType.Spirit);
  315.                     player.SendUpdate(stream,player.Vitality, Game.MsgServer.MsgUpdate.DataType.Vitality);
  316.                     player.SendUpdate(stream,player.Atributes, Game.MsgServer.MsgUpdate.DataType.Atributes);
  317.                     player.SendUpdate(stream,player.FirstClass, Game.MsgServer.MsgUpdate.DataType.FirsRebornClass);
  318.                     player.SendUpdate(stream,player.SecoundeClass, Game.MsgServer.MsgUpdate.DataType.SecondRebornClass);
  319.                     player.Owner.Equipment.QueryEquipment(player.Owner.Equipment.Alternante, true);
  320.                     Database.PrestigeRanking.CheckReborn(player.Owner);
  321.  
  322.                     var client = player.Owner;
  323.  
  324.                     client.Player.RemoveFlag(MsgUpdate.Flags.ChillingSnow);
  325.                     client.Player.RemoveFlag(MsgUpdate.Flags.HealingSnow);
  326.  
  327.  
  328.                     if (Database.AtributesStatus.IsTrojan(client.Player.Class))
  329.                     {
  330.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FastBlader))
  331.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.FastBlader);
  332.  
  333.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ScrenSword))
  334.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ScrenSword);
  335.  
  336.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Cyclone))
  337.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Cyclone);
  338.                     }
  339.                     else if (Database.AtributesStatus.IsWindWalker(client.Player.Class))
  340.                     {
  341.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AngerofStomper))
  342.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AngerofStomper);
  343.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.JusticeChant))
  344.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.JusticeChant);
  345.  
  346.                      
  347.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Circle))
  348.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Circle);
  349.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Rectangle))
  350.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Rectangle);
  351.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Sector))
  352.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Sector);
  353.                     }
  354.                     else if (Database.AtributesStatus.IsWarrior(client.Player.Class))
  355.                     {
  356.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Superman))
  357.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Superman);
  358.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FastBlader))
  359.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.FastBlader);
  360.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ScrenSword))
  361.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ScrenSword);
  362.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Shield))
  363.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Shield);
  364.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Accuracy))
  365.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Accuracy);
  366.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Roar))
  367.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Roar);
  368.                     }
  369.                     else if (Database.AtributesStatus.IsArcher(client.Player.Class))
  370.                     {
  371.                         client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.XpFly);
  372.                     }
  373.                     else if (Database.AtributesStatus.IsNinja(client.Player.Class))
  374.                     {
  375.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.FatalStrike))
  376.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.FatalStrike);
  377.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ToxicFog))
  378.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ToxicFog);
  379.                     }
  380.                     else if (Database.AtributesStatus.IsMonk(client.Player.Class))
  381.                     {
  382.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.WhirlwindKick))
  383.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.WhirlwindKick);
  384.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.TripleAttack))
  385.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.TripleAttack);
  386.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Oblivion))
  387.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Oblivion);
  388.                     }
  389.                     else if (Database.AtributesStatus.IsPirate(client.Player.Class))
  390.                     {
  391.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.CannonBarrage))
  392.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.CannonBarrage);
  393.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.BladeTempest))
  394.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.BladeTempest);
  395.                     }
  396.                     else if (Database.AtributesStatus.IsLee(client.Player.Class))
  397.                     {
  398.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.DragonPunch))
  399.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.DragonPunch);
  400.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.DragonCyclone))
  401.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.DragonCyclone);
  402.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.DragonFlow))
  403.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.DragonFlow);
  404.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirRaid))
  405.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirRaid);
  406.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirSweep))
  407.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirSweep);
  408.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirKick))
  409.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirKick);
  410.  
  411.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.AirStrike))
  412.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.AirStrike);
  413.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.EarthSweep))
  414.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.EarthSweep);
  415.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Kick))
  416.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Kick);
  417.                     }
  418.                     else if (Database.AtributesStatus.IsTaoist(client.Player.Class))
  419.                     {
  420.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.ChainBolt))
  421.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.ChainBolt);
  422.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Lightning))
  423.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Lightning);
  424.  
  425.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Thunder))
  426.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Thunder);
  427.  
  428.                         if (!client.MySpells.ClientSpells.ContainsKey((ushort)Role.Flags.SpellID.Cure))
  429.                             client.MySpells.Add(stream, (ushort)Role.Flags.SpellID.Cure);
  430.                     }
  431.                
  432.                 }
  433.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement