كونكر عرب

كونكر عرب (https://conquer-arab.com/index.php)
-   تطوير سيرفرات كونكر (https://conquer-arab.com/forumdisplay.php?f=11)
-   -   اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس (https://conquer-arab.com/showthread.php?t=757)

Rider 2019-07-12 12:26 AM

اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس
 
اول حاجه افتح Packethandler.cs

و اعمل سيرش علي
كود PHP:

static void ComposePlus 

بعدها اقفله من علامة الناقص جنبه و امسحه و حط ده مكانه
كود PHP:

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) || (compose.Mode == Compose.QuickCompose))
            {
                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 || compose.Mode == Compose.QuickCompose)
                {
                    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 = KhaledMohamed.Game.Enums.ItemMode.Update;
                        
Item.Send(client);
                        
Database.ConquerItemTable.UpdatePlus(Item);
                        
Database.ConquerItemTable.UpdatePlusProgress(Item);
                        if (
Item.Plus >= 9)
                            
Kernel.SendWorldMessage(new Message("Congratulations, " + client.Entity.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 KhaledMohamed.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 = KhaledMohamed.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
client.Send(new ItemUsage(true)
                                    {
                                        
UID = client.Entity.UID,
                                        
dwParam = 1,
                                        
ID = ItemUsage.DragonBallUpgrade
                                    
});
                                }
                                else
                                {
                                    
Item.Durability = (ushort)(Item.Durability / 2);
                                    
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                    
Item.Mode = KhaledMohamed.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                }
                                foreach (var 
item in Minors)
                                    
client.Inventory.Remove(item, KhaledMohamed.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 KhaledMohamed.Database.ConquerItemInformation(Item.ID, Item.Plus);
                                        
Item.Durability = Item.MaximDurability = info.BaseInformation.Durability;
                                        
Database.ConquerItemTable.UpdateItemID(Item, client);
                                        
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                        
Item.Mode = KhaledMohamed.Game.Enums.ItemMode.Update;
                                        
Item.Send(client);

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

                                    }
                                    else
                                    {
                                        
Item.Durability = (ushort)(Item.Durability / 2);
                                        
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                        
Item.Mode = KhaledMohamed.Game.Enums.ItemMode.Update;
                                        
Item.Send(client);
                                    }
                                }
                                foreach (var 
item in Minors)
                                    
client.Inventory.Remove(item, KhaledMohamed.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 KhaledMohamed.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.khled
                                
{
                                    
Item.PlusProgress += Database.DataHolder.StonePlusPoints(ItemPlus.Plus);
                                    
Item.PlusProgress -= Database.DataHolder.ComposePlusPoints(Item.Plus);//Mr.khled
                                    
Item.Mode = KhaledMohamed.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                    
client.Inventory.Remove(ItemPlus, KhaledMohamed.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 = KhaledMohamed.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlus(Item);
                                    
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                    
client.Inventory.Remove(ItemPlus, KhaledMohamed.Game.Enums.ItemUse.Remove);
                                    if (
Item.Plus >= 9)
                                        
Kernel.SendWorldMessage(new Message("Congratulations, " + client.Entity.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;
                            }
                        case 
Compose.NewSteed:
                            {
                                if (
Item.Plus < 12)
                                {
                                    
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 = KhaledMohamed.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlus(Item);
                                    
client.Inventory.Remove(ItemPlus, KhaledMohamed.Game.Enums.ItemUse.Remove);
                                }

                                
int color1 = (int)Item.SocketProgress;
                                
int color2 = (int)ItemPlus.SocketProgress;

                                
int G1 = color1 & 0xFF;
                                
int G2 = color2 & 0xFF;
                                
int B1 = (color1 >> 8) & 0xFF;
                                
int B2 = (color2 >> 8) & 0xFF;
                                
int R1 = (color1 >> 16) & 0xFF;
                                
int R2 = (color2 >> 16) & 0xFF;
                                
Item.NextGreen = (byte)((int)Math.Floor(0.9 * G1) + (int)Math.Floor(0.1 * G2) + 1);
                                
Item.NextBlue = (byte)((int)Math.Floor(0.9 * B1) + (int)Math.Floor(0.1 * B2) + 1);
                                
Item.NextRed = (byte)((int)Math.Floor(0.9 * R1) + (int)Math.Floor(0.1 * R2) + 1);
                                
Item.SocketProgress = (uint)(Item.NextGreen | (Item.NextBlue << 8) | (Item.NextRed << 16));

                                
Item.Mode = KhaledMohamed.Game.Enums.ItemMode.Update;
                                
Item.Send(client);
                                
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                
Database.ConquerItemTable.UpdateSocketProgress(Item);
                                
//  Database.ConquerItemTable.UpdateNextSteedColor(Item);
                                
client.Inventory.Remove(ItemPlus, KhaledMohamed.Game.Enums.ItemUse.Remove);
                                break;
                            }

                    }
                }
            }
        } 


MohamedModyAdel 2019-07-12 01:21 AM

رد: اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس
 
تسلم بجد

Hazem 2019-07-12 08:08 AM

رد: اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس
 
والله انت برنس

Mr~Rayzo 2019-07-12 10:24 AM

رد: اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس
 
ايوه ب4ى اخيرا حد هيشتغل معانا

Rider 2019-07-12 01:05 PM

رد: اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس
 
حبايبي <3

mohamedabdo 2020-08-03 07:56 PM

رد: اذاي تخلي الحصان و الجناح يزيد بروجريس بعد +12 عشان يبقي في تنافس
 
تسلم ايدك


الساعة الآن 05:34 AM

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