حل مشكله لمــــاتنزل ريرون تلاقـــي الايتم الفل بتاعو زي ما هوا- حل مشكله لبس المونك

الموضوع في 'منتدى شروحات كونكر اونلاين Conquer Online' بواسطة hamocool, بتاريخ ‏17 نوفمبر 2015.

  1. hamocool

    hamocool Member

    بسم الله الرحمان الرحيم

    هتخش علي GameState.cs

    وي دور علي
    كود PHP:
                              public bool Reborn(byte toClass)  
    وي بدلو بي ده
    كود PHP:
                             public bool Reborn(byte toClass
            { 
                
    #region Items 
                
    if (Inventory.Count 37) return false
                switch (
    toClass
                { 
                    case 
    11
                    case 
    21
                    case 
    51
                    case 
    61
                    case 
    71
                        { 
                            
    Inventory.Add(410077Game.Enums.ItemEffect.Poison); 
                            break; 
                        } 
                    case 
    41
                        { 
                            
    Inventory.Add(500057Game.Enums.ItemEffect.Shield); 
                            break; 
                        } 
                    case 
    132
                    case 
    142
                        { 
                            if (
    toClass == 132
                                
    Inventory.Add(421077Game.Enums.ItemEffect.MP); 
                            else 
                                
    Inventory.Add(421077Game.Enums.ItemEffect.HP); 
                            break; 
                        } 
                } 
                
    #region Low level items 
                
    for (byte i 19i++) 
                { 
                    if (
    != 7
                    { 
                        
    ConquerItem item Equipment.TryGetItem(i); 
                        if (
    item != null && item.ID != 0
                        { 
                            try 
                            { 
                                
    //UnloadItemStats(item, false); 
                                
    Data.....ConquerItemInformation cii = new Conquer_Online_Server.Data.....ConquerItemInformation(item.IDitem.Plus); 
                                
    item.ID cii.LowestID(Network.PacketHandler.ItemMinLevel(Network.PacketHandler.ItemPosition(item.ID))); 
                                
    item.Mode Conquer_Online_Server.Game.Enums.ItemMode.Update
                                
    item.Send(this); 
                                
    LoadItemStats(); 
                                
    Data.....ConquerItemTable.UpdateItemID(itemthis); 
                            } 
                            catch 
                            { 
                                
    Console.......Line("Reborn item problem: " item.ID); 
                            } 
                        } 
                    } 
                } 
                
    ConquerItem hand Equipment.TryGetItem(5); 
                if (
    hand != null
                { 
                    
    Equipment.Remove(5); 
                    
    CalculateStatBonus(); 
                    
    CalculateHPBonus(); 
                } 
                
    hand Equipment.TryGetItem(25); 
                if (
    hand != null
                { 
                    
    Equipment.Remove(25); 
                    
    CalculateStatBonus(); 
                    
    CalculateHPBonus(); 
                } 
                
    LoadItemStats(); 
                
    SendScreen(Entity.SpawnPacketfalse); 
                
    #endregion 
                #endregion 
                
    if (Entity.Reborn == 0
                { 
                    
    Entity.FirstRebornClass Entity.Class; 
                    
    Entity.FirstRebornLevel Entity.Level
                    
    Entity.Atributes 
                        (
    ushort)(ExtraAtributePoints(Entity.FirstRebornClassEntity.FirstRebornLevel) + 52); 
                } 
                else 
                { 
                    
    Entity.SecondRebornClass Entity.Class; 
                    
    Entity.SecondRebornLevel Entity.Level
                    
    Entity.Atributes 
                        (
    ushort)(ExtraAtributePoints(Entity.FirstRebornClassEntity.FirstRebornLevel) + 
                        
    ExtraAtributePoints(Entity.SecondRebornClassEntity.SecondRebornLevel) + 62); 
                } 
                
    byte PreviousClass Entity.Class; 
                
    Entity.Reborn++; 
                
    Entity.Class = toClass
                
    Entity.Level 15
                
    Entity.Experience 0
                
    #region Spells 
                
    Interfaces.ISkill[] spells Spells.Values.ToArray(); 
                foreach (
    Interfaces.ISkill spell in spells
                { 
                    
    spell.PreviousLevel spell.Level
                    
    spell.Level 0
                    
    spell.Experience 0
                    
    #region KungFuKing 
                    
    if (PreviousClass == 85
                    { 
                        if (
    Entity.Class != 81
                        { 
                            switch (
    spell.ID
                            { 
                                case 
    12120
                                case 
    12130
                                case 
    12140
                                case 
    12160
                                case 
    12170
                                case 
    12200
                                case 
    12240
                                case 
    12350
                                case 
    12270
                                case 
    12280
                                case 
    12290
                                case 
    12300
                                case 
    12320
                                case 
    12330
                                case 
    12340
                                    
    RemoveSpell(spell); 
                                    break; 
                            } 
                        } 
                    } 
                    
    #endregion 
                    #region Pirate 
     
                    
    if (PreviousClass == 75
                    { 
                        if (
    Entity.Class != 71
                        { 
                            switch (
    spell.ID
                            { 
                                case 
    11110
                                case 
    11040
                                case 
    11050
                                case 
    11060
                                case 
    11100
                                case 
    11120
                                case 
    11130
                                case 
    11030
                                    
    RemoveSpell(spell); 
                                    break; 
                            } 
                        } 
                    } 
     
                    
    #endregion 
                    #region Monk 
     
                    
    if (PreviousClass == 65
                    { 
                        if (
    Entity.Class != 61
                        { 
                            switch (
    spell.ID
                            { 
                                case 
    10490
                                case 
    10415
                                case 
    10381
                                    
    RemoveSpell(spell); 
                                    break; 
                            } 
                        } 
                    } 
     
                    
    #endregion 
                    #region Warrior 
     
                    
    if (PreviousClass == 25
                    { 
                        if (
    Entity.Class != 21
                        { 
                            switch (
    spell.ID
                            { 
                                case 
    1025
                                    if (
    Entity.Class != 21 && Entity.Class != 132
                                        
    RemoveSpell(spell); 
                                    break; 
                            } 
                        } 
                    } 
     
                    
    #endregion 
                    #region Ninja 
     
                    
    if (toClass != 51
                    { 
                        switch (
    spell.ID
                        { 
                            case 
    6010
                            case 
    6000
                            case 
    6011
                                
    RemoveSpell(spell); 
                                break; 
                        } 
                    } 
     
                    
    #endregion 
                    #region Trojan 
     
                    
    if (toClass != 11
                    { 
                        switch (
    spell.ID
                        { 
                            case 
    1115
                                
    RemoveSpell(spell); 
                                break; 
                        } 
                    } 
     
                    
    #endregion 
                    #region Archer 
     
                    
    if (toClass != 41
                    { 
                        switch (
    spell.ID
                        { 
                            case 
    8001
                            case 
    8000
                            case 
    8003
                            case 
    9000
                            case 
    8002
                            case 
    8030
                                
    RemoveSpell(spell); 
                                break; 
                        } 
                    } 
     
                    
    #endregion 
                    #region WaterTaoist 
     
                    
    if (PreviousClass == 135
                    { 
                        if (
    toClass != 132
                        { 
                            switch (
    spell.ID
                            { 
                                case 
    1000
                                case 
    1001
                                case 
    1010
                                case 
    1125
                                case 
    1100
                                case 
    8030
                                    
    RemoveSpell(spell); 
                                    break; 
                                case 
    1050
                                case 
    1175
                                case 
    1170
                                    if (
    toClass != 142
                                        
    RemoveSpell(spell); 
                                    break; 
                            } 
                        } 
                    } 
     
                    
    #endregion 
                    #region FireTaoist 
     
                    
    if (PreviousClass == 145
                    { 
                        if (
    toClass != 142
                        { 
                            switch (
    spell.ID
                            { 
                                case 
    1000
                                case 
    1001
                                case 
    1150
                                case 
    1180
                                case 
    1120
                                case 
    1002
                                case 
    1160
                                case 
    1165
                                    
    RemoveSpell(spell); 
                                    break; 
                            } 
                        } 
                    } 
     
                    
    #endregion 
                    
    if (Spells.ContainsKey(spell.ID)) 
                        if (
    spell.ID != (ushort)Game.Enums.SkillIDs.Reflect
                            
    spell.Send(this); 
                } 
                
    #endregion 
                #region Proficiencies 
                
    foreach (Interfaces.IProf proficiency in Proficiencies.Values
                { 
                    
    proficiency.PreviousLevel proficiency.Level
                    
    proficiency.Level 0
                    
    proficiency.Experience 0
                    
    proficiency.Send(this); 
                } 
                
    #endregion 
                #region Adding earned skills 
                
    if (Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 9876 }); 
                if (
    toClass == 51 && PreviousClass == 55 && Entity.Reborn == 1
                    
    AddSpell(new Spell(true) { ID 6002 }); 
                if (
    toClass == 81 && PreviousClass == 85 && Entity.Reborn == 1
                    
    AddSpell(new Spell(true) { ID 12280 }); 
                if (
    Entity.FirstRebornClass == 85 && Entity.SecondRebornClass == 85 && Entity.Class == 81 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 12300 }); 
                if (
    Entity.FirstRebornClass == 15 && Entity.SecondRebornClass == 15 && Entity.Class == 11 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 10315 }); 
                if (
    Entity.FirstRebornClass == 25 && Entity.SecondRebornClass == 25 && Entity.Class == 21 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 10311 }); 
                if (
    Entity.FirstRebornClass == 45 && Entity.SecondRebornClass == 45 && Entity.Class == 41 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 10313 }); 
                if (
    Entity.FirstRebornClass == 55 && Entity.SecondRebornClass == 55 && Entity.Class == 51 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 6003 }); 
                if (
    Entity.FirstRebornClass == 65 && Entity.SecondRebornClass == 65 && Entity.Class == 61 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 10405 }); 
                if (
    Entity.FirstRebornClass == 135 && Entity.SecondRebornClass == 135 && Entity.Class == 132 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 30000 }); 
                if (
    Entity.FirstRebornClass == 145 && Entity.SecondRebornClass == 145 && Entity.Class == 142 && 
                    
    Entity.Reborn == 2
                    
    AddSpell(new Spell(true) { ID 10310 }); 
                if (
    Entity.Reborn == 1
                { 
                    if (
    Entity.FirstRebornClass == 75 && Entity.Class == 71
                    { 
                        
    AddSpell(new Spell(true) { ID 3050 }); 
                    } 
                    if (
    Entity.FirstRebornClass == 15 && Entity.Class == 11
                    { 
                        
    AddSpell(new Spell(true) { ID 3050 }); 
                    } 
                    else if (
    Entity.FirstRebornClass == 25 && Entity.Class == 21
                    { 
                        
    AddSpell(new Spell(true) { ID 3060 }); 
                    } 
                    else if (
    Entity.FirstRebornClass == 145 && Entity.Class == 142
                    { 
                        
    AddSpell(new Spell(true) { ID 3080 }); 
                    } 
                    else if (
    Entity.FirstRebornClass == 135 && Entity.Class == 132
                    { 
                        
    AddSpell(new Spell(true) { ID 3090 }); 
                    } 
                } 
                if (
    Entity.Reborn == 2
                { 
                    if (
    Entity.SecondRebornClass == 75 && Entity.Class == 71
                    { 
                        
    AddSpell(new Spell(true) { ID 3050 }); 
                    } 
                    if (
    Entity.SecondRebornClass == 15 && Entity.Class == 11
                    { 
                        
    AddSpell(new Spell(true) { ID 3050 }); 
                    } 
                    else if (
    Entity.SecondRebornClass == 25
                    { 
                        
    AddSpell(new Spell(true) { ID 3060 }); 
                    } 
                    else if (
    Entity.SecondRebornClass == 145 && Entity.Class == 142
                    { 
                        
    AddSpell(new Spell(true) { ID 3080 }); 
                    } 
                    else if (
    Entity.SecondRebornClass == 135 && Entity.Class == 132
                    { 
                        
    AddSpell(new Spell(true) { ID 3090 }); 
                    } 
                } 
     
                
    #endregion 
                
    Data.....DataHolder.GetStats(Entity.Class, Entity.Levelthis); 
                
    CalculateStatBonus(); 
                
    CalculateHPBonus(); 
                
    GemAlgorithm(); 
                
    using (var conn Data.....DataHolder.MySqlConnection
                { 
                    
    conn.Open(); 
                    
    Data.....EntityTable.SaveEntity(thisconn); 
                    
    Data.....SkillTable.SaveSpells(thisconn); 
                    
    Data.....SkillTable.SaveProficiencies(thisconn); 
                    
    Data.....SkillTable.SaveSpells(this); 
                    
    Data.....SkillTable.SaveProficiencies(this); 
                } 
     
                
    Kernel.SendWorldMessage(new Message("" Entity.Name " has got " Entity.Reborn " reborns. Congratulations!"System.Drawing.Color.WhiteMessage.Center), Program.Values); 
                return 
    true;//edit By MrHamo 
            
    }  
    بعد كدا خش علي

    PacketHandler.cs

    وي دور علي
    كود PHP:
                             public static byte ItemMinLevel(ushort postion)  
    وي بدلو بي ده
    كود PHP:
    public static byte ItemMinLevel(ushort postion
            { 
                switch (
    postion
                { 
                    case 
    0: return 0
                    case 
    ConquerItem.Head: return 15
                    case 
    ConquerItem.Necklace: return 7
                    case 
    ConquerItem.Armor: return 15
                    case 
    ConquerItem.LeftWeapon: return 40
                    case 
    ConquerItem.RightWeapon: return 5
                    case 
    ConquerItem.Boots: return 10
                    case 
    ConquerItem.Ring: return 10
                    case 
    ConquerItem.Tower: return 0
                    case 
    ConquerItem.Fan: return 0
                    case 
    ConquerItem.Wing: return 0
                    case 
    ConquerItem.Steed: return 0
                    case 
    ConquerItem.SteedCrop: return 0
                } 
                return 
    0
            }  
    بعد كدا تخش علي
    كود PHP:
                             class ConquerItemInformation  
    تحط ده او تبدلو مكان الي عاندك
    كود PHP:
    public uint LowestID(byte Level
            { 
                if (....
    Information.ID 1000 == 616)// Epic Ninja  
                

                    return (
    uint)(616010 + ....Information.ID 10); 
                } 
                if (....
    Information.ID 1000 == 620)//Divin Backsword  
                

                    return (
    uint)(620003 + ....Information.ID 10); 
                } 
                if (....
    Information.ID 1000 == 619)//Hossu  
                

                    return (
    uint)(619000 + ....Information.ID 10); 
                } 
     
                var 
    grades GradeInformations[this.....Information.Description]; 
     
                if (
    grades == null) return ....Information.ID
                for (
    byte gr 0gr grades.Countgr++) 
                    if (
    grades[gr].Level == Level
                        return (
    uint)((grades[gr 1].ID 10) * 10 + ....Information.ID 10); 
                return (
    uint)((grades[0].ID 10) * 10 + ....Information.ID 10); 
            } 
    public 
    uint CalculateDownlevel() 
            { 
                if (....
    Information.ID 1000 == 616
                { 
                    return (
    uint)(616010 + ....Information.ID 10); 
                } 
                if (....
    Information.ID 1000 == 620
                { 
                    return (
    uint)(620003 + ....Information.ID 10); 
                } 
                if (....
    Information.ID 1000 == 619)//Hossu  
                

                    return (
    uint)(619000 + ....Information.ID 10); 
                } 
     
     
     
                var 
    grades GradeInformations[this.....Information.Description]; 
                if (
    grades == null) return ....Information.ID
                if (
    grades[....Information.GradeKey 1] == null
                    return ....
    Information.ID
                else 
                    return (
    uint)((grades[....Information.GradeKey 1].ID 10) * 10 + ....Information.ID 10); 
            }  
    40ايجى5

    #الاسطورة
    #HamoCoOL
     
  2. C.E.O

    C.E.O Administrator

    رد: حل مشكله لمــــاتنزل ريرون تلاقـــي الايتم الفل بتاعو زي ما هوا- حل مشكله لبس المونك

    عالمى