From b0b197a7a5fe81f18f4c515af9c7f484c902722e Mon Sep 17 00:00:00 2001 From: Charlie Unfricht Date: Tue, 16 Aug 2022 02:11:38 -0400 Subject: [PATCH 1/3] Update executeReborn to take in a job id --- src/main/java/client/Character.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index 9ca8e421af..3594ec7b7d 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -11137,6 +11137,16 @@ public class Character extends AbstractCharacterObject { } public void executeReborn() { + // default to beginner: job id = 0 + // this prevents a breaking change + executeRebornAs(Job.BEGINNER); + } + + public void executeRebornAsId(int jobId) { + executeRebornAs(Job.getById(jobId)); + } + + public void executeRebornAs(Job job) { if (!YamlConfig.config.server.USE_REBIRTH_SYSTEM) { yellowMessage("Rebirth system is not enabled!"); throw new NotEnabledException(); @@ -11145,7 +11155,7 @@ public class Character extends AbstractCharacterObject { return; } addReborns(); - changeJob(Job.BEGINNER); + changeJob(job); setLevel(0); levelUp(true); } From a456b270118cd7e66dc0bcdfe037277c1686c1c0 Mon Sep 17 00:00:00 2001 From: Charlie Unfricht Date: Tue, 16 Aug 2022 02:12:31 -0400 Subject: [PATCH 2/3] Update rebirth NPC to allow for path selection --- scripts/npc/rebirth.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/scripts/npc/rebirth.js b/scripts/npc/rebirth.js index 72d2a5f8a6..78ddecc290 100644 --- a/scripts/npc/rebirth.js +++ b/scripts/npc/rebirth.js @@ -24,6 +24,7 @@ @author wejrox */ var status; +var jobId = 0; function start() { status = -1; @@ -50,7 +51,7 @@ function action(mode, type, selection) { } else if (status === 2) { if (selection === 0) { if (cm.getChar().getLevel() === 200) { - cm.sendYesNo("Are you sure you want to be reborn?"); + cm.sendSimple("I see... and which path would you like to take? \r\n\r\n #L0##bExplorer (Beginner)#l \r\n #L1##bCygnus Knight (Noblesse)#l \r\n #L2##bAran (Legend)#l"); } else { cm.sendOk("You are not level 200, please come back when you hit level 200."); cm.dispose(); @@ -59,8 +60,19 @@ function action(mode, type, selection) { cm.sendOk("See you soon!") cm.dispose(); } - } else if (status === 3 && type === 1) { - cm.getChar().executeReborn(); + } else if (status === 3) { + // 0 => beginner, 1000 => noblesse, 2000 => legend + // makes this very easy :-) + jobId = selection * 1000; + + var job = ""; + if (selection === 0) job = "Beginner"; + else if (selection === 1) job = "Noblesse"; + else if (selection === 2) job = "Legend"; + cm.sendYesNo("Are you sure you want to be reborn as a " + job + "?"); + } + else if (status === 4 && type === 1) { + cm.getChar().executeRebornAsId(jobId); cm.sendOk("You have now been reborn. That's a total of #r" + cm.getChar().getReborns() + "#k rebirths"); cm.dispose(); } From cd706c544b903335eb99bd2353c950dabf0d956c Mon Sep 17 00:00:00 2001 From: Charlie Unfricht Date: Tue, 16 Aug 2022 02:17:49 -0400 Subject: [PATCH 3/3] Fix bug where non-200 capped classes can't rebirth --- scripts/npc/rebirth.js | 6 +++--- src/main/java/client/Character.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/npc/rebirth.js b/scripts/npc/rebirth.js index 78ddecc290..7859407880 100644 --- a/scripts/npc/rebirth.js +++ b/scripts/npc/rebirth.js @@ -50,10 +50,10 @@ function action(mode, type, selection) { cm.sendSimple("What do you want me to do today: \r\n \r\n #L0##bI want to be reborn!#l \r\n #L1##bNothing for now...#k#l"); } else if (status === 2) { if (selection === 0) { - if (cm.getChar().getLevel() === 200) { + if (cm.getChar().getLevel() === cm.getChar().getMaxClassLevel()) { cm.sendSimple("I see... and which path would you like to take? \r\n\r\n #L0##bExplorer (Beginner)#l \r\n #L1##bCygnus Knight (Noblesse)#l \r\n #L2##bAran (Legend)#l"); } else { - cm.sendOk("You are not level 200, please come back when you hit level 200."); + cm.sendOk("It looks like your journey has not yet ended... come back when you're level " + cm.getChar().getMaxClassLevel()); cm.dispose(); } } else if (selection === 1) { @@ -64,7 +64,7 @@ function action(mode, type, selection) { // 0 => beginner, 1000 => noblesse, 2000 => legend // makes this very easy :-) jobId = selection * 1000; - + var job = ""; if (selection === 0) job = "Beginner"; else if (selection === 1) job = "Noblesse"; diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index 3594ec7b7d..b9972d4248 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -11151,7 +11151,7 @@ public class Character extends AbstractCharacterObject { yellowMessage("Rebirth system is not enabled!"); throw new NotEnabledException(); } - if (getLevel() != 200) { + if (getLevel() != getMaxClassLevel()) { return; } addReborns();