summaryrefslogtreecommitdiff
path: root/src/map/atcommand.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/atcommand.c')
-rw-r--r--src/map/atcommand.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 8db07f942..aea1f145b 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -2474,16 +2474,21 @@ int atcommand_joblevelup(
const char* command, const char* message)
{
int up_level = 50, level;
+ struct pc_base_job s_class;
nullpo_retr(-1, sd);
+ s_class = pc_calc_base_job(sd->status.class);
if (!message || !*message || (level = atoi(message)) == 0) {
clif_displaymessage(fd, "Please, enter a level adjustement (usage: @joblvup/@jlevel/@joblvlup <number of levels>).");
return -1;
}
- if (sd->status.class == 0 || sd->status.class == 4001)
+ if (s_class.job == 0)
up_level -= 40;
- else if ((sd->status.class > 4007 && sd->status.class < 4024) || sd->status.class == 23)
+ // super novices can go up to 99 [celest]
+ else if (s_class.job == 23)
+ up_level += 49;
+ else if (sd->status.class > 4007 && sd->status.class < 4023)
up_level += 20;
if (level > 0) {
@@ -4711,8 +4716,10 @@ int atcommand_character_joblevel(
if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change job level only lower or same gm level
if (pl_s_class.job == 0)
max_level -= 40;
- if ((pl_s_class.job == 23) || (pl_s_class.upper == 1 && pl_s_class.type == 2)) //スパノビと転生職はJobレベルの最高が70
- // To-do: super novices has max level 99 - celest
+ // super novices can go up to 99 [celest]
+ else if (pl_s_class.job == 23)
+ max_level += 49;
+ else if (pl_sd->status.class > 4007 && pl_sd->status.class < 4023)
max_level += 20;
if (level > 0) {