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!
This commit is contained in:
Maz-V 2017-10-30 21:57:57 +07:00 committed by Aleos
parent 09519f3b37
commit c76f3675a2
3 changed files with 101 additions and 191 deletions

View File

@ -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 {

View File

@ -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;

View File

@ -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;
}