المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مشكلة البنك اللى مش بيطحت فى حاجة من الايتمز


Mr.KaiToU
01-26-2015, 09:36 PM
بسم الله الرحمن الرحيم
:redface:
خلاصة الموضوع ان البنك فى الابجرد الجديد
لما تحط فى اى حاجة من الايتمز
مش بتتحط يعنى اكن البنك ملوش لازمة
طب ليه يا عم
الموضوع ان كونكر اونلاين نزلت ابجرد جديد للبنك وطبعا انت بتحط اى باتش جديد فى لعبتك وخلاص من غير ما تعرف الباتش دا اتحدث فى ايه
نخوش فى الموضوع
خوش على ال GamePackets
وبعدين Warehouse
وبدل كل اللى فى بدا
طبعا مش هقدر اديك التعديلات لان ممكن متعرفش تعملها ف تخود الكود كله اسهل
using System;

namespace CoServer.Network.GamePackets
{
public class Warehouse : Writer, Interfaces.IPacket
{
public const byte Entire = 0, AddItem = 1, RemoveItem = 2;
private byte[] buffer;
public Warehouse(bool Create)
{
if (Create)
{
buffer = new byte[32];
WriteUInt16(84, 0, buffer);
WriteUInt16(1102, 2, buffer);
}
}

public uint NpcID
{
get { return BitConverter.ToUInt32(buffer, 4); }
set { WriteUInt32(value, 4, buffer); }
}

public byte Type
{
get
{
return buffer[12];
}
set
{
buffer[12] = value;
}
}

public uint Count
{
get { return BitConverter.ToUInt32(buffer, 24); }
set
{
if (value > 20)
throw new Exception("Invalid Count value.");
byte[] Buffer = new byte[8 + 84 + (72 * value)];
WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer);
WriteUInt16(1102, 2, Buffer);
WriteUInt32(NpcID, 4, Buffer);
WriteUInt32(Type, 12, Buffer);
Buffer[13] = buffer[13];
WriteUInt32(value, 24, Buffer);
buffer = Buffer;
}
}

public uint UID
{
get { return BitConverter.ToUInt32(buffer, 20); }
set { WriteUInt32(value, 20, buffer); }
}

public void Append(ConquerItem item)
{
WriteUInt32(item.UID, 28, buffer);
WriteUInt32(item.ID, 32, buffer);
WriteByte((byte)item.SocketOne, 37, buffer);
WriteByte((byte)item.SocketTwo, 38, buffer);
WriteByte(item.Plus, 45, buffer);
WriteByte(item.Bless, 46, buffer);
WriteByte((byte)(item.Bound == true ? 1 : 0), 47, buffer);
WriteUInt16(item.Enchant, 48, buffer);
WriteUInt16((ushort)item.Effect, 50, buffer);
WriteByte(item.Lock, 54, buffer);
WriteByte((byte)(item.Suspicious == true ? 1 : 0), 52, buffer);
WriteByte((byte)item.Color, 56, buffer);
WriteUInt32(item.SocketProgress, 56, buffer);
WriteUInt32(item.PlusProgress, 60, buffer);
if (item.IsItemActive == 4)
{
TimeSpan span1 = new TimeSpan(item.Time.AddSeconds(item.MaxLeftTime).Ti cks);
TimeSpan span2 = new TimeSpan(DateTime.Now.Ticks);
uint totelmin = (uint)(span1.TotalSeconds - span2.TotalSeconds);
if (totelmin <= 0)
{
Database.ConquerItemTable.DeleteItem(item.UID);
}
else
{

WriteUInt32(totelmin, 68, buffer);
}
}
WriteByte((byte)(item.Inscribed == true ? 1 : 0), 64, buffer);
}
public byte[] ToArray()
{
return buffer;
}

public void Deserialize(byte[] buffer)
{
this.buffer = buffer;
}

public void Send(Client.GameClient client)
{
client.Send(buffer);
}
}
}
ولو طلعلك ارور
روح للكلاس دا
ConquerItem.cs
وحوط فى دا
public uint max { get; set; }

public DateTime _time { get; set; }

public int IsItemActive { get; set; }
وبكيدا هيكون البنك شغال تمام ودا طبعا للكلينت الجديد

الباشا ميشوو
06-23-2015, 08:50 AM
الف شكر ياباشا