瀏覽代碼

Global_Function: Added "F_GetPlatinumSkills" (#2545)

* Added global function F_GetPlatinumSkills.
* Adjusted the Job Master and Platinum Skills NPCs to use this function.
Thanks to @mazvi!
Maz-V 7 年之前
父節點
當前提交
c76f3675a2
共有 3 個文件被更改,包括 101 次插入191 次删除
  1. 3 98
      npc/custom/jobmaster.txt
  2. 2 87
      npc/custom/platinum_skills.txt
  3. 96 6
      npc/other/Global_Functions.txt

+ 3 - 98
npc/custom/jobmaster.txt

@@ -1,15 +1,9 @@
 //===== rAthena Script =======================================
 //= Job Master
-//===== By: ==================================================
-//= Euphy
-//===== Current Version: =====================================
-//= 1.7
-//===== Compatible With: ===================================== 
-//= rAthena Project
 //===== Description: =========================================
 //= A fully functional job changer.
 //===== Additional Comments: =================================
-//= 1.0 Initial script.
+//= 1.0 Initial script. [Euphy]
 //= 1.1 Fixed reset on Baby job change.
 //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support.
 //= 1.3 Kagerou/Oboro added.
@@ -18,6 +12,7 @@
 //= 1.6 Added option to get job related equipment on change. [Braniff]
 //= 1.7 Readability changes. Also added BabyExpanded and BabySummoner classes. [Jey]
 //= 1.8 Added option to disable Baby Novice Only but Baby Class can be Enabled [mazvi]
+//= 1.9 Migrate/Integrate to Global Functions Platinum Skills. [mazvi]
 //============================================================
 
 prontera,153,193,6	script	Job Master	123,{
@@ -305,7 +300,6 @@ function	Job_Menu	{
 
 // Executes the actual jobchange and closes.
 function	Job_Change	{
-	function Get_Platinum;
 	.@to_cls = getarg(0);
 	next;
 	mes .NPCName$;
@@ -323,7 +317,7 @@ function	Job_Change	{
 	specialeffect2 EF_ANGEL2;
 	specialeffect2 EF_ELECTRIC;
 	if (.Platinum)
-		Get_Platinum();
+		callfunc "F_GetPlatinumSkills";
 	if (.GetJobEquip)
 		Get_Job_Equip();
 	close; // Always closes after the change
@@ -351,95 +345,6 @@ function	Confirm_Change	{
 	return;
 }
 
-function	Get_Platinum	{
-	skill "NV_FIRSTAID",1,SKILL_PERM;
-	switch (BaseClass) {
-	case Job_Novice:
-		if (Class != Job_Super_Novice)
-			skill "NV_TRICKDEAD",1,SKILL_PERM;
-		break;
-	case Job_Swordman:
-		skill "SM_MOVINGRECOVERY",1,SKILL_PERM;
-		skill "SM_FATALBLOW",1,SKILL_PERM;
-		skill "SM_AUTOBERSERK",1,SKILL_PERM;
-		break;
-	case Job_Mage:
-		skill "MG_ENERGYCOAT",1,SKILL_PERM;
-		break;
-	case Job_Archer:
-		skill "AC_MAKINGARROW",1,SKILL_PERM;
-		skill "AC_CHARGEARROW",1,SKILL_PERM;
-		break;
-	case Job_Acolyte:
-		skill "AL_HOLYLIGHT",1,SKILL_PERM;
-		break;
-	case Job_Merchant:
-		skill "MC_CARTREVOLUTION",1,SKILL_PERM;
-		skill "MC_CHANGECART",1,SKILL_PERM;
-		skill "MC_LOUD",1,SKILL_PERM;
-		break;
-	case Job_Thief:
-		skill "TF_SPRINKLESAND",1,SKILL_PERM;
-		skill "TF_BACKSLIDING",1,SKILL_PERM;
-		skill "TF_PICKSTONE",1,SKILL_PERM;
-		skill "TF_THROWSTONE",1,SKILL_PERM;
-		break;
-	default:
-		break;
-	}
-	switch (BaseJob) {
-	case Job_Knight:
-		skill "KN_CHARGEATK",1,SKILL_PERM;
-		break;
-	case Job_Priest:
-		skill "PR_REDEMPTIO",1,SKILL_PERM;
-		break;
-	case Job_Wizard:
-		skill "WZ_SIGHTBLASTER",1,SKILL_PERM;
-		break;
-	case Job_Blacksmith:
-		skill "BS_UNFAIRLYTRICK",1,SKILL_PERM;
-		skill "BS_GREED",1,SKILL_PERM;
-		break;
-	case Job_Hunter:
-		skill "HT_PHANTASMIC",1,SKILL_PERM;
-		break;
-	case Job_Assassin:
-		skill "AS_SONICACCEL",1,SKILL_PERM;
-		skill "AS_VENOMKNIFE",1,SKILL_PERM;
-		break;
-	case Job_Crusader:
-		skill "CR_SHRINK",1,SKILL_PERM;
-		break;
-	case Job_Monk:
-		skill "MO_KITRANSLATION",1,SKILL_PERM;
-		skill "MO_BALKYOUNG",1,SKILL_PERM;
-		break;
-	case Job_Sage:
-		skill "SA_CREATECON",1,SKILL_PERM;
-		skill "SA_ELEMENTWATER",1,SKILL_PERM;
-		skill "SA_ELEMENTGROUND",1,SKILL_PERM;
-		skill "SA_ELEMENTFIRE",1,SKILL_PERM;
-		skill "SA_ELEMENTWIND",1,SKILL_PERM;
-		break;
-	case Job_Rogue:
-		skill "RG_CLOSECONFINE",1,SKILL_PERM;
-		break;
-	case Job_Alchemist:
-		skill "AM_BIOETHICS",1,SKILL_PERM;
-		break;
-	case Job_Bard:
-		skill "BA_PANGVOICE",1,SKILL_PERM;
-		break;
-	case Job_Dancer:
-		skill "DC_WINKCHARM",1,SKILL_PERM;
-		break;
-	default:
-		break;
-	}
-	return;
-}
-
 // Function which gives a job related item to the player
 // the items are the rewards from the original job change quests
 function	Get_Job_Equip	{

+ 2 - 87
npc/custom/platinum_skills.txt

@@ -14,6 +14,7 @@
 //= 2.7 Rewrote to give all correct skills to all proper classes. [Paradox924X]
 //= 2.8 Clustered conditionals replaced with switch to include all Upper types. [Euphy]
 //= 2.9 Added MC_CARTDECORATE for Merchant class. [mazvi]
+//= 3.0 Migrate/Integrate to Global Functions. [mazvi]
 //============================================================
 
 prontera,128,200,6	script	Platinum Skill NPC	94,{
@@ -26,93 +27,7 @@ prontera,128,200,6	script	Platinum Skill NPC	94,{
 		mes "Have a nice day... >.>";
 		close;
 	}
-	skill "NV_FIRSTAID",1,SKILL_PERM;
-	switch (BaseClass) {
-	case Job_Novice:
-		if (Class != Job_Super_Novice)
-			skill "NV_TRICKDEAD",1,SKILL_PERM;
-		break;
-	case Job_Swordman:
-		skill "SM_MOVINGRECOVERY",1,SKILL_PERM;
-		skill "SM_FATALBLOW",1,SKILL_PERM;
-		skill "SM_AUTOBERSERK",1,SKILL_PERM;
-		break;
-	case Job_Mage:
-		skill "MG_ENERGYCOAT",1,SKILL_PERM;
-		break;
-	case Job_Archer:
-		skill "AC_MAKINGARROW",1,SKILL_PERM;
-		skill "AC_CHARGEARROW",1,SKILL_PERM;
-		break;
-	case Job_Acolyte:
-		skill "AL_HOLYLIGHT",1,SKILL_PERM;
-		break;
-	case Job_Merchant:
-		skill "MC_CARTREVOLUTION",1,SKILL_PERM;
-		skill "MC_CHANGECART",1,SKILL_PERM;
-		skill "MC_LOUD",1,SKILL_PERM;
-		if(PACKETVER >= 20150826)
-			skill "MC_CARTDECORATE",1,SKILL_PERM;
-		break;
-	case Job_Thief:
-		skill "TF_SPRINKLESAND",1,SKILL_PERM;
-		skill "TF_BACKSLIDING",1,SKILL_PERM;
-		skill "TF_PICKSTONE",1,SKILL_PERM;
-		skill "TF_THROWSTONE",1,SKILL_PERM;
-		break;
-	default:
-		break;
-	}
-	switch (BaseJob) {
-	case Job_Knight:
-		skill "KN_CHARGEATK",1,SKILL_PERM;
-		break;
-	case Job_Priest:
-		skill "PR_REDEMPTIO",1,SKILL_PERM;
-		break;
-	case Job_Wizard:
-		skill "WZ_SIGHTBLASTER",1,SKILL_PERM;
-		break;
-	case Job_Blacksmith:
-		skill "BS_UNFAIRLYTRICK",1,SKILL_PERM;
-		skill "BS_GREED",1,SKILL_PERM;
-		break;
-	case Job_Hunter:
-		skill "HT_PHANTASMIC",1,SKILL_PERM;
-		break;
-	case Job_Assassin:
-		skill "AS_SONICACCEL",1,SKILL_PERM;
-		skill "AS_VENOMKNIFE",1,SKILL_PERM;
-		break;
-	case Job_Crusader:
-		skill "CR_SHRINK",1,SKILL_PERM;
-		break;
-	case Job_Monk:
-		skill "MO_KITRANSLATION",1,SKILL_PERM;
-		skill "MO_BALKYOUNG",1,SKILL_PERM;
-		break;
-	case Job_Sage:
-		skill "SA_CREATECON",1,SKILL_PERM;
-		skill "SA_ELEMENTWATER",1,SKILL_PERM;
-		skill "SA_ELEMENTGROUND",1,SKILL_PERM;
-		skill "SA_ELEMENTFIRE",1,SKILL_PERM;
-		skill "SA_ELEMENTWIND",1,SKILL_PERM;
-		break;
-	case Job_Rogue:
-		skill "RG_CLOSECONFINE",1,SKILL_PERM;
-		break;
-	case Job_Alchemist:
-		skill "AM_BIOETHICS",1,SKILL_PERM;
-		break;
-	case Job_Bard:
-		skill "BA_PANGVOICE",1,SKILL_PERM;
-		break;
-	case Job_Dancer:
-		skill "DC_WINKCHARM",1,SKILL_PERM;
-		break;
-	default:
-		break;
-	}
+	callfunc "F_GetPlatinumSkills";
 	mes "[Platinum Skill NPC]";
 	mes "There you go!";
 	close;

+ 96 - 6
npc/other/Global_Functions.txt

@@ -1,14 +1,9 @@
 //===== rAthena Script ======================================= 
 //= Global Functions
-//===== By: ================================================== 
-//= Lupus, kobra_k88
-//===== Current Version: ===================================== 
-//= 2.25
-//===== Compatible With: ===================================== 
-//= rAthena Project
 //===== Description: ========================================= 
 //= General script functions.
 //===== Additional Comments: ================================= 
+//= 1.0 Initial script. [Lupus] [kobra_k88]
 //= Added F_ClearJobVar - on getting a new job it clears all Job Quest variables
 //= Removed individual job check functions as they were redundant [kobra_k88]
 //= 1.3 Added Job Change Function for Baby/Normal Classes
@@ -49,6 +44,7 @@
 //= 2.24 Added functions to check for equipment swap hacks. [Euphy]
 //= 2.25 Added "F_CanOpenStorage" and "F_CanChangeJob". [secretdataz]
 //= 2.26 Added "F_getpositionname". [Capuche]
+//= 2.27 Added "F_GetPlatinumSkills". [mazvi]
 //============================================================ 
 
 //////////////////////////////////////////////////////////////////////////////////
@@ -659,3 +655,97 @@ function	script	F_getpositionname	{
 			return "Unknown";
 	}
 }
+
+//////////////////////////////////////////////////////////////////////////////////
+// Gives attached player their Platinum Skill based on their class.
+//////////////////////////////////////////////////////////////////////////////////
+function	script	F_GetPlatinumSkills	{
+	skill "NV_FIRSTAID",1,SKILL_PERM;
+	switch (BaseClass) {
+	case Job_Novice:
+		if (Class != Job_Super_Novice)
+			skill "NV_TRICKDEAD",1,SKILL_PERM;
+		break;
+	case Job_Swordman:
+		skill "SM_MOVINGRECOVERY",1,SKILL_PERM;
+		skill "SM_FATALBLOW",1,SKILL_PERM;
+		skill "SM_AUTOBERSERK",1,SKILL_PERM;
+		break;
+	case Job_Mage:
+		skill "MG_ENERGYCOAT",1,SKILL_PERM;
+		break;
+	case Job_Archer:
+		skill "AC_MAKINGARROW",1,SKILL_PERM;
+		skill "AC_CHARGEARROW",1,SKILL_PERM;
+		break;
+	case Job_Acolyte:
+		skill "AL_HOLYLIGHT",1,SKILL_PERM;
+		break;
+	case Job_Merchant:
+		skill "MC_CARTREVOLUTION",1,SKILL_PERM;
+		skill "MC_CHANGECART",1,SKILL_PERM;
+		skill "MC_LOUD",1,SKILL_PERM;
+		if(PACKETVER >= 20150826)
+			skill "MC_CARTDECORATE",1,SKILL_PERM;
+		break;
+	case Job_Thief:
+		skill "TF_SPRINKLESAND",1,SKILL_PERM;
+		skill "TF_BACKSLIDING",1,SKILL_PERM;
+		skill "TF_PICKSTONE",1,SKILL_PERM;
+		skill "TF_THROWSTONE",1,SKILL_PERM;
+		break;
+	default:
+		break;
+	}
+	switch (BaseJob) {
+	case Job_Knight:
+		skill "KN_CHARGEATK",1,SKILL_PERM;
+		break;
+	case Job_Priest:
+		skill "PR_REDEMPTIO",1,SKILL_PERM;
+		break;
+	case Job_Wizard:
+		skill "WZ_SIGHTBLASTER",1,SKILL_PERM;
+		break;
+	case Job_Blacksmith:
+		skill "BS_UNFAIRLYTRICK",1,SKILL_PERM;
+		skill "BS_GREED",1,SKILL_PERM;
+		break;
+	case Job_Hunter:
+		skill "HT_PHANTASMIC",1,SKILL_PERM;
+		break;
+	case Job_Assassin:
+		skill "AS_SONICACCEL",1,SKILL_PERM;
+		skill "AS_VENOMKNIFE",1,SKILL_PERM;
+		break;
+	case Job_Crusader:
+		skill "CR_SHRINK",1,SKILL_PERM;
+		break;
+	case Job_Monk:
+		skill "MO_KITRANSLATION",1,SKILL_PERM;
+		skill "MO_BALKYOUNG",1,SKILL_PERM;
+		break;
+	case Job_Sage:
+		skill "SA_CREATECON",1,SKILL_PERM;
+		skill "SA_ELEMENTWATER",1,SKILL_PERM;
+		skill "SA_ELEMENTGROUND",1,SKILL_PERM;
+		skill "SA_ELEMENTFIRE",1,SKILL_PERM;
+		skill "SA_ELEMENTWIND",1,SKILL_PERM;
+		break;
+	case Job_Rogue:
+		skill "RG_CLOSECONFINE",1,SKILL_PERM;
+		break;
+	case Job_Alchemist:
+		skill "AM_BIOETHICS",1,SKILL_PERM;
+		break;
+	case Job_Bard:
+		skill "BA_PANGVOICE",1,SKILL_PERM;
+		break;
+	case Job_Dancer:
+		skill "DC_WINKCHARM",1,SKILL_PERM;
+		break;
+	default:
+		break;
+	}
+	return;
+}