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

Discussion in 'منتدى شروحات كونكر اونلاين Conquer Online' started by hamocool, Nov 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(410077, Game.Enums.ItemEffect.Poison); 
                            break; 
                        } 
                    case 
    41: 
                        { 
                            
    Inventory.Add(500057, Game.Enums.ItemEffect.Shield); 
                            break; 
                        } 
                    case 
    132: 
                    case 
    142: 
                        { 
                            if (
    toClass == 132) 
                                
    Inventory.Add(421077, Game.Enums.ItemEffect.MP); 
                            else 
                                
    Inventory.Add(421077, Game.Enums.ItemEffect.HP); 
                            break; 
                        } 
                } 
                
    #region Low level items 
                
    for (byte i = 1; i < 9; i++) 
                { 
                    if (
    i != 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.ID, item.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(item, this); 
                            } 
                            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.SpawnPacket, false); 
                
    #endregion 
                #endregion 
                
    if (Entity.Reborn == 0) 
                { 
                    
    Entity.FirstRebornClass = Entity.Class; 
                    
    Entity.FirstRebornLevel = Entity.Level; 
                    
    Entity.Atributes = 
                        (
    ushort)(ExtraAtributePoints(Entity.FirstRebornClass, Entity.FirstRebornLevel) + 52); 
                } 
                else 
                { 
                    
    Entity.SecondRebornClass = Entity.Class; 
                    
    Entity.SecondRebornLevel = Entity.Level; 
                    
    Entity.Atributes = 
                        (
    ushort)(ExtraAtributePoints(Entity.FirstRebornClass, Entity.FirstRebornLevel) + 
                        
    ExtraAtributePoints(Entity.SecondRebornClass, Entity.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.Level, this); 
                
    CalculateStatBonus(); 
                
    CalculateHPBonus(); 
                
    GemAlgorithm(); 
                
    using (var conn = Data.....DataHolder.MySqlConnection) 
                { 
                    
    conn.Open(); 
                    
    Data.....EntityTable.SaveEntity(this, conn); 
                    
    Data.....SkillTable.SaveSpells(this, conn); 
                    
    Data.....SkillTable.SaveProficiencies(this, conn); 
                    
    Data.....SkillTable.SaveSpells(this); 
                    
    Data.....SkillTable.SaveProficiencies(this); 
                } 
     
                
    Kernel.SendWorldMessage(new Message("" + Entity.Name + " has got " + Entity.Reborn + " reborns. Congratulations!", System.Drawing.Color.White, Message.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 = 0; gr < grades.Count; gr++) 
                    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 مدير

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

    عالمى