mr.deltanet
2019-04-23, 08:28 PM
السلام عليكم
في حد وصل لحل لمشكلة العربي في باكت الرسايل 1004
لما بتكلم حد في اللعبه يعني بالعربي بيظهر شخبطة
محمد ياسر
2019-04-23, 08:43 PM
النسخه الانجليزيه لا تقبل اللغه العربيه
Hassan Emprator
2019-04-23, 09:17 PM
بصو كدا هتخشو علي اعدادات اللغه هتنزلو تحت شويه هتلاقي اختيار اسمو هتلاقوي حاطط عليه الماوس
58430406_869681143374329_6305942838790062080_n
هتخشو فيه هتلاقي 3 اختيارات Data and time /// Language ///// region هتخشو في ريجايون دي تمام كدا
هتعملو زي ما انا عامل في الصوره دي كاد بالظبط
58373658_869682103374233_6138012087122657280_n
بعد ما تعملو كدا هتلاقو في 3 اختيرات فوق روح علي اخر واحده في اليمين
وبعد لما تخشلها هتنزل تحت هتلاقي كلمه اسمها Change Systeam Locale خش فيها وخلي اللغه علي عربيه مصر وكدا مبروك عليك تم الحل المشكله
mr.deltanet
2019-04-24, 05:44 AM
النسخه الانجليزيه لا تقبل اللغه العربيه
لا ملهاش علاقه انا قصدي لما بتكلم حد في اللعبه وبتكتب عربي بيروحله شخبطه دا عيب انكودنج للباكت 1004
PacketHandler.cs
#region Chat/Message (1004)
case 1004:
{
if (client.Action != 2)
return;
Message message = new Message();
message.Deserialize(packet);
message.__Message = Filter(message.__Message, client);
if (message.__Message.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries).Length > 0)
message.__Message = message.__Message.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries)[0];
Chat(message, client);
break;
}
#endregion
Message.cs
using System;
using System.Text;
using System.Drawing;
using System.Collections.Generic;
namespace Mr_Panda.Network.GamePackets
{
public class Message : Interfaces.IPacket
{
public string _From;
public string _To;
public uint ChatType;
public Color Color;
public string __Message;
public uint Mesh;
public const uint
CS = 2402,
Talk = 2000,
Whisper = 2001,
Team = 2003,
Guild = 2004,
Clan = 2006,
System = 2007,
Friend = 2009,
Center = 2011,
TopLeft = 2012,
InnerPower = 2027,
Service = 2014,
Tip = 2015,
World = 2021,
Qualifier = 2022,
PopUP = 2100,
Dialog = 2101,
Website = 2105,
FirstRightCorner = 2108,
ContinueRightCorner = 2109,
SystemWhisper = 2110,
GuildAnnouncement = 2111,
Agate = 2115,
ArenaQualifier = 2022,
BroadcastMessage = 2500,
Monster = 2600,
SlideFromRight = 100000,
HawkMessage = 2104,
SlideFromRightRedVib = 1000000,
WhiteVibrate = 10000000;
public Message(string _Message, uint _ChatType, Game.Languages Language = Game.Languages.English)
{
this.Mesh = 0;
this.__Message = _Message;
this._To = "ALL";
this._From = "SYSTEM";
this.Color = Color.Red;
this.ChatType = _ChatType;
}
public Message(string _Message, Color _Color, uint _ChatType, Game.Languages Language = Game.Languages.English)
{
this.Mesh = 0;
this.__Message = _Message;
this._To = "ALL";
this._From = "SYSTEM";
this.Color = _Color;
this.ChatType = _ChatType;
}
public Message(string _Message, string __To, Color _Color, uint _ChatType, Game.Languages Language = Game.Languages.English)
{
this.Mesh = 0;
this.__Message = _Message;
this._To = __To;
this._From = "SYSTEM";
this.Color = _Color;
this.ChatType = _ChatType;
}
public Message(string _Message, Client.GameState Client, Color _Color, uint _ChatType, Game.Languages Language = Game.Languages.English)
{
this.Mesh = 0;
this.__Message = _Message;
this._To = Client.Player.Name;
this.MessageUID1 = Client.Player.UID;
this._From = "SYSTEM";
this.Color = _Color;
this.ChatType = _ChatType;
}
public Message(string _Message, string __To, string __From, Color _Color, uint _ChatType, Game.Languages Language = Game.Languages.English)
{
this.Mesh = 0;
this.__Message = _Message;
this._To = __To;
this._From = __From;
this.Color = _Color;
this.ChatType = _ChatType;
}
public Message()
{
this.Mesh = 0;
}
public Game.Languages Language = Game.Languages.English;
public uint MessageUID1 = 0;
public uint MessageUID2 = 0;
public void Deserialize(byte[] buffer)
{
Color = Color.FromArgb(BitConverter.ToInt32(buffer, 8));
ChatType = BitConverter.ToUInt32(buffer, 12);
MessageUID1 = BitConverter.ToUInt32(buffer, 16);
MessageUID2 = BitConverter.ToUInt32(buffer, 20);
Mesh = BitConverter.ToUInt32(buffer, 24);
_From = Encoding.Default.GetString(buffer, 36, buffer[35]);
_To = Encoding.Default.GetString(buffer, 37 + _From.Length, buffer[36 + _From.Length]);
__Message = Encoding.Default.GetString(buffer, (39 + _From.Length) + _To.Length, buffer[(38 + _From.Length) + _To.Length]);
}
public byte[] ToArray()
{
byte[] Packet = new byte[(((32 + _From.Length) + _To.Length) + __Message.Length) + 18];
Writer.WriteUInt16((ushort)(Packet.Length - 8), 0, Packet);
Writer.WriteUInt32((uint)Time32.timeGetTime().GetH ashCode(), 4, Packet);
Writer.WriteUInt16(1004, 2, Packet);
Writer.WriteUInt32((uint)Color.ToArgb(), 8, Packet);
Writer.WriteUInt32(ChatType, 12, Packet);
Writer.WriteUInt32(MessageUID1, 16, Packet);
Writer.WriteUInt32(MessageUID2, 20, Packet);
Writer.WriteUInt32(Mesh, 24, Packet);
Writer.WriteStringList(new List<string>() { _From, _To, "", __Message }, 34, Packet);
return Packet;
}
public void Send(Client.GameState client)
{
if (client.Language == Language)
client.Send(ToArray());
}
public class MessageBoard
{
private const Int32 TITLE_SIZE = 44;
private const Int32 LIST_SIZE = 10;
private static List<MessageInfo> TradeBoard = new List<MessageInfo>();
private static List<MessageInfo> FriendBoard = new List<MessageInfo>();
private static List<MessageInfo> TeamBoard = new List<MessageInfo>();
private static List<MessageInfo> SynBoard = new List<MessageInfo>();
private static List<MessageInfo> OtherBoard = new List<MessageInfo>();
private static List<MessageInfo> SystemBoard = new List<MessageInfo>();
public struct MessageInfo
{
public String Author;
public String Words;
public String Date;
};
public static void Add(String Author, String Words, ushort Channel)
{
MessageInfo Info = new MessageInfo();
Info.Author = Author;
Info.Words = Words;
Info.Date = DateTime.Now.ToString("yyyyMMddHHmmss");
switch (Channel)
{
case 2201:
TradeBoard.Add(Info);
break;
case 2202:
FriendBoard.Add(Info);
break;
case 2203:
TeamBoard.Add(Info);
break;
case 2204:
SynBoard.Add(Info);
break;
case 2205:
OtherBoard.Add(Info);
break;
case 2206:
SystemBoard.Add(Info);
break;
}
}
public static void Delete(MessageInfo Message, ushort Channel)
{
switch (Channel)
{
case 2201:
if (TradeBoard.Contains(Message))
TradeBoard.Remove(Message);
break;
case 2202:
if (FriendBoard.Contains(Message))
FriendBoard.Remove(Message);
break;
case 2203:
if (TeamBoard.Contains(Message))
TeamBoard.Remove(Message);
break;
case 2204:
if (SynBoard.Contains(Message))
SynBoard.Remove(Message);
break;
case 2205:
if (OtherBoard.Contains(Message))
OtherBoard.Remove(Message);
break;
case 2206:
if (SystemBoard.Contains(Message))
SystemBoard.Remove(Message);
break;
}
}
public static String[] GetList(UInt16 Index, ushort Channel)
{
MessageInfo[] Board = null;
switch (Channel)
{
case 2201:
Board = TradeBoard.ToArray();
break;
case 2202:
Board = FriendBoard.ToArray();
break;
case 2203:
Board = TeamBoard.ToArray();
break;
case 2204:
Board = SynBoard.ToArray();
break;
case 2205:
Board = OtherBoard.ToArray();
break;
case 2206:
Board = SystemBoard.ToArray();
break;
default:
return null;
}
if (Board.Length == 0)
return null;
if ((Index / 8 * LIST_SIZE) > Board.Length)
return null;
String[] List = null;
Int32 Start = (Board.Length - ((Index / 8 * LIST_SIZE) + 1));
if (Start < LIST_SIZE)
List = new String[(Start + 1) * 3];
else
List = new String[LIST_SIZE * 3];
Int32 End = (Start - (List.Length / 3));
Int32 x = 0;
for (Int32 i = Start; i > End; i--)
{
List[x + 0] = Board[i].Author;
if (Board[i].Words.Length > TITLE_SIZE)
List[x + 1] = Board[i].Words.Remove(TITLE_SIZE, Board[i].Words.Length - TITLE_SIZE);
else
List[x + 1] = Board[i].Words;
List[x + 2] = Board[i].Date;
x += 3;
}
return List;
}
public static String GetWords(String Author, ushort Channel)
{
MessageInfo[] Board = null;
switch (Channel)
{
case 2201:
Board = TradeBoard.ToArray();
break;
case 2202:
Board = FriendBoard.ToArray();
break;
case 2203:
Board = TeamBoard.ToArray();
break;
case 2204:
Board = SynBoard.ToArray();
break;
case 2205:
Board = OtherBoard.ToArray();
break;
case 2206:
Board = SystemBoard.ToArray();
break;
default:
return "";
}
foreach (MessageInfo Info in Board)
{
if (Info.Author == Author)
return Info.Words;
}
return "";
}
public static MessageInfo GetMsgInfoByAuthor(String Author, ushort Channel)
{
MessageInfo[] Board = null;
switch (Channel)
{
case 2201:
Board = TradeBoard.ToArray();
break;
case 2202:
Board = FriendBoard.ToArray();
break;
case 2203:
Board = TeamBoard.ToArray();
break;
case 2204:
Board = SynBoard.ToArray();
break;
case 2205:
Board = OtherBoard.ToArray();
break;
case 2206:
Board = SystemBoard.ToArray();
break;
default:
return new MessageInfo();
}
foreach (MessageInfo Info in Board)
{
if (Info.Author == Author)
return Info;
}
return new MessageInfo();
}
}
}
}