Re: Job Advancement Code?
It's not working because job hasn't been coded as a reward.
Add the following block of code to NpcDialog.cs under rew.
Code:
if (TheRew[0] == "job")
{
ClickyClient.MyChar.CharClass = Convert.ToByte(TheRew[1]);
byte[] Pack = ThePackets.Vital((long)ClickyClient.MyChar.UID, 4, ClickyClient.MyChar.CharClass);
ClickyClient.SendPacket(Pack);
byte job = Convert.ToByte(TheRew[1]);
short str = 0;
short agi = 0;
short vit = 0;
short spi = 0;
byte readlvl = ClickyClient.MyChar.Level;
if (readlvl > 135)
readlvl = 135;
if (job == 10 || job == 11 || job == 12 || job == 13 || job == 14 || job == 15)
{
str = Convert.ToInt16(DataBase.Stats.ReadValue("Trojan", "Strength[" + Convert.ToString(readlvl) + "]"));
agi = Convert.ToInt16(DataBase.Stats.ReadValue("Trojan", "Agility[" + Convert.ToString(readlvl) + "]"));
vit = Convert.ToInt16(DataBase.Stats.ReadValue("Trojan", "Vitality[" + Convert.ToString(readlvl) + "]"));
spi = Convert.ToInt16(DataBase.Stats.ReadValue("Trojan", "Spirit[" + Convert.ToString(readlvl) + "]"));
}
if (job == 20 || job == 21 || job == 22 || job == 23 || job == 24 || job == 25)
{
str = Convert.ToInt16(DataBase.Stats.ReadValue("Warrior", "Strength[" + Convert.ToString(readlvl) + "]"));
agi = Convert.ToInt16(DataBase.Stats.ReadValue("Warrior", "Agility[" + Convert.ToString(readlvl) + "]"));
vit = Convert.ToInt16(DataBase.Stats.ReadValue("Warrior", "Vitality[" + Convert.ToString(readlvl) + "]"));
spi = Convert.ToInt16(DataBase.Stats.ReadValue("Warrior", "Spirit[" + Convert.ToString(readlvl) + "]"));
}
if (job == 40 || job == 41 || job == 42 || job == 43 || job == 44 || job == 45)
{
str = Convert.ToInt16(DataBase.Stats.ReadValue("Archer", "Strength[" + Convert.ToString(readlvl) + "]"));
agi = Convert.ToInt16(DataBase.Stats.ReadValue("Archer", "Agility[" + Convert.ToString(readlvl) + "]"));
vit = Convert.ToInt16(DataBase.Stats.ReadValue("Archer", "Vitality[" + Convert.ToString(readlvl) + "]"));
spi = Convert.ToInt16(DataBase.Stats.ReadValue("Archer", "Spirit[" + Convert.ToString(readlvl) + "]"));
}
if (job == 100 || job == 101 || job == 132 || job == 133 || job == 134 || job == 135 || job == 142 || job == 143 || job == 144 || job == 145)
{
str = Convert.ToInt16(DataBase.Stats.ReadValue("Taoist", "Strength[" + Convert.ToString(readlvl) + "]"));
agi = Convert.ToInt16(DataBase.Stats.ReadValue("Taoist", "Agility[" + Convert.ToString(readlvl) + "]"));
vit = Convert.ToInt16(DataBase.Stats.ReadValue("Taoist", "Vitality[" + Convert.ToString(readlvl) + "]"));
spi = Convert.ToInt16(DataBase.Stats.ReadValue("Taoist", "Spirit[" + Convert.ToString(readlvl) + "]"));
}
ClickyClient.MyChar.Strength = str;
ClickyClient.MyChar.Agility = agi;
ClickyClient.MyChar.Vitality = vit;
ClickyClient.MyChar.Spirit = spi;
ClickyClient.MyChar.RemoveAtk();
ClickyClient.MyChar.EquipGetStats(1, true);
ClickyClient.MyChar.EquipGetStats(2, true);
ClickyClient.MyChar.EquipGetStats(3, true);
ClickyClient.MyChar.EquipGetStats(4, true);
ClickyClient.MyChar.EquipGetStats(5, true);
ClickyClient.MyChar.EquipGetStats(6, true);
ClickyClient.MyChar.EquipGetStats(8, true);
ClickyClient.MyChar.MaxHP = ClickyClient.MyChar.BaseHP();
ClickyClient.MyChar.MaxMana = ClickyClient.MyChar.BaseMana();
ClickyClient.MyChar.EquipGetStats(1, false);
ClickyClient.MyChar.EquipGetStats(2, false);
ClickyClient.MyChar.EquipGetStats(3, false);
ClickyClient.MyChar.EquipGetStats(4, false);
ClickyClient.MyChar.EquipGetStats(5, false);
ClickyClient.MyChar.EquipGetStats(6, false);
ClickyClient.MyChar.EquipGetStats(8, false);
ClickyClient.MyChar.AddAtk();
Pack = ThePackets.Vital((long)ClickyClient.MyChar.UID, 14, spi);
ClickyClient.SendPacket(Pack);
Pack = ThePackets.Vital((long)ClickyClient.MyChar.UID, 15, vit);
ClickyClient.SendPacket(Pack);
Pack = ThePackets.Vital((long)ClickyClient.MyChar.UID, 16, str);
ClickyClient.SendPacket(Pack);
Pack = ThePackets.Vital((long)ClickyClient.MyChar.UID, 17, agi);
ClickyClient.SendPacket(Pack);
Pack = ThePackets.Vital2((long)ClickyClient.MyChar.UID, ClickyClient.MyChar.CurHP);
ClickyClient.SendPacket(Pack);
Done = true;
}
usage: rew=job,45
Sorry about indentation, you'll have to fix it.
You'll also need to do job requirement too.
Add this block of code in NpcDialog.cs under req
Code:
else if (TheReq[0] == "job")
{
if (ClickyClient.MyChar.CharClass == Convert.ToByte(TheReq[1]))
{
Requirs = true;
}
else
DontHave = false;
}
usage: req=job,(required job class to promote)
Quality is key, so you might want to add a stat point check, in case you ever add rebirth.
Add this block of code to NpcDialog.cs under req.
Code:
else if (TheReq[0] == "stat")
{
if (TheReq[1] == "str")
{
if (ClickyClient.MyChar.Strength >= Convert.ToByte(TheReq[2]))
{
Requirs = true;
}
}
else if (TheReq[1] == "vit")
{
if (ClickyClient.MyChar.Vitality >= Convert.ToByte(TheReq[2]))
{
Requirs = true;
}
}
else if (TheReq[1] == "spi")
{
if (ClickyClient.MyChar.Spirit >= Convert.ToByte(TheReq[2]))
{
Requirs = true;
}
}
else if (TheReq[1] == "agi")
{
if (ClickyClient.MyChar.Agility >= Convert.ToByte(TheReq[2]))
{
Requirs = true;
}
}
else
DontHave = false;
}
usage: req=stat,x,y
x = str, vit, spi, or agi
y = required amount of points allocated to x