احصائياتى

الردود
2

المشاهدات
567
 
Hassan Emprator
.:: مشرف قسم المشاكل ::.

    غير متواجد

المشاركات
1,723

+التقييم
0.63

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

الاقامة
شرقيه/زقازيق

نظام التشغيل

رقم العضوية
30
2019-10-04, 09:02 AM
المشاركة 1
2019-10-04, 09:02 AM
المشاركة 1
افتراضي خلي اللعبه اخره +8 في الاسطف
حضرتك هتفح
كلاس PackerHandler.cs

وتبحث عن


كود:
static void ComposePlus(Compose compose, Client.GameState client) 

لما تلاقيه تبدل الفويد كلو بي دا


كود:
 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 < 8 && 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 = MrHassan.Game.Enums.ItemMode.Update;
                        
Item.Send(client);
                        
Database.ConquerItemTable.UpdatePlus(Item);
                        
Database.ConquerItemTable.UpdatePlusProgress(Item);
                        if (
Item.Plus >= 8)
                            
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 MrHassan.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 = MrHassan.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 = MrHassan.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                }
                                foreach (var 
item in Minors)
                                    
client.Inventory.Remove(item, MrHassan.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 MrHassan.Database.ConquerItemInformation(Item.ID, Item.Plus);
                                        
Item.Durability = Item.MaximDurability = info.BaseInformation.Durability;
                                        
Database.ConquerItemTable.UpdateItemID(Item, client);
                                        
Database.ConquerItemTable.UpdateDurabilityItem(Item);
                                        
Item.Mode = MrHassan.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 = MrHassan.Game.Enums.ItemMode.Update;
                                        
Item.Send(client);
                                    }
                                }
                                foreach (var 
item in Minors)
                                    
client.Inventory.Remove(item, MrHassan.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 MrHassan.Database.ConquerItemInformation(Item.ID, Item.Plus);
                    switch (
compose.Mode)
                    {
                        case 
Compose.CurrentSteed:
                        case 
Compose.Plus:
                            {
                                if (
Item.Plus == 8 && Item.GetItemType() == ConquerItem.ItemTypes.WingID || Item.Plus == 8 && pos == ConquerItem.Wing || Item.Plus == 8 && pos == ConquerItem.Steed)//Mr.MrHassan
                                
{
                                    
Item.PlusProgress += Database.DataHolder.StonePlusPoints(ItemPlus.Plus);
                                    
Item.PlusProgress -= Database.DataHolder.ComposePlusPoints(Item.Plus);//Mr.MrHassan
                                    
Item.Mode = MrHassan.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                    
client.Inventory.Remove(ItemPlus, MrHassan.Game.Enums.ItemUse.Remove);
                                }
                                if (
Item.Plus < 8 && 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 != 8)
                                    {
                                        
Item.PlusProgress -= Database.DataHolder.ComposePlusPoints(Item.Plus);
                                        
Item.Plus++;
                                        if (
Item.Plus == 8)
                                            
Item.PlusProgress = 0;
                                    }
                                    
Item.Mode = MrHassan.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlus(Item);
                                    
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                    
client.Inventory.Remove(ItemPlus, MrHassan.Game.Enums.ItemUse.Remove);
                                    if (
Item.Plus >= 8)
                                        
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 < 8)
                                {
                                    
Item.PlusProgress += Database.DataHolder.StonePlusPoints(ItemPlus.Plus);
                                    while (
Item.PlusProgress >= Database.DataHolder.ComposePlusPoints(Item.Plus) && Item.Plus != 8)
                                    {
                                        
Item.PlusProgress -= Database.DataHolder.ComposePlusPoints(Item.Plus);
                                        
Item.Plus++;
                                        if (
Item.Plus == 8)
                                            
Item.PlusProgress = 0;
                                    }
                                    
Item.Mode = MrHassan.Game.Enums.ItemMode.Update;
                                    
Item.Send(client);
                                    
Database.ConquerItemTable.UpdatePlus(Item);
                                    
client.Inventory.Remove(ItemPlus, MrHassan.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 = MrHassan.Game.Enums.ItemMode.Update;
                                
Item.Send(client);
                                
Database.ConquerItemTable.UpdatePlusProgress(Item);
                                
Database.ConquerItemTable.UpdateSocketProgress(Item);
                                
//  Database.ConquerItemTable.UpdateNextSteedColor(Item);
                                
client.Inventory.Remove(ItemPlus, MrHassan.Game.Enums.ItemUse.Remove);
                                break;
                            }

                    }
                }
            }
        } 

طيب عايز اضيف حاجه في اللوتري

هتفتح القاعده بتاعتك عايد جدا

هتلاقي ملف اسمه Lottery هتلاقي
فيه كل جميع الايتمات الي مضافه في اللوتري وحبيت بقا تعمل ايه حاجه
في هتعملها من الملف دا بس
كدا
بالتوفيق


قديم 2019-10-04, 09:02 AM
المشاركة 2
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: خلي اللعبه اخره +8 في الاسطف
عاش

قديم 2021-01-27, 08:29 PM
المشاركة 3
anan1305
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: خلي اللعبه اخره +8 في الاسطف
thx


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



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

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

المواضيع المتشابهه للموضوع: خلي اللعبه اخره +8 في الاسطف
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ان بي سي اسطف بالصول انا عاوز اخليه يدي الاصطف بدون صول megokarika مشكلات السيرفيرات كونكر الشخصيه 4 2020-02-20 12:40 AM
حل مشكلة اختفاء الاصطف او الايرور الي بيجي بسبب الصطف سورس رايزو و متركس محمودمحمدسالم تطوير سيرفرات كونكر 5 2020-02-14 11:02 PM
كيفيت تغير اسم اللعبه ElSaher تطوير سيرفرات كونكر 1 2020-02-04 04:04 AM
شرح حل مشكلة الاسطف الاضافى اللى بتزود اتاك وحجات تانيه zezonever تطوير سيرفرات كونكر 1 2019-11-08 02:41 AM
حل مشكلة الاسطف الاضافى اللى بتزود اتاك وحجات تانيه ! ElSaher تطوير سيرفرات كونكر 13 2019-08-05 01:57 PM


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