كونكر عرب

كونكر عرب (https://conquer-arab.com/index.php)
-   تطوير سيرفرات كونكر (https://conquer-arab.com/forumdisplay.php?f=11)
-   -   حـل Stack Size بتــأع الايتــم !!! (https://conquer-arab.com/showthread.php?t=1236)

Avalanche 2019-07-31 10:24 AM

حـل Stack Size بتــأع الايتــم !!!
 
بسـم الله الرحمان الرحيـم

نبـداء ع البـركةة يشبــأأب !!

تــأابــع الكــلأأمم للاخر !!

حـل Stack Size بتـاع الايـتم, بـيتـعـمل علـيه هـاكـ والايـتم بيشيل 100 الـف ايـتم فوق بعض واكتر !

اتاكدو من Inventory انو مش محدد stackSize للايتم وهو بيعملو create علشان ميحصلش ..

مشــأاكــل !! ..

اتفضــلـوو

هندخل علي Inventory.cs
هنبحث عن
كود PHP:

case ItemUsage.SplitStack 

و نبدله ب ده
كود PHP:

                                                    case ItemUsage.SplitStack:
                        {
                            
ConquerItem MyItem = null;
                            
ConquerItem NewStack = new ConquerItem(true);
 
                            if (
client.Inventory.TryGetItem(usage.UID, out MyItem))
                            {
                                
Database.ConquerItemInformation infos = new ConquerOnline.Database.ConquerItemInformation(MyItem.ID, 0);
                                if (
MyItem.StackSize > 1 && MyItem.StackSize <= infos.BaseInformation.StackSize)
                                {
                                    if (
client.Inventory.Count < 40)
                                    {
                                        
ushort Amount = (ushort)usage.dwParam;
                                        if (
MyItem.StackSize > Amount)
                                        {
                                            
MyItem.StackSize -= Amount;
                                            
MyItem.Mode = Game.Enums.ItemMode.Update;
                                            
MyItem.Send(client);
                                            
MyItem.Mode = Game.Enums.ItemMode.Default;
                                            
MyItem.MaxStackSize = infos.BaseInformation.StackSize;
 
                                            
NewStack.ID = MyItem.ID;
                                            
NewStack.StackSize += Amount;
                                            
NewStack.Durability = MyItem.Durability;
                                            
NewStack.MaxStackSize = infos.BaseInformation.StackSize;
 
                                            
client.Inventory.Add(NewStack, Game.Enums.ItemUse.CreateAndAdd);
                                            
Database.ConquerItemTable.UpdateStack(MyItem);
                                        }
                                    }
                                }
                            }
                            break;
                        } 

و بعدين نبحث عن
كود PHP:

 case ItemUsage.MergeStackableItems: 

و نبدله ب ده
كود PHP:

                    case ItemUsage.MergeStackableItems:
                        {
                            
ConquerItem MyItem = null;
                            
ConquerItem MergeStack = new ConquerItem(true);
                            
Database.ConquerItemInformation infos = null;
                            if (
client.Inventory.TryGetItem(usage.UID, out MyItem) && client.Inventory.TryGetItem((uint)usage.dwParam, out MergeStack))
                            {
                                if (
MyItem.ID == MergeStack.ID)
                                {
                                    
infos = new ConquerOnline.Database.ConquerItemInformation(MyItem.ID, 0);
                                    if (
MyItem.StackSize < 1)
                                        
MyItem.StackSize = 1;
                                    if (
MergeStack.StackSize < 1)
                                        
MergeStack.StackSize = 1;
 
                                    if ((
MyItem.StackSize + MergeStack.StackSize) <= infos.BaseInformation.StackSize)
                                    {
                                        
MyItem.StackSize += MergeStack.StackSize;
                                        
MyItem.Mode = Game.Enums.ItemMode.Update;
                                        
MyItem.Send(client);
                                        
MyItem.Mode = Game.Enums.ItemMode.Default;
                                        
Database.ConquerItemTable.UpdateStack(MyItem);
 
                                        
client.Inventory.Remove(MergeStack, Game.Enums.ItemUse.Remove);
                                    }
                                }
                            }
                            break;
                        } 

صــوورة !!
عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع

#ســلأأمــووز

Avalanche 2019-07-31 10:33 AM

رد: حـل Stack Size بتــأع الايتــم !!!
 
Done

Hazem 2019-07-31 10:50 AM

رد: حـل Stack Size بتــأع الايتــم !!!
 
عاش


الساعة الآن 11:11 PM

مرحبا بكم في منتدي اكواد لتطوير الالعاب
new notificatio by 9adq_ala7sas