Albetros source easy reborn

09/09/2012 23:23 somecode#1
i'm not sure it's allright ...debug yourself
PHP Code:
/// <summary>
        /// 转世
        /// </summary>
        /// <param name="jobid">职业</param>
        
public void RebornTo(byte jobid)
        {
            if (
this.Reborn 1)
                return;
            if (
this.Reborn == 0)
            {
                
byte OldPro this.Profession;
                
byte OldLevel Level;
                
byte newLevel 15;
                
string AtrStr "";
                
string[] tmp;
                
#region 重置属性点
                
switch (jobid)
                {
                    case 
11:
                        
//勇士
                        
AtrStr Albetros.Game.Calculations.Experience.TrojanStats[newLevel];
                        
tmp AtrStr.Split(',');
                        for (
int i 0tmp.Length;i++ )
                        {
                            
StatPoint += Convert.ToUInt16(tmp[i]);
                        }
                        break;
                    case 
21:
                        
//战士
                        
AtrStr Albetros.Game.Calculations.Experience.WarriorStats[newLevel];
                        
tmp AtrStr.Split(',');
                        for (
int i 0tmp.Length;i++ )
                        {
                            
StatPoint += Convert.ToUInt16(tmp[i]);
                        }
                        break;
                    case 
41:
                        
//弓手
                        
AtrStr Albetros.Game.Calculations.Experience.ArcherStats[newLevel];
                        
tmp AtrStr.Split(',');
                        for (
int i 0tmp.Lengthi++)
                        {
                            
StatPoint += Convert.ToUInt16(tmp[i]);
                        }
                        break;
                    case 
51:
                        
//忍者
                        
AtrStr Albetros.Game.Calculations.Experience.NinjaStats[newLevel];
                        
tmp AtrStr.Split(',');
                        for (
int i 0tmp.Lengthi++)
                        {
                            
StatPoint += Convert.ToUInt16(tmp[i]);
                        }
                        break;
                    case 
61:
                        
//武僧
                        
AtrStr Albetros.Game.Calculations.Experience.MonkStats[newLevel];
                        
tmp AtrStr.Split(',');
                        for (
int i 0tmp.Lengthi++)
                        {
                            
StatPoint += Convert.ToUInt16(tmp[i]);
                        }
                        break;
                    case 
131:
                    case 
141:
                        
//道士
                        
AtrStr Albetros.Game.Calculations.Experience.TaoistStats[newLevel];
                        
tmp AtrStr.Split(',');
                        for (
int i 0tmp.Lengthi++)
                        {
                            
StatPoint += Convert.ToUInt16(tmp[i]);
                        }
                        break;
                }

                
//超过130转世每级加3点
                
if (OldLevel >= 130)
                {
                    for (
int i 0OldLevel 129i++)
                    {
                        
StatPoint += 3;
                    }
                }
                
#endregion

                
this.Reborn 1;
                
this.Level newLevel;
                
this.Profession jobid;

                
#region 技能重置
                
ushort[] tmpSkills null;
                
OldPro /= 10;
                
jobid /= 10;
                switch (
OldPro)
                {
                    case 
1// 勇士
                        
switch (jobid)
                        {
                            case 
5:
                            case 
4tmpSkills = new ushort[] { 11101190 }; break;
                            case 
14tmpSkills = new ushort[] { 111011901270 }; break;
                            case 
1tmpSkills = new ushort[] { 3050 }; break;
                            case 
2tmpSkills = new ushort[] { 111011905100 }; break;
                        }
                        break;
                    case 
2// 战士
                        
switch (jobid)
                        {
                            case 
4:
                            case 
14tmpSkills = new ushort[] { 10201040 }; break;
                            case 
5:
                            case 
1tmpSkills = new ushort[] { 104010151320 }; break;
                            case 
2tmpSkills = new ushort[] { 3060 }; break;
                            case 
13tmpSkills = new ushort[] { 102010401025 }; break;
                        }
                        break;
                    case 
4// 弓手
                        
switch (jobid)
                        {
                            case 
4tmpSkills = new ushort[] { 5000 }; break;
                        }
                        break;
                    case 
5// 忍者
                        
switch (jobid)
                        {
                            case 
5tmpSkills = new ushort[] { 600060016002600360106011 }; break;
                            default: 
tmpSkills = new ushort[] { 6001 }; break;
                        }
                        break;
                    case 
13// 水道
                        
switch (jobid)
                        {
                            case 
13tmpSkills = new ushort[] { 3090 }; break;
                            case 
2:
                            case 
5:
                            case 
1tmpSkills = new ushort[] { 10051090109511951085 }; break;
                            case 
14tmpSkills = new ushort[] { 1050117510751055 }; break;
                        }
                        break;
                    case 
14// 火道
                        
switch (jobid)
                        {
                            case 
14tmpSkills = new ushort[] { 3080 }; break;
                            case 
13tmpSkills = new ushort[] { 1120 }; break;
                            case 
1:
                            case 
2:
                            case 
5:
                            case 
4tmpSkills = new ushort[] { 1000100110051195 }; break;
                        }
                        break;
                }

                
this.Skills.Clear();
                foreach (
ushort skillId in tmpSkills)
                {
                    if (!
this.Skills.ContainsKey(skillId))
                        
AddSkill(skillId00);
                }
                
#endregion

                
Albetros.Game.Handler.LowerAllItems(this);
            }
        }