Patch Source: 5165 from tearoare source, It use mysql.
And this is my Teleport.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NewestCOServer.PacketHandling
{
public class Teleport
{
public static void Handle(Main.GameClient GC, byte[] Data)
{
if (!GC.LoginDataSent)
{
GC.SendPacket(Packets.Packet1012Time(GC.MyChar.Ent ityID));
GC.SendPacket(Packets.GeneralData(GC.MyChar.Loc.Ma p, GC.MyChar.Loc.Map, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 0x4a));
GC.SendPacket(Packets.GeneralData(GC.MyChar.Entity ID, 0xffffffff, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 0x68));
if (GC.MyChar.Loc.Map == 1036)
GC.SendPacket(Packets.MapStatus(GC.MyChar.Loc.Map, 30));
else
GC.SendPacket(Packets.MapStatus(GC.MyChar.Loc.Map, 32));
// foreach (Game.Item I in GC.MyChar.Inventory.Values)
// GC.SendPacket(Packets.AddItem(I, 0));
try
{
GC.MyChar.Equips.Send(GC, true);
}
catch
{
GC.MyChar.MyClient.SendPacket(Packets.SystemMessag e(2000, "Erorr!!Try again to join"));
Game.World.H_Chars.Remove(GC.MyChar.EntityID);
Game.World.Action(GC.MyChar, Packets.GeneralData(GC.MyChar.EntityID, 0, 0, 0, 135));
GC.MyChar.MyClient = null;
}
foreach (Game.Prof P in GC.MyChar.Profs.Values)
GC.SendPacket(Packets.Prof(P));
foreach (Game.Skill S in GC.MyChar.Skills.Values)
GC.SendPacket(Packets.Skill(S));
if (GC.MyChar.MyGuild != null)
{
GC.SendPacket(Packets.GuildInfo(GC.MyChar.MyGuild, GC.MyChar));
GC.SendPacket(Packets.String(GC.MyChar.MyGuild.Gui ldID, (byte)Game.StringType.GuildName, GC.MyChar.MyGuild.GuildName));
}
// foreach (Game.TradePartner P in GC.MyChar.Partners.Values)
// {
// GC.SendPacket(Packets.TradePartner(P.Name, P.UID, P.Online, P.ProbationStartedOn, 5));
// }
foreach (Features.Guild G in Features.Guilds.AllTheGuilds.Values)
GC.SendPacket(Packets.String(G.GuildID, (byte)Game.StringType.GuildName, G.GuildName));
try
{
GC.MyChar.PKPoints = GC.MyChar.PKPoints;
}
catch { }
Database.Clain(GC.MyChar);
Database.Reward(GC.MyChar);
if (GC.MyChar.Loc.Map == 601)
{
GC.MyChar.MyClient.SendPacket(Packets.OffLineTgScr een(GC.MyChar.Level, 0));
}
GC.MyChar.Nobility.Rank = GC.MyChar.Nobility.Rank;
if ((Game.World.H_Chars.Count >= Game.World.Playersmax) && (!Game.World.PlayersPool.ContainsKey(GC.MyChar.Nam e)))
{
GC.MyChar.MyClient.SendPacket(Packets.SystemMessag e(2000, "Sorry!Server is full (Players: " + Game.World.H_Chars.Count + "),you need slot"));
Game.World.H_Chars.Remove(GC.MyChar.EntityID);
Game.World.Action(GC.MyChar, Packets.GeneralData(GC.MyChar.EntityID, 0, 0, 0, 135));
GC.MyChar.MyClient = null;
}
if (GC.MyChar.banned == 1)
{
GC.MyChar.MyClient.SendPacket(Packets.SystemMessag e(2000, "You Acc has Banned by " + GC.MyChar.BanBy + " "));
Program.WriteLine("User " + GC.MyChar.Name + " disconnected. He is banned by " + GC.MyChar.BanBy + "");
Game.World.H_Chars.Remove(GC.MyChar.EntityID);
Game.World.Action(GC.MyChar, Packets.GeneralData(GC.MyChar.EntityID, 0, 0, 0, 135));
GC.MyChar.MyClient = null;
}
if (GC.MyChar.Loc.Map >= 10000)
{ GC.MyChar.Teleport(1002, 429, 378); }
try
{
Database.GetItems(GC.MyChar);
}
catch { Console.WriteLine("Try,again!!!"); }
GC.MyChar.CpsDonate = 215;
if (!Game.World.H_Chars.Contains(GC.MyChar.EntityID))
{
Game.World.H_Chars.Add(GC.MyChar.EntityID, GC.MyChar);
if (GC.MyChar.MyClient != GC)
GC.MyChar.MyClient = GC;
Game.World.Spawns(GC.MyChar, false);
}
try
{
GC.MyChar.MyClient = GC;
}
catch { GC.Soc.Disconnect(false); return; }
if (GC.MyChar.Stamina == 0)
GC.Disconnect();
if (GC.MyChar.Loaded)
{ }
else
{ Console.WriteLine("Buggerrrrrrrrrrrrrrrrrrrrrrrrrr rrrrr" + GC.MyChar.Name); GC.Disconnect(); return; }
#region Loging GuildEnemy
try
{
foreach (KeyValuePair<uint, Features.Guild> Guilds in Features.Guilds.AllTheGuilds)
{
Features.Guild TGuild = Guilds.Value;
if (GC.MyChar.MyGuild.Enemies.ContainsKey(TGuild.Guil dID))
{
GC.SendPacket(Packets.SendGuild(TGuild.GuildID, 9));
}
}
}
catch { }
#endregion
#region Logingn GuildAllis
try
{
foreach (KeyValuePair<uint, Features.Guild> Guilds in Features.Guilds.AllTheGuilds)
{
Features.Guild TGuild = Guilds.Value;
if (GC.MyChar.MyGuild.Allies.ContainsKey(TGuild.Guild ID))
{
GC.SendPacket(Packets.SendGuild(TGuild.GuildID, 7));
}
}
}
catch { }
#endregion
Game.World.Spawns(GC.MyChar, true);
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "Welcome to " + Game.World.Server.ServerName + " ! We Are a Best CoMuNiTy ! Thanks For Enjoy..!");
NPCDialog.SendLanguageChoice(GC);
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "The oficial WebSit is " + Game.World.Server.WebSite + "");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "Exp Rate : " + Game.World.Server.ExperienceRate + " Exp Skill : " + Game.World.Server.SkillExpRate + " Exp Prof : " + Game.World.Server.ProfExpRate + " PlayersOnline : " + Game.World.H_Chars.Count + " ");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "The server is still being fixed. Anyway, We want you to enjoy this server.");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "You need help? Contact Salem Rey Florida Baga");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "Enjoy.");
GC.MyChar.MyClient.SendPacket(Packets.AttackPacket (0, GC.MyChar.EntityID, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 1, 37));
if (Game.World.KOBoard[0].Name == GC.MyChar.Name)
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "You are the 1st place on the KO board, you gain 2 times more exp than others.");
if (Game.World.CurrentBC.Message != null)
GC.SendPacket(Packets.ChatMessage(GC.MessageID, Game.World.CurrentBC.Name, "ALL", Game.World.CurrentBC.Message, 2500, 0, System.Drawing.Color.White));
GC.MyChar.MyClient.SendPacket(Packets.GeneralData( GC.MyChar.EntityID, Game.World.ScreenColor, 0, 0, 104));
}
}
}
}
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NewestCOServer.PacketHandling
{
public class Teleport
{
public static void Handle(Main.GameClient GC, byte[] Data)
{
if (!GC.LoginDataSent)
{
GC.SendPacket(Packets.Packet1012Time(GC.MyChar.Ent ityID));
GC.SendPacket(Packets.GeneralData(GC.MyChar.Loc.Ma p, GC.MyChar.Loc.Map, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 0x4a));
GC.SendPacket(Packets.GeneralData(GC.MyChar.Entity ID, 0xffffffff, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 0x68));
if (GC.MyChar.Loc.Map == 1036)
GC.SendPacket(Packets.MapStatus(GC.MyChar.Loc.Map, 30));
else
GC.SendPacket(Packets.MapStatus(GC.MyChar.Loc.Map, 32));
// foreach (Game.Item I in GC.MyChar.Inventory.Values)
// GC.SendPacket(Packets.AddItem(I, 0));
try
{
GC.MyChar.Equips.Send(GC, true);
}
catch
{
GC.MyChar.MyClient.SendPacket(Packets.SystemMessag e(2000, "Erorr!!Try again to join"));
Game.World.H_Chars.Remove(GC.MyChar.EntityID);
Game.World.Action(GC.MyChar, Packets.GeneralData(GC.MyChar.EntityID, 0, 0, 0, 135));
GC.MyChar.MyClient = null;
}
foreach (Game.Prof P in GC.MyChar.Profs.Values)
GC.SendPacket(Packets.Prof(P));
foreach (Game.Skill S in GC.MyChar.Skills.Values)
GC.SendPacket(Packets.Skill(S));
if (GC.MyChar.MyGuild != null)
{
GC.SendPacket(Packets.GuildInfo(GC.MyChar.MyGuild, GC.MyChar));
GC.SendPacket(Packets.String(GC.MyChar.MyGuild.Gui ldID, (byte)Game.StringType.GuildName, GC.MyChar.MyGuild.GuildName));
}
// foreach (Game.TradePartner P in GC.MyChar.Partners.Values)
// {
// GC.SendPacket(Packets.TradePartner(P.Name, P.UID, P.Online, P.ProbationStartedOn, 5));
// }
foreach (Features.Guild G in Features.Guilds.AllTheGuilds.Values)
GC.SendPacket(Packets.String(G.GuildID, (byte)Game.StringType.GuildName, G.GuildName));
try
{
GC.MyChar.PKPoints = GC.MyChar.PKPoints;
}
catch { }
Database.Clain(GC.MyChar);
Database.Reward(GC.MyChar);
if (GC.MyChar.Loc.Map == 601)
{
GC.MyChar.MyClient.SendPacket(Packets.OffLineTgScr een(GC.MyChar.Level, 0));
}
GC.MyChar.Nobility.Rank = GC.MyChar.Nobility.Rank;
if ((Game.World.H_Chars.Count >= Game.World.Playersmax) && (!Game.World.PlayersPool.ContainsKey(GC.MyChar.Nam e)))
{
GC.MyChar.MyClient.SendPacket(Packets.SystemMessag e(2000, "Sorry!Server is full (Players: " + Game.World.H_Chars.Count + "),you need slot"));
Game.World.H_Chars.Remove(GC.MyChar.EntityID);
Game.World.Action(GC.MyChar, Packets.GeneralData(GC.MyChar.EntityID, 0, 0, 0, 135));
GC.MyChar.MyClient = null;
}
if (GC.MyChar.banned == 1)
{
GC.MyChar.MyClient.SendPacket(Packets.SystemMessag e(2000, "You Acc has Banned by " + GC.MyChar.BanBy + " "));
Program.WriteLine("User " + GC.MyChar.Name + " disconnected. He is banned by " + GC.MyChar.BanBy + "");
Game.World.H_Chars.Remove(GC.MyChar.EntityID);
Game.World.Action(GC.MyChar, Packets.GeneralData(GC.MyChar.EntityID, 0, 0, 0, 135));
GC.MyChar.MyClient = null;
}
if (GC.MyChar.Loc.Map >= 10000)
{ GC.MyChar.Teleport(1002, 429, 378); }
try
{
Database.GetItems(GC.MyChar);
}
catch { Console.WriteLine("Try,again!!!"); }
GC.MyChar.CpsDonate = 215;
if (!Game.World.H_Chars.Contains(GC.MyChar.EntityID))
{
Game.World.H_Chars.Add(GC.MyChar.EntityID, GC.MyChar);
if (GC.MyChar.MyClient != GC)
GC.MyChar.MyClient = GC;
Game.World.Spawns(GC.MyChar, false);
}
try
{
GC.MyChar.MyClient = GC;
}
catch { GC.Soc.Disconnect(false); return; }
if (GC.MyChar.Stamina == 0)
GC.Disconnect();
if (GC.MyChar.Loaded)
{ }
else
{ Console.WriteLine("Buggerrrrrrrrrrrrrrrrrrrrrrrrrr rrrrr" + GC.MyChar.Name); GC.Disconnect(); return; }
#region Loging GuildEnemy
try
{
foreach (KeyValuePair<uint, Features.Guild> Guilds in Features.Guilds.AllTheGuilds)
{
Features.Guild TGuild = Guilds.Value;
if (GC.MyChar.MyGuild.Enemies.ContainsKey(TGuild.Guil dID))
{
GC.SendPacket(Packets.SendGuild(TGuild.GuildID, 9));
}
}
}
catch { }
#endregion
#region Logingn GuildAllis
try
{
foreach (KeyValuePair<uint, Features.Guild> Guilds in Features.Guilds.AllTheGuilds)
{
Features.Guild TGuild = Guilds.Value;
if (GC.MyChar.MyGuild.Allies.ContainsKey(TGuild.Guild ID))
{
GC.SendPacket(Packets.SendGuild(TGuild.GuildID, 7));
}
}
}
catch { }
#endregion
Game.World.Spawns(GC.MyChar, true);
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "Welcome to " + Game.World.Server.ServerName + " ! We Are a Best CoMuNiTy ! Thanks For Enjoy..!");
NPCDialog.SendLanguageChoice(GC);
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "The oficial WebSit is " + Game.World.Server.WebSite + "");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "Exp Rate : " + Game.World.Server.ExperienceRate + " Exp Skill : " + Game.World.Server.SkillExpRate + " Exp Prof : " + Game.World.Server.ProfExpRate + " PlayersOnline : " + Game.World.H_Chars.Count + " ");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "The server is still being fixed. Anyway, We want you to enjoy this server.");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "You need help? Contact Salem Rey Florida Baga");
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "Enjoy.");
GC.MyChar.MyClient.SendPacket(Packets.AttackPacket (0, GC.MyChar.EntityID, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 1, 37));
if (Game.World.KOBoard[0].Name == GC.MyChar.Name)
GC.LocalMessage(2001, System.Drawing.Color.Yellow, "You are the 1st place on the KO board, you gain 2 times more exp than others.");
if (Game.World.CurrentBC.Message != null)
GC.SendPacket(Packets.ChatMessage(GC.MessageID, Game.World.CurrentBC.Name, "ALL", Game.World.CurrentBC.Message, 2500, 0, System.Drawing.Color.White));
GC.MyChar.MyClient.SendPacket(Packets.GeneralData( GC.MyChar.EntityID, Game.World.ScreenColor, 0, 0, 104));
}
}
}
}






