عرض مشاركة واحدة
قديم 2019-11-25, 10:08 AM
المشاركة 2
GOOGLE
.:: عضو جديد ::.
  • غير متواجد
افتراضي رد: مشكله في شوب exchange
روح 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(incoming4Incoming0Incoming.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.ItemID)) 
                { 
                    
CMsgExchangeItems Item null
                    
CMsgExchangueShopFile.Items.TryGetValue(Data.ItemIDout 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(PriceItemCount)) 
                    { 
                        if (
client.Inventory.Remove(PriceItemCount)) 
                        { 
                            
client.Inventory.Add(Item.ItemID0, (byte)Data.AmountItem.Bound); 
                        } 
                    } 
                } 
            } 
        } 
        public static 
uint[] Read7BitEncodedInt(byte[] buffer
        { 
            List<
uintptr2 = new List<uint>(); 

            for (
int i 0buffer.Length; ) 
            { 
                if (
<= buffer.Length
                { 
                    
int tmp buffer[i++]; 

                    if (
tmp == 0
                        while (
true
                        { 
                            if (
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 ف بكت هندلر
للاسف مش معايه