Problem: When Someone Log in Ping goes High sometimes goes to 5k and all online character feels lag. Then when it load the newly character lag will gone. Is there anything wrong in the code in my teleport.cs this is the first cs run when someone log in? if i am right. Please anyone can help me about this problem.
Patch Source: 5165 from tearoare source, It use mysql.
And this is my Teleport.cs
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));
}
}
}
}