Add this to Character.cs anywhere in Character.cs
You can change the PreviousClass to PrevJob and
Class to Job coz I made this source, is it's kinda different.
Code:
public void ThirdReborn(byte ToClass)
{
try
{
{
if (Level == 121)
StatP += 10;
else if (Level == 122)
StatP += 20;
else if (Level == 123)
StatP += 30;
else if (Level == 124)
StatP += 40;
else if (Level == 125)
StatP += 50;
else if (Level == 126)
StatP += 60;
else if (Level == 127)
StatP += 70;
else if (Level == 128)
StatP += 85;
else if (Level == 129)
StatP += 90;
else if (Level == 130)
StatP += 100;
else if (Level >= 131)
StatP += 105;
MyClient.SendPacket(General.MyPackets.Vital(UID, 11, StatP));
if (PreviousClass == 15)
{
if (Class < 46 && Class > 40)
{
if (ToClass == 41)
{
//Put here the Skill you want to Learn After 3rd Rb Same in All Bracket. <3 or just Blank
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
PreviousClass = 45;
}
if (Class < 146 && Class > 141)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 145;
}
if (Class < 16 && Class > 10)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
if (ToClass == 11)
{
}
PreviousClass = 15;
}
if (Class < 26 && Class > 20)
{
if (ToClass == 41)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
if (ToClass == 11)
{
}
if (ToClass == 21)
{
}
PreviousClass = 25;
}
if (Class < 136 && Class > 131)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 135;
}
}
else if (PreviousClass == 25)
{
if (Class < 46 && Class > 40)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
PreviousClass = 45;
}
if (Class < 146 && Class > 141)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 145;
}
if (Class < 16 && Class > 10)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
if (ToClass == 11)
{
}
PreviousClass = 15;
}
if (Class < 26 && Class > 20)
{
if (ToClass == 41)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
if (ToClass == 11)
{
}
if (ToClass == 21)
{
}
PreviousClass = 25;
}
if (Class < 136 && Class > 131)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 135;
}
}
else if (PreviousClass == 145)
{
if (Class < 46 && Class > 40)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
PreviousClass = 45;
}
if (Class < 146 && Class > 141)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 145;
}
if (Class < 16 && Class > 10)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
if (ToClass == 11)
{
}
PreviousClass = 15;
}
if (Class < 26 && Class > 20)
{
if (ToClass == 41)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
if (ToClass == 11)
{
}
if (ToClass == 21)
{
}
PreviousClass = 25;
}
if (Class < 136 && Class > 131)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 135;
}
}
else if (PreviousClass == 135)
{
if (Class < 46 && Class > 40)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
PreviousClass = 45;
}
if (Class < 146 && Class > 141)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 145;
}
if (Class < 16 && Class > 10)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
if (ToClass == 11)
{
}
PreviousClass = 15;
}
if (Class < 26 && Class > 20)
{
if (ToClass == 41)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
if (ToClass == 11)
{
}
if (ToClass == 21)
{
}
PreviousClass = 25;
}
if (Class < 136 && Class > 131)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 135;
}
}
else if (PreviousClass == 45)
{
if (Class < 46 && Class > 40)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
PreviousClass = 45;
}
if (Class < 146 && Class > 141)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 145;
}
if (Class < 16 && Class > 10)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
if (ToClass == 11)
{
}
PreviousClass = 15;
}
if (Class < 26 && Class > 20)
{
if (ToClass == 41)
{
}
if (ToClass == 132)
{
}
if (ToClass == 132)
{
}
if (ToClass == 11)
{
}
if (ToClass == 21)
{
}
PreviousClass = 25;
}
if (Class < 136 && Class > 131)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
LearnSkill(3090, 0);
}
if (ToClass == 142)
{
}
PreviousClass = 135;
}
}
else
{
if (Class < 46 && Class > 40)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
PreviousClass = 45;
}
if (Class < 146 && Class > 141)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 145;
}
if (Class < 16 && Class > 10)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 132 || ToClass == 142)
{
}
if (ToClass == 11)
{
}
PreviousClass = 15;
}
if (Class < 26 && Class > 20)
{
if (ToClass == 41)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
if (ToClass == 11)
{
}
if (ToClass == 21)
{
}
PreviousClass = 25;
}
if (Class < 136 && Class > 131)
{
if (ToClass == 41)
{
}
if (ToClass == 21)
{
}
if (ToClass == 11)
{
}
if (ToClass == 132)
{
}
if (ToClass == 142)
{
}
PreviousClass = 135;
}
}
Class = ToClass;
RebornCount++;
Level = 40; //Char Back to 40 after 3rd Rb
Exp = 0; //EXP back to 0
Skills.Clear(); //All skill will be cleared
Skill_Exps.Clear(); //Ofcourse, if no Skill? no Exp Skill Lol...heheh
LearnSkill(9876, 0); //3rd Rb also had bless skill
LearnSkill(1110, 0); //XP Cyclone
LearnSkill(1025, 0); //XP SuperMan
LearnSkill(1002, 3); //Tornado Fixed Already, Thats why i love 3rd RB heheh
LearnSkill(1095, 4); //Stigma Fixed
LearnSkill(7020, 9); //Phoenix Fixed
LearnSkill(5030, 9); //Rage Fixed
LearnSkill(1045, 4); //Fast Blade Fixed
LearnSkill(1046, 4); //ScentSword Fixed
LearnSkill(5130, 1); //Icycle Level 1, I Dunno if your LOFT had this Skill, but mine is Yes...
LearnSkill(5131, 1); //Ice Circle Level 1, Actually the Max Level is 3 but i put this to Level.
LearnSkill(5132, 1); //Avalance Level 1, Actually the Max Level is 3 but i put this to Level.
DataBase.GetStats(this);
GetEquipStats(1, true);
GetEquipStats(2, true);
GetEquipStats(3, true);
GetEquipStats(4, true);
GetEquipStats(5, true);
GetEquipStats(6, true);
GetEquipStats(7, true);
GetEquipStats(8, true);
MinAtk = Str;
MaxAtk = Str;
MaxHP = BaseMaxHP();
MaxMP = MaxMana();
Potency = Level;
GetEquipStats(1, false);
GetEquipStats(2, false);
GetEquipStats(3, false);
GetEquipStats(4, false);
GetEquipStats(5, false);
GetEquipStats(6, false);
GetEquipStats(7, false);
GetEquipStats(8, false);
CurHP = MaxHP;
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 7, Class));
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 16, Str));
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 17, Agi));
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 15, Vit));
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 14, Spi));
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 2, MaxMana()));
MyClient.SendPacket(General.MyPackets.GeneralData((long)UID, 0, 0, 0, 92));
MyClient.SendPacket(General.MyPackets.Vital((long)UID, 0, CurHP));
}
for (byte i = 1; i < 9; i++)
{
if (Equips[i] == null || Equips[i] == "") continue;
string I = Equips[i];
string[] II = I.Split('-');
uint IID = uint.Parse(II[0]);
byte Quality = (byte)Other.ItemQuality(IID);
if (i == 1)
{
string NewID = "";
if (Other.WeaponType(IID) == 111 || Other.WeaponType(IID) == 113 || Other.WeaponType(IID) == 114 || Other.WeaponType(IID) == 118 || Other.WeaponType(IID) == 117)
{
NewID = II[0].Remove(4, 2);
NewID = NewID + "0" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
else if (Other.WeaponType(IID) == 112)
{
byte Type = byte.Parse(II[0][4].ToString());
byte Color = byte.Parse(II[0][3].ToString());
NewID = "11" + Type.ToString() + Color.ToString() + "0" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
}
else if (i == 2)
{
string NewID = "";
NewID = II[0].Remove(3, 3);
NewID += "00" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
else if (i == 3)
{
string NewID = "";
if (Other.WeaponType(IID) == 130 || Other.WeaponType(IID) == 131 || Other.WeaponType(IID) == 133 || Other.WeaponType(IID) == 134)
{
NewID = II[0].Remove(4, 2);
NewID = NewID + "0" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
else if (Other.WeaponType(IID) == 135 || Other.WeaponType(IID) == 136 || Other.WeaponType(IID) == 138 || Other.WeaponType(IID) == 139)
{
byte Type = byte.Parse(II[0][2].ToString());
byte Color = byte.Parse(II[0][3].ToString());
Type -= 5;
NewID = "13" + Type.ToString() + Color.ToString() + "0" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
}
else if (i == 4)
{
string NewID = "";
NewID = II[0].Remove(3, 3);
NewID += "02" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
else if (i == 5)
{
string NewID = "";
if (Other.WeaponType(IID) == 900)
{
NewID = II[0].Remove(4, 2);
NewID += "0" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
else if (Other.ItemType(IID) == 4 || Other.ItemType(IID) == 5)
{
NewID = II[0].Remove(3, 3);
NewID += "02" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
}
else if (i == 6)
{
string NewID = "";
NewID = II[0].Remove(3, 3);
NewID += "01" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
else if (i == 8)
{
string NewID = "";
NewID = II[0].Remove(3, 3);
NewID += "01" + Quality.ToString();
Equips[i] = NewID + "-" + II[1] + "-" + II[2] + "-" + II[3] + "-" + II[4] + "-" + II[5];
II[0] = NewID;
MyClient.SendPacket(General.MyPackets.AddItem(Equips_UIDs[i], int.Parse(II[0]), byte.Parse(II[1]), byte.Parse(II[2]), byte.Parse(II[3]), byte.Parse(II[4]), byte.Parse(II[5]), i, 70, 70));
}
}
MyClient.SendPacket(General.MyPackets.Vital(UID, 13, Level));
MyClient.SendPacket(General.MyPackets.String(UID, 10, "hitstar")); //Effect after Third Rb
World.SendMsgToAll("Congratulation to " + Name + " to become 3rd reborn.", "SYSTEM", 2011);
World.UpdateSpawn(this);
GetEquipStats(1, true);
GetEquipStats(2, true);
GetEquipStats(3, true);
GetEquipStats(4, true);
GetEquipStats(5, true);
GetEquipStats(6, true);
GetEquipStats(7, true);
GetEquipStats(8, true);
MinAtk = Str;
MaxAtk = Str;
MaxHP = BaseMaxHP();
MaxMP = MaxMana();
Potency = Level;
GetEquipStats(1, false);
GetEquipStats(2, false);
GetEquipStats(3, false);
GetEquipStats(4, false);
GetEquipStats(5, false);
GetEquipStats(6, false);
GetEquipStats(7, false);
GetEquipStats(8, false);
CurHP = MaxHP;
}
catch (Exception Exc) { Console.WriteLine(Exc); }
}
Put this to your NPCTalk, Nah Kinda Diffecult cuz mine is in my NPCSystem.cs If you're True Coder then you can do this Okay?
Code:
#region 3rd RB
if (ID == 37)//Guys, Just Figure it out how to put this to your source OK? SOrry coz mine is Different.
{
if (To == 0)
{
if (Cl.Me.RebornCount == 2)
{
if (Cl.Me.Level >= 120)
{
S("Hello, did you hear about third reborn? Well i guess not. I have here");
S(" but I neeed some Pearls and Stone. I need Black, White and Gold Pearl and one Black Stone.");
S(" Then i can make you third reborn. Deal?");
L("Sure wow.", 1);
L("Yikes. dont have 'em", 255);
Face(178);
Done();
}
else
{
S("You must be level 120+.");
L("I see.", 255);
Face(178);
Done();
}
}
else
{
S("Only 2nd reborn can be 3rd reborn.");
L("I see.", 255);
Face(178);
Done();
}
}
if (To == 1)
{
S("Do you have the requirements?");
L("Yeah", 3);
L("Not yet.", 255);
Face(178);
Done();
}
#region Control 3
if (To == 3)
{
if (Cl.Me.InventoryContains(1088160, 1))
{
if (Cl.Me.InventoryContains(1088140, 1))
{
if (Cl.Me.InventoryContains(1088150, 1))
{
if (Cl.Me.InventoryContains(1088130, 1))
{
S("Okay, Choice your job.");
L("This is it", 4);
L("Not yet.", 255);
Face(178);
Done();
}
else
{
S("You don't have Black Pearl");
L("Damn.", 255);
Face(178);
Done();
}
}
else
{
S("You don't have Gold Pearl");
L("Damn.", 255);
Face(178);
Done();
}
}
else
{
S("You don't have White Pearl");
L("Damn.", 255);
Face(178);
Done();
}
}
else
{
S("You don't have Black Stone");
L("Damn", 255);
Face(178);
Done();
}
}
#endregion
#region Control 4
if (To == 4)
{
if (Cl.Me.InventoryContains(1088160, 1))
if (Cl.Me.InventoryContains(1088130, 1))
if (Cl.Me.InventoryContains(1088140, 1))
if (Cl.Me.InventoryContains(1088150, 1))
{
Cl.Me.RemoveItem(Cl.Me.ItemNext(1088160));
Cl.Me.RemoveItem(Cl.Me.ItemNext(1088130));
Cl.Me.RemoveItem(Cl.Me.ItemNext(1088140));
Cl.Me.RemoveItem(Cl.Me.ItemNext(1088150));
S("Your Client will be drop after your third reborn anyway, ");
S("what class would you like to 3rd reborn into?");
L("Fighter", 5);
L("Warrior", 6);
L("Hunter", 7);
L("Blue Magician", 8);
L("Red Magician", 9);
L("Merchant", 10);
Face(178);
Done();
}
else
{
S("Hey I hate cheater Okay?");
L("Heheh Sorry", 255);
Face(178);
Done();
}
}
#endregion
#region Control 5 to 10
if (To == 5)
{
Cl.Me.AddItem("601849-12-0-0-0-0", 0, (uint)General.Rand.Next(36457836));//This is Free Item after 3rd RB, Its Super +12 Stone :D
Cl.Me.ThirdReborn(12); // Figther or Trojan
Cl.Me.Save();
Cl.Drop();
}
if (To == 6)
{
Cl.Me.AddItem("601849-12-0-0-0-0", 0, (uint)General.Rand.Next(36457836));//This is Free Item after 3rd RB, Its Super +12 Stone :D
Cl.Me.ThirdReborn(22); // Knight or Warrior
Cl.Me.Save();
Cl.Drop();
}
if (To == 7)
{
Cl.Me.AddItem("601849-12-0-0-0-0", 0, (uint)General.Rand.Next(36457836));//This is Free Item after 3rd RB, Its Super +12 Stone :D
Cl.Me.ThirdReborn(42); // Hunter or Archer
Cl.Me.Save();
Cl.Drop();
}
if (To == 8)
{
Cl.Me.AddItem("601849-12-0-0-0-0", 0, (uint)General.Rand.Next(36457836));//This is Free Item after 3rd RB, Its Super +12 Stone :D
Cl.Me.ThirdReborn(132); // Blue Magician or Water Tao
Cl.Me.Save();
Cl.Drop();
}
if (To == 9)
{
Cl.Me.AddItem("601849-12-0-0-0-0", 0, (uint)General.Rand.Next(36457836));//This is Free Item after 3rd RB, Its Super +12 Stone :D
Cl.Me.ThirdReborn(142); // Red Magician or Fire Tao
Cl.Me.Save();
Cl.Drop();
}
if (To == 10)
{
Cl.Me.AddItem("601849-12-0-0-0-0", 0, (uint)General.Rand.Next(36457836));//This is Free Item after 3rd RB, Its Super +12 Stone :D
Cl.Me.ThirdReborn(32); //Merchant
Cl.Me.Save();
Cl.Drop();
}
#endregion
}
#endregion
Then Add NPC id 37 to your Database, (MySQL)
And now We're in 3rd RB's Effect.
Okay here we go, in Character.cs Search public ulong GetStats()
and inside that section, add this
Code:
if (RebornCount == 3)
IdPacket += 8192;
this
Code:
00000100 zf2-e307 NULL 00000200 attackup40 NULL 00000400 NULL NULL
Code:
00002000 Mass NULL
And i will release the Benifits of 3rd RB
**The Attack
**The Def
**and Many...SOON
Sorry for BAD ENGLISH, I CAN TALK KOREAN IF YOU WANT heheh






