احصائياتى

الردود
1

المشاهدات
285
 
Diga
.:: عضو نشيط ::.

المشاركات
196

+التقييم
0.08

تاريخ التسجيل
Apr 2020

الاقامة

نظام التشغيل

رقم العضوية
3811
2020-07-02, 11:59 AM
المشاركة 1
2020-07-02, 11:59 AM
المشاركة 1
افتراضي حل مشكلة البلص في سورس باندا

كود:
خش ع الباكت هاندلر 
بدل الكود الي عندك بدة 


  
static void ComposePlus(Compose compose, Client.GameState client)
        {
            
ConquerItem Item = null;
            
ConquerItem[] Minors = null;
            if (
client.Inventory.TryGetItem(compose[0], out Item) || (client.Equipment.TryGetItem(compose[0]) != null))
            {
                if (
Item == null && client.Inventory.TryGetItem(compose[0], out Item) == false && (client.Equipment.TryGetItem(compose[0]) != null))
                    
Item = client.Equipment.TryGetItem(compose[0]);

                if (
compose.Mode == Compose.DragonBallUpgrade || compose.Mode == Compose.MeteorUpgrade)
                {
                    
Minors = new ConquerItem[compose.Countx];
                    for (
int i = 0; i < compose.Countx; i++)
                    {
                        if (!
client.Inventory.TryGetItem(compose[i + 2], out Minors[i]))
                            return;
                        else
                            if (
Minors[i].UID == Item.UID)
                                return;
                    }
                }
                else
                {
                    
Minors = new ConquerItem[compose.Count - 1];
                    for (
int i = 0; i < compose.Count - 1; i++)
                    {
                        if (!
client.Inventory.TryGetItem(compose[i + 1], out Minors[i]))
                            return;
                        else
                            if (
Minors[i].UID == Item.UID)
                                return;
                    }
                }
                
ushort pos = ItemPosition(Item.ID);
                if (
pos == ConquerItem.Bottle || pos == ConquerItem.Garment || pos == ConquerItem.LeftWeaponAccessory || pos == ConquerItem.RightWeaponAccessory || pos == ConquerItem.SteedArmor) //mohsen.. i'm remove crop
                    
return;

                if (
compose.Mode == Compose.ChanceUpgrade)
                {
                    if (
Item.Plus < 12 && Item.PlusProgress != 0)
                    {
                        
double percent = (double)Item.PlusProgress / (double)Database.DataHolder.ComposePlusPoints(Item.Plus);
                        if (
Kernel.Rate(percent))
                        {
                            
Item.PlusProgress = 0;
                            
Item.Plus++;
                        }
                        else
                            
Item.PlusProgress = 0;
                        
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                        
Item.Send(client);
                        
Database.ConquerItemTable.UpdatePlus(Item);
                        
Database.ConquerItemTable.UpdatePlusProgress(Item);
                        if (
Item.Plus >= 6)
                            
Kernel.SendWorldMessage(new Message("Congratulations, " + client.Player.Name + " has upgraded His " + Database.ConquerItemInformation.BaseInformations[Item.ID].Name + " to + " + Item.Plus + " and " + Item.PlusProgress + " in Progress!", System.Drawing.Color.Red, Network.GamePackets.Message.TopLeft), Program.Values);
                    }
                    return;
                }
                if (
compose.Mode == Compose.MeteorUpgrade || compose.Mode == Compose.DragonBallUpgrade)
                {
                    
Database.ConquerItemInformation info = new Tayser.Database.ConquerItemInformation(Item.ID, Item.Plus);

                    
Minors = new ConquerItem[compose.Count - 2];
                    for (
int i = 0; i < compose.Count - 2; i++)
                    {
                        if (!
client.Inventory.TryGetItem(compose[i + 2], out Minors[i]))
                            return;
                        else
                            if (
Minors[i].UID == Item.UID)
                                return;
                    }
                    switch (
compose.Mode)
                    {
                        case 
Compose.DragonBallUpgrade:
                            {
                                if (
Item.ID % 10 == (byte)Game.Enums.ItemQuality.Super)
                                    break;
                                if (
Item.Durability < Item.MaximDurability)
                                    break;
                                
// byte chance = (byte)(70 - ((infos.BaseInformation.Level - (infos.BaseInformation.Level > 100 ? 30 : 0)) / (10 - Item.ID % 10)));
                                
byte cost = DragonBallUpgradeCost(Item, info);
                                
double chance = (((double)compose.Countx / (double)cost) * 100);
                                if (
MyMath.Success(chance))
                                {
                                    switch ((
Game.Enums.ItemQuality)(Item.ID % 10))
                                    {
                                        case 
Game.Enums.ItemQuality.Normal:
                                        case 
Game.Enums.ItemQuality.NormalV1:
                                        case 
Game.Enums.ItemQuality.NormalV2:
                                        case 
Game.Enums.ItemQuality.NormalV3: Item.ID = (Item.ID - (Item.ID % 10)) + (byte)Game.Enums.ItemQuality.Refined; break;
                                        default: 
Item.ID++; break;
                                    }
                                    
Database.ConquerItemTable.UpdateItemID(Item, client);
                                    
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
client.Send(new ItemUsage(true)
                                    {
                                        
UID = client.Player.UID,
                                        
dwParam = 1,
                                        
ID = ItemUsage.DragonBallUpgrade
                                    
});
                                }
                                else
                                {
                                    
Item.Durability = (ushort)(Item.Durability / 2);
                                    
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                    
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                }
                                foreach (var 
item in Minors)
                                    
client.Inventory.Remove(item, Tayser.Game.Enums.ItemUse.Remove);
                                if (
compose.Countx > cost)
                                {
                                    var 
diff = compose.Countx - cost;
                                    
client.Inventory.Add((uint)(Minors[0].ID == 720028 ? 1088000 : 1088001), 0, (byte)diff);
                                }
                                break;

                            }
                        case 
Compose.MeteorUpgrade:
                            {
                                if (
info.BaseInformation.Level == ItemMaxLevel(ItemPosition(info.BaseInformation.ID)))
                                    break;
                                if (
Item.Durability < Item.MaximDurability)
                                {
                                    
client.MessageBox("Ro7 sal7ha ya Dog ..", null, null);
                                    break;
                                }
                                
byte cost = MeteorUpgradeCost(Item.ID);
                                if (
ItemPosition(Item.ID) == (ushort)ConquerItem.Armor || ItemPosition(Item.ID) == (ushort)ConquerItem.Head || IsShield(Item.ID))
                                {
                                    if (
info.BaseInformation.Level >= 110)
                                        
cost = 1;
                                }
                                else
                                {
                                    if (
info.BaseInformation.Level >= 115)
                                        
cost = 1;
                                }
                                
double chance = (((double)compose.Countx / (double)cost) * 100);
                                
uint newid = info.CalculateUplevel();
                                if (
newid != 0 && newid != Item.ID)
                                {
                                    if (
MyMath.Success(chance))
                                    {
                                        
Item.ID = newid;
                                        
info = new Tayser.Database.ConquerItemInformation(Item.ID, Item.Plus);
                                        
Item.Durability = Item.MaximDurability = info.BaseInformation.Durability;
                                        
Database.ConquerItemTable.UpdateItemID(Item, client);
                                        
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                        
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                                        
Item.Send(client);

                                        
client.Send(new ItemUsage(true)
                                        {
                                            
UID = client.Player.UID,
                                            
dwParam = 1,
                                            
ID = ItemUsage.MeteorUpgrade
                                        
});

                                    }
                                    else
                                    {
                                        
Item.Durability = (ushort)(Item.Durability / 2);
                                        
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                        
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                                        
Item.Send(client);
                                    }
                                }
                                foreach (var 
item in Minors)
                                    
client.Inventory.Remove(item, Tayser.Game.Enums.ItemUse.Remove);
                                if (
compose.Countx > cost)
                                {
                                    var 
diff = compose.Countx - cost;
                                    
client.Inventory.Add((uint)(Minors[0].ID == 720028 ? 1088000 : 1088001), 0, (byte)diff);
                                }
                                break;
                            }
                    }
                }

                foreach (var 
item in Minors)
                {
                    var 
ItemPlus = item;
                    
Database.ConquerItemInformation infos = new Tayser.Database.ConquerItemInformation(Item.ID, Item.Plus);
                    switch (
compose.Mode)
                    {
                        
//case Compose.CurrentSteed:
                        
case Compose.Plus:
                            {
                                if (
Item.Plus == 12 && Item.GetItemType() == ConquerItem.ItemTypes.WingID || Item.Plus == 12 && pos == ConquerItem.Wing || Item.Plus == 12 && pos == ConquerItem.Steed)//Mr.Tayser
                                
{
                                    
Item.PlusProgress += Database.DataHolder.StonePlusPoints(ItemPlus.Plus);
                                    
Item.PlusProgress -= Database.DataHolder.ComposePlusPoints(Item.Plus);//Mr.Tayser
                                    
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                    
client.Inventory.Remove(ItemPlus, Tayser.Game.Enums.ItemUse.Remove);
                                }
                                if (
Item.Plus < 12 && Item.GetItemType() != ConquerItem.ItemTypes.GarmentID_1 && Item.GetItemType() != ConquerItem.ItemTypes.GarmentID_2 && Item.GetItemType() != ConquerItem.ItemTypes.BottleID && Item.GetItemType() != ConquerItem.ItemTypes.RightAccessory1 && Item.GetItemType() != ConquerItem.ItemTypes.RightAccessory2 && Item.GetItemType() != ConquerItem.ItemTypes.RightAccessory3 && Item.GetItemType() != ConquerItem.ItemTypes.LeftAccessory)
                                {
                                    
Item.PlusProgress += Database.DataHolder.StonePlusPoints(ItemPlus.Plus);
                                    while (
Item.PlusProgress >= Database.DataHolder.ComposePlusPoints(Item.Plus) && Item.Plus != 12)
                                    {
                                        
Item.PlusProgress -= Database.DataHolder.ComposePlusPoints(Item.Plus);
                                        
Item.Plus++;
                                        if (
Item.Plus == 12)
                                            
Item.PlusProgress = 0;
                                    }
                                    
Item.Mode = Tayser.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlus(Item);
                                    
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                    
client.Inventory.Remove(ItemPlus, Tayser.Game.Enums.ItemUse.Remove);
                                    if (
Item.Plus >= 6)
                                        
Kernel.SendWorldMessage(new Message("Congratulations, " + client.Player.Name + " has upgraded His " + Database.ConquerItemInformation.BaseInformations[Item.ID].Name + " to + " + Item.Plus + " and " + Item.PlusProgress + " in Progress!", System.Drawing.Color.Red, Network.GamePackets.Message.TopLeft), Program.Values);
                                }
                                break;
                            }
                    }
                }
            }
        } 



قديم 2020-07-02, 01:51 PM
المشاركة 2
messi55
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: حل مشكلة البلص في سورس باندا
هوا فيه مشاكل تاني سورس ��باندا


العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: حل مشكلة البلص في سورس باندا
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مشكلة بخصوص البلص body2020 مشكلات السيرفيرات كونكر الشخصيه 2 2020-05-05 06:06 AM
مشكلة في سورس مستر باندا ahmeddd مشكلات السيرفيرات كونكر الشخصيه 7 2020-04-17 12:38 PM
ازاي اوقف البلص عند 8 سورس اليكس Peter مشكلات السيرفيرات كونكر الشخصيه 7 2020-03-30 01:58 AM
مشكلة في سورس باندا ToRWadA مشكلات السيرفيرات كونكر الشخصيه 6 2019-07-29 09:40 AM
مشكلة بخصوص البلص فى السرفر osama مشكلات السيرفيرات كونكر الشخصيه 9 2019-06-20 06:32 AM


الساعة الآن 10:39 AM