5755 MonsterSpawns

07/12/2013 12:18 sala7mostafa#1
Hey all,
Now am trying to be in patch 5755 :D => TOO HARD :(
i have updated Packet[10014] => Spawnacket
but i see the monster one time and it hide again
and when i see it, i see it like npc =))

i've updated Y, X + 4 to be X = 100, Y = 102
and Name +4 to be Name = 242

and this is Packet[10014]

Code:
public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
                if (ClanName != "")
                {
                    SpawnPacket = new byte[8 + 242 + _Name.Length + ClanName.Length + 2 + 4];
                    WriteUInt16((ushort)(SpawnPacket.Length - 8), 0, SpawnPacket);
                    WriteUInt16(10014, 2, SpawnPacket);
                    WriteStringList(new List<string>() { _Name, "", ClanName, "" }, 242, SpawnPacket);
                }
                else
                {

                    SpawnPacket = new byte[8 + 242 + _Name.Length + 18 + 4];
                    WriteUInt16((ushort)(SpawnPacket.Length - 8), 0, SpawnPacket);
                    WriteUInt16(10014, 2, SpawnPacket);
                    WriteStringList(new List<string>() { _Name, "" }, 242, SpawnPacket);
                }
            }
        }
I have tried more than 50 time but i didn't make it :/
is there any packet i should upgrade to fix this problem ? any help ?
07/15/2013 03:23 Mero.El.Omda#2
Replace these codes by your codes and this will work fine

Code:
public string ClanName
        {
            get
            {
                return clan;
            }
            set
            {
                clan = value;
                if (value != null)
                {
                    int Offset = 242;
                    if (value != "")
                    {
                        byte[] buffer = new byte[((((8 + Offset) + 3) + Name.Length) + value.Length) + 2];
                        for (int n = 2; n < (SpawnPacket.Length - 7); n++)
                        {
                            buffer[n] = SpawnPacket[n];
                        }
                        SpawnPacket = new byte[((((8 + Offset) + 3) + Name.Length) + value.Length) + 2];
                        WriteUInt16((ushort)((((Offset + 3) + Name.Length) + value.Length) + 2), 0, SpawnPacket);
                        for (int a = 2; a < buffer.Length; a++)
                        {
                            SpawnPacket[a] = buffer[a];
                        }
                        WriteUInt16(10014, 2, SpawnPacket);
                        SpawnPacket[Offset] = 4;
                        SpawnPacket[Offset + 1] = (byte)_Name.Length;
                        WriteString(_Name, Offset + 2, SpawnPacket);
                        SpawnPacket[((Offset + 1) + SpawnPacket[Offset + 1]) + 2] = (byte)value.Length;
                        WriteString(value, ((Offset + 1) + SpawnPacket[Offset + 1]) + 3, SpawnPacket);
                    }
                    else
                    {
                        byte[] buffer2 = new byte[(((8 + Offset) + 3) + Name.Length) + 2];
                        for (int m = 2; m < (SpawnPacket.Length - 8); m++)
                        {
                            if (m < buffer2.Length)
                            {
                                buffer2[m] = SpawnPacket[m];
                            }
                        }
                        SpawnPacket = new byte[(((8 + Offset) + 3) + Name.Length) + 2];
                        WriteUInt16((ushort)(((Offset + 3) + Name.Length) + 2), 0, SpawnPacket);
                        for (int e = 2; e < buffer2.Length; e++)
                        {
                            SpawnPacket[e] = buffer2[e];
                        }
                        WriteUInt16(10014, 2, SpawnPacket);
                        SpawnPacket[Offset] = 4;
                        SpawnPacket[Offset + 1] = (byte)_Name.Length;
                        WriteString(_Name, Offset + 2, SpawnPacket);
                        SpawnPacket[((Offset + 1) + SpawnPacket[Offset + 1]) + 2] = (byte)value.Length;
                        WriteString(value, ((Offset + 1) + SpawnPacket[Offset + 1]) + 3, SpawnPacket);
                    }
                }
            }
        }
and this for Character name
Code:
public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
                int Offset = 242;
                if (ClanName != "")
                {
                    SpawnPacket = new byte[((((8 + Offset) + 3) + Name.Length) + ClanName.Length) + 2];
                    WriteUInt16((ushort)((((Offset + 3) + Name.Length) + ClanName.Length) + 2), 0, SpawnPacket);
                    WriteUInt16(10014, 2, SpawnPacket);
                    //WriteUInt32(Flags, Offset - 7, SpawnPacket);
                    SpawnPacket[Offset] = 4;
                    SpawnPacket[Offset + 1] = (byte)_Name.Length;
                    WriteString(_Name, Offset + 2, SpawnPacket);
                    SpawnPacket[((Offset + 1) + SpawnPacket[Offset + 1]) + 2] = (byte)ClanName.Length;
                    WriteString(ClanName, ((Offset + 1) + SpawnPacket[Offset + 1]) + 3, SpawnPacket);
                }
                else
                {
                    SpawnPacket = new byte[((8 + Offset) + 3) + Name.Length];
                    WriteUInt16((ushort)((Offset + 3) + Name.Length), 0, SpawnPacket);
                    WriteUInt16(10014, 2, SpawnPacket);
                    //WriteUInt32(Flags, Offset - 7, SpawnPacket);
                    SpawnPacket[Offset] = 4;
                    SpawnPacket[Offset + 1] = (byte)_Name.Length;
                    WriteString(_Name, Offset + 2, SpawnPacket);
                }
            }
        }
07/15/2013 11:45 Soulfly25#3
Sir, What would be the Problem
If the Character Can't Login Twice
Can Only Login Once,
Where should I fix that?

This Error came, When I upgrade my source to 5732+
Can't Login anymore when my Character will be DC/EXIT.