//===== eAthena Script ======================================= //= Global functions //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== //= 1.5 //===== Compatible With: ===================================== //= eAthena SVN R3424+, RO Ep6+ //===== Description: ========================================= //= Global Functions //= //===== Additional Comments: ================================= //= GF_getJobName= function for getting a job's name //= GF_getJobName2= gets a jobs name modified by Type (see below) //= GF_getJobId= gets a jobs number modified by Type (see below) //= GF_getJobLevel= identifies novices/1st/2nd among classes //= GF_getJobType= identifies normal/advanced/babies classes //= - GF_getJobClass= identifies job class (swordie, mage, etc) //============================================================ function script GF_getJobName { switch (getarg(0)) { case Job_Novice: return "novice"; case Job_Acolyte: return "acolyte"; case Job_Archer: return "archer"; case Job_Mage: return "mage"; case Job_Merchant: return "merchant"; case Job_Swordman: return "swordsman"; case Job_Thief: return "thief"; case Job_Taekwon: return "taekwon kid"; case Job_SuperNovice: return "super novice"; case Job_Hunter: return "hunter"; case Job_Dancer: return "dancer"; case Job_Bard: return "bard"; case Job_Priest: return "priest"; case Job_Monk: return "monk"; case Job_Wizard: return "wizard"; case Job_Sage: return "sage"; case Job_BlackSmith: return "blacksmith"; case Job_Alchem: return "alchemist"; case Job_Knight: case Job_Knight2: return "knight"; case Job_Crusader: case Job_Crusader2: return "crusader"; case Job_Assassin: return "assassin"; case Job_Rogue: return "rogue"; case Job_Star_Gladiator: case Job_Star_Gladiator2: return "star gladiator"; case Job_Soul_Linker: return "soul linker"; case Job_Novice_High: return "high novice"; case Job_Acolyte_High: return "high acolyte"; case Job_Archer_High: return "high archer"; case Job_Mage_High: return "high mage"; case Job_Merchant_High: return "high merchant"; case Job_Swordman_High: return "high swordsman"; case Job_Thief_High: return "high thief"; case Job_Assassin_Cross: return "assassin cross"; case Job_Champion: return "champion"; case Job_Clown: return "minstrel"; case Job_Creator: return "biochemist"; case Job_Gypsy: return "gypsy"; case Job_High_Priest: return "high priest"; case Job_High_Wizard: return "high wizard"; case Job_Lord_Knight: case Job_Lord_Knight2: return "lord knight"; case Job_Paladin: case Job_Paladin2: return "paladin"; case Job_Professor: return "professor"; case Job_Sniper: return "sniper"; case Job_Stalker: return "stalker"; case Job_Whitesmith: return "whitesmith"; case Job_Baby: return "baby"; case Job_Baby_Acolyte: return "baby acolyte"; case Job_Baby_Archer: return "baby archer"; case Job_Baby_Mage: return "baby mage"; case Job_Baby_Merchant: return "baby merchant"; case Job_Baby_Swordman: return "baby swordsman"; case Job_Baby_Thief: return "baby thief"; case Job_Super_Baby: return "super baby"; case Job_Baby_Hunter: return "baby hunter"; case Job_Baby_Dancer: return "baby dancer"; case Job_Baby_Bard: return "baby bard"; case Job_Baby_Priest: return "baby priest"; case Job_Baby_Monk: return "baby monk"; case Job_Baby_Wizard: return "baby wizard"; case Job_Baby_Sage: return "baby sage"; case Job_Baby_BlackSmith: return "baby blacksmith"; case Job_Baby_Alchem: return "baby alchemist"; case Job_Baby_Knight: case Job_Baby_Knight2: return "baby knight"; case Job_Baby_Crusader: case Job_Baby_Crusader2: return "baby crusader"; case Job_Baby_Assassin: return "baby assassin"; case Job_Baby_Rogue: return "baby rogue"; default: return "unknown"; } } //Returns job name using two params: JobId and Type function script GF_getJobName2 { set @classId, callfunc("GF_getJobId", getarg(0), getarg(1)); return callfunc("GF_getJobName", @classId); } //Returns a Job's ID modified by their Type function script GF_getJobId { set @classId, getarg(0); set @type, getarg(1); if (@classId == Job_SuperNovice || @classId == Job_Super_Baby) { switch (@type) { case 0: return Job_SuperNovice; case 2: return Job_Super_Baby; default: return @classId; } } if (@classId >= Job_Taekwon && @classId <= Job_Soul_Linker) { //Currently has no alternates. return @classId; } if (@classId >= Job_Novice_High && @classId <= Job_Paladin2) set @classId, @classId -Job_Novice_High; else if (@classId >= Job_Baby && @classId <= Job_Super_Baby) set @classId, @classId -Job_Baby; if (@type == 1) set @classId, @classId +Job_Novice_High; if (@type == 2) set @classId, @classId +Job_Baby; return @classId; } //Returns the type of class: //0= Novice, 1= First Class, 2= Second Class, 3= Super Novice //4= Wedding function script GF_getJobLevel { set @classId, getarg(0); if (@classId >= Job_Novice_High && @classId <= Job_Paladin2) set @classId, @classId -Job_Novice_High; if (@classId >= Job_Baby && @classId <= Job_Baby_Crusader2) set @classId, @classId -Job_Baby; if(@classId == Job_Novice) { return 0; } if((@classId >= Job_Swordman && @classId <= Job_Thief) || @classId == Job_Taekwon) { return 1; } if ((@classId >= Job_Knight && @classId <= Job_Crusader2) || (@classId >= Job_Star_Gladiator && @classId <= Job_Soul_Linker)) { return 2; } if(@classId == Job_SuperNovice || @classId == Job_Super_Baby) { return 3; } if(@classId == 22) { return 4; } return -1; } //Returns the type of class, based on path: //0= Normal Jobs, 1= Upper Jobs, 2= Baby Jobs //Works the same as Upper, except you can pass any job id to get it's upper value function script GF_getJobType { set @classId, getarg(0); if ((@classId >= Job_Novice && @classId <= Job_SuperNovice) || (@classId >= Job_Taekwon && @classId <= Job_Soul_Linker)) { return 0; } if (@classId >= Job_Novice_High && @classId <= Job_Paladin2) { return 1; } if (@classId >= Job_Baby && @classId <= Job_Super_Baby) { return 2; } return -1; } //Returns the base class of the given job, return values are: //Job_Novice (Novice, Baby Novice, Super Novice //Job_Acolyte (Aco, Priest, Monk +High/Baby variations) //Job_Archer (Archer, Sniper, Bard, Dancer +High/Baby variations) //Job_Mage (Mage, Wizard, Sage +High/Baby variations) //Job_Swordman (Swordsman, Knight, Crusader +High/Baby variations) //Job_Thief (Thief, Assassin, Rogue +High/Baby variations) //-1 : others (when wearing Tux/Wedding dress, for example) //Works the same as baseClass, except you pass the class which you want //examined. function script GF_getJobClass { set @classId, getarg(0); if (@classId >= Job_Novice_High && @classId <= Job_Paladin2) set @classId, @classId -Job_Novice_High; if (@classId >= Job_Baby && @classId <= Job_Baby_Crusader2) set @classId, @classId -Job_Baby; switch (@classId) { case Job_Novice: case Job_SuperNovice: case Job_Super_Baby: return Job_Novice; case Job_Acolyte: case Job_Priest: case Job_Monk: return Job_Acolyte; case Job_Archer: case Job_Hunter: case Job_Bard: case Job_Dancer: return Job_Archer; case Job_Mage: case Job_Wizard: case Job_Sage: return Job_Mage; case Job_Merchant: case Job_BlackSmith: case Job_Alchem: return Job_Merchant; case Job_Swordman: case Job_Knight: case Job_Knight2: case Job_Paladin: case Job_Paladin2: return Job_Swordman; case Job_Thief: case Job_Assassin: case Job_Rogue: return Job_Thief; case Job_Taekwon: case Job_Star_Gladiator: case Job_Star_Gladiator2: case Job_Soul_Linker: return Job_Taekwon; default: return -1; } }