مشاهدة النسخة كاملة : مشكله في شوب exchange
neno2052
2019-11-25, 09:47 AM
يرجاله الشوب دا كنت منزله من فتره وبجربه دلوقت لقيته مش شغال ومش بيبدل ولما باجي ابدل بيجيبلي الكلمه دي
Unknown type: 2443 with length 20
عفواً لايمكن عرض الروابط في الإرشيف
GOOGLE
2019-11-25, 10:08 AM
روح Gamapackets وضيف
BuyFromExchangeShop = 2443,
ExchangeShop = 2441,
اعمل كلاس ده
using CMsgConquer.Client;
using CMsgConquer.Database;
using ProtoBuf;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Alaxx.Network.GamePackets
{
public class CMsgExchangeShopRespond
{
private byte[] _packet;
public CMsgExchangeShopRespond(byte[] incoming)
{
int newLegnth = incoming.Length - 12;
byte[] Incoming = new byte[newLegnth];
Array.Copy(incoming, 4, Incoming, 0, Incoming.Length);
_packet = Incoming;
}
public ExchangeShopRespondProto Data = null;
public void Handle(GameClient client)
{
uint[] ptr = Read7BitEncodedInt(_packet);
int index = 0;
Data = new ExchangeShopRespondProto();
Data.ShopID = ptr[index];
index++;
Data.Action = ptr[index];
index++;
Data.Amount = ptr[index];
index++;
Data.ItemID = ptr[index];
if (Data != null)
{
if (CMsgExchangueShopFile.Items.ContainsKey(Data.Item ID))
{
CMsgExchangeItems Item = null;
CMsgExchangueShopFile.Items.TryGetValue(Data.ItemI D, out Item);
if (Item == null)
return;
if (Data.Amount > Item.Remaining)
return;
uint Count = Item.NeddedItemCount * Data.Amount;
uint PriceItem = Item.NeededItemID;
if (client.Inventory.Contains(PriceItem, Count))
{
if (client.Inventory.Remove(PriceItem, Count))
{
client.Inventory.Add(Item.ItemID, 0, (byte)Data.Amount, Item.Bound);
}
}
}
}
}
public static uint[] Read7BitEncodedInt(byte[] buffer)
{
List<uint> ptr2 = new List<uint>();
for (int i = 0; i < buffer.Length; )
{
if (i + 2 <= buffer.Length)
{
int tmp = buffer[i++];
if (tmp % 8 == 0)
while (true)
{
if (i + 1 > buffer.Length) break;
tmp = buffer[i++];
if (tmp < 128)
{
ptr2.Add((uint)tmp);
break;
}
else
{
int result = tmp & 0x7f;
if ((tmp = buffer[i++]) < 128)
{
result |= tmp << 7;
ptr2.Add((uint)result);
break;
}
else
{
result |= (tmp & 0x7f) << 7;
if ((tmp = buffer[i++]) < 128)
{
result |= tmp << 14;
ptr2.Add((uint)result);
break;
}
else
{
result |= (tmp & 0x7f) << 14;
if ((tmp = buffer[i++]) < 128)
{
result |= tmp << 21;
ptr2.Add((uint)result);
break;
}
else
{
result |= (tmp & 0x7f) << 21;
result |= (tmp = buffer[i++]) << 28;
ptr2.Add((uint)result);
break;
}
}
}
}
}
}
else break;
}
return ptr2.ToArray();
}
}
public class ExchangeShopRespondProto
{
public uint ShopID;
public uint Action;
public uint Amount;
public uint ItemID;
public uint U1;
public uint U2;
}
}
متنساش تغير اسم بروجيكت
لو مظبطش
هتحتاج بقي كود
BuyFromExchangeShop ف بكت هندلر
للاسف مش معايه
neno2052
2019-11-25, 10:24 AM
روح gamapackets وضيف
buyfromexchangeshop = 2443,
exchangeshop = 2441,
اعمل كلاس ده
using cmsgconquer.client;
using cmsgconquer.database;
using protobuf;
using system;
using system.collections.generic;
using system.io;
using system.linq;
using system.text;
using system.threading.tasks;
namespace alaxx.network.gamepackets
{
public class cmsgexchangeshoprespond
{
private byte[] _packet;
public cmsgexchangeshoprespond(byte[] incoming)
{
int newlegnth = incoming.length - 12;
byte[] incoming = new byte[newlegnth];
array.copy(incoming, 4, incoming, 0, incoming.length);
_packet = incoming;
}
public exchangeshoprespondproto data = null;
public void handle(gameclient client)
{
uint[] ptr = read7bitencodedint(_packet);
int index = 0;
data = new exchangeshoprespondproto();
data.shopid = ptr[index];
index++;
data.action = ptr[index];
index++;
data.amount = ptr[index];
index++;
data.itemid = ptr[index];
if (data != null)
{
if (cmsgexchangueshopfile.items.containskey(data.item id))
{
cmsgexchangeitems item = null;
cmsgexchangueshopfile.items.trygetvalue(data.itemi d, out item);
if (item == null)
return;
if (data.amount > item.remaining)
return;
uint count = item.neddeditemcount * data.amount;
uint priceitem = item.neededitemid;
if (client.inventory.contains(priceitem, count))
{
if (client.inventory.remove(priceitem, count))
{
client.inventory.add(item.itemid, 0, (byte)data.amount, item.bound);
}
}
}
}
}
public static uint[] read7bitencodedint(byte[] buffer)
{
list<uint> ptr2 = new list<uint>();
for (int i = 0; i < buffer.length; )
{
if (i + 2 <= buffer.length)
{
int tmp = buffer[i++];
if (tmp % 8 == 0)
while (true)
{
if (i + 1 > buffer.length) break;
tmp = buffer[i++];
if (tmp < 128)
{
ptr2.add((uint)tmp);
break;
}
else
{
int result = tmp & 0x7f;
if ((tmp = buffer[i++]) < 128)
{
result |= tmp << 7;
ptr2.add((uint)result);
break;
}
else
{
result |= (tmp & 0x7f) << 7;
if ((tmp = buffer[i++]) < 128)
{
result |= tmp << 14;
ptr2.add((uint)result);
break;
}
else
{
result |= (tmp & 0x7f) << 14;
if ((tmp = buffer[i++]) < 128)
{
result |= tmp << 21;
ptr2.add((uint)result);
break;
}
else
{
result |= (tmp & 0x7f) << 21;
result |= (tmp = buffer[i++]) << 28;
ptr2.add((uint)result);
break;
}
}
}
}
}
}
else break;
}
return ptr2.toarray();
}
}
public class exchangeshoprespondproto
{
public uint shopid;
public uint action;
public uint amount;
public uint itemid;
public uint u1;
public uint u2;
}
}
متنساش تغير اسم بروجيكت
لو مظبطش
هتحتاج بقي كود
buyfromexchangeshop ف بكت هندلر
للاسف مش معايه
تمام الكلاس موجود والباكتين موجودين الي مش موجود بتاع البكت هندلر متعرفش اجيبه منين ؟
GOOGLE
2019-11-25, 10:38 AM
للاسف لا بس لو لقيته هبقي اجيبهولك بس دور ف سورسات القديمه
neno2052
2019-11-25, 10:48 AM
للاسف لا بس لو لقيته هبقي اجيبهولك بس دور ف سورسات القديمه
طب انا حطيت دا الكلمه بطلت تجي بس الشوب مشتغلش بردو
#region MsgExchangeShopRespond
case 2443:
{
new MsgExchangeShopRespond(packet).Handle(client);
break;
}
#endregion
GOOGLE
2019-11-25, 10:58 AM
امم جبتها منين الكلمه دي + مشتغلش اذاي
neno2052
2019-11-25, 11:35 AM
امم جبتها منين الكلمه دي + مشتغلش اذاي
كانت موجوده بس منقلتهاش
والله معرف مشتغلش ليه ؟
GOOGLE
2019-11-25, 11:41 AM
موجوده فين ؟؟
neno2052
2019-11-25, 11:43 AM
موجوده فين ؟؟
انا كنت حاططها في سورس القديم المهم
في امل اشغل الشوب ولا امسحه ؟
GOOGLE
2019-11-25, 12:07 PM
جرب تخليه
#region MsgExchangeShopRespond
case 2443:
{
new CMsgExchangeShopRespond(packet).Handle(client);
break;
}
#endregion
neno2052
2019-11-25, 12:14 PM
جرب تخليه
#region msgexchangeshoprespond
case 2443:
{
new cmsgexchangeshoprespond(packet).handle(client);
break;
}
#endregion
مش هتفرق دا اسم الكلاس مش اكتر
#region msgexchangeshoprespond
case 2443:
{
new cmsgexchangeshoprespond(packet).handle(client);
break;
}
#endregion
اضافه دي نقصه ف كود تاني تبعها
case 34
هتلاقيها تحتها او جواها كلام ده لو الاضافه شغاله ف سورس الي انته واخدها منه
neno2052
2019-11-25, 05:33 PM
#region msgexchangeshoprespond
case 2443:
{
new cmsgexchangeshoprespond(packet).handle(client);
break;
}
#endregion
اضافه دي نقصه ف كود تاني تبعها
case 34
هتلاقيها تحتها او جواها كلام ده لو الاضافه شغاله ف سورس الي انته واخدها منه
طب ممكن الاضافه كامله بعد ازنك يا استاذ رايدر
محمد ياسر
2019-11-25, 07:59 PM
عفواً لايمكن عرض الروابط في الإرشيف
neno2052
2019-11-25, 10:16 PM
حضرتك دا شغال وبيبدل ولا لا ؟
محمد ياسر
2019-11-25, 10:17 PM
اعمل حفظ لسورس وجرب الشرح منفعش رجع القديم
neno2052
2019-11-26, 01:33 AM
اعمل حفظ لسورس وجرب الشرح منفعش رجع القديم
زيو زي القديم مش بيبدل بردو هوا هوا نفس المشكله
يعني مفيش حل ؟
vBulletin® v3.8.8 Beta 1, Copyright ©2000-2024, TranZ by code