From c76f3675a25bc0d1d6918ba341c9cc637f0f0e75 Mon Sep 17 00:00:00 2001 From: Maz-V Date: Mon, 30 Oct 2017 21:57:57 +0700 Subject: [PATCH] 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! --- npc/custom/jobmaster.txt | 101 +------------------------------- npc/custom/platinum_skills.txt | 89 +--------------------------- npc/other/Global_Functions.txt | 102 +++++++++++++++++++++++++++++++-- 3 files changed, 101 insertions(+), 191 deletions(-) diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index 3ced7e0d31..d7499753df 100644 --- a/npc/custom/jobmaster.txt +++ b/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 { diff --git a/npc/custom/platinum_skills.txt b/npc/custom/platinum_skills.txt index 8276d694f2..2ab78e272c 100644 --- a/npc/custom/platinum_skills.txt +++ b/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; diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 4defc821c2..b7230c62a0 100644 --- a/npc/other/Global_Functions.txt +++ b/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; +}