From 288490094a7fe9167747dc78d416940759a31197 Mon Sep 17 00:00:00 2001 From: FlavioJS Date: Tue, 5 Dec 2006 13:23:07 +0000 Subject: - Massive EOL normalization & 'svn:eol-style native' flag setting for all txt/conf/h/c files. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/other/Global_Functions.txt | 970 ++++++++++++++++++++--------------------- 1 file changed, 485 insertions(+), 485 deletions(-) (limited to 'npc/other/Global_Functions.txt') diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 6d2d145c4..d8a8f4d93 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -1,486 +1,486 @@ -//===== eAthena Script ======================================= -//= Global Functions -//===== By: ================================================== -//= Lupus, kobra_k88 -//===== Current Version: ===================================== -//= 2.08 -//===== Compatible With: ===================================== -//= eAthena 1.0 -//===== Description: ========================================= -//= -//===== Additional Comments: ================================= -//= 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 -//= 1.3b a fix, due to const.txt change [Lupus] -//= 1.4 Added Is_Taekwon_Class: Taekwondo, Star Knight(Gladiator),Soul Linker [Lupus] -//= 1.5 Added clear of Bard Quest variables. 1.5a updated [Lupus] -//= 1.6 Added F_RandMes, F_SexMes, F_Hi, F_Bye functions [Lupus] -//= Moved here useful function 'getJobName' -//= 1.7 Added "F_ItemName" function, added a great sample for "F_ItemName" -//= 1.8 Added Job Vars clear for Extended classes: TK,SL,SG [Lupus] -//= 1.9 Added "F_ClearGarbage" func that clears outdated, wasted variables [Lupus] -//= 1.91 Added "F_SaveQuestSkills","F_Load?Skills" functions [Lupus] -//= 2.0 Fixed F_Save/LoadQuestSkills functions. Had to split in into 2 vars [Lupus] -//= 2.01 Added $talk to F_ClearGarbage [Evera] -//= 2.02 Added $dtsglobalelig and $dts|(1<<6) to F_ClearGarbage [Evera] -//= 2.03 Added Gunslinger vars to F_ClearJobVar [Lupus] -//= 2.04 Added dtseligible 2 (becomes MISC_QUEST|128) to F_ClearGarbage [Evera] -//= 2.05 Book of Devil -> MISC_QUEST|256, clear other Niflheim garbage vars [Lupus] -//= +more garbage clean -//= 2.06 Pass to Bio-Lab -> MISC_QUEST|512 [Lupus] -//= 2.07 Added TK_Q variable clear [Lupus] -//- 2.08 Added NINJ_Q variable clear [Lupus] -//============================================================ - - -////////////////////////////////////////////////////////////////////////////////// -// Function that clears job quest variables -////////////////////////////////////////////////////////////////////////////////// - -function script F_ClearJobVar { - // Misc --------------------------------- - set JBLVL,0; - set FIRSTAID,0; - set PLAYDEAD,0; - set got_bandage,0; - set got_novnametag,0; - // First Class Jobs --------------------- - set job_acolyte_q,0; set job_acolyte_q2,0; - set job_archer_q,0; - set job_magician_q,0; - set job_merchant_q,0; set job_merchant_q2,0; set job_merchant_q3,0; - set job_sword_q,0; set SWTEST, 0; - set job_thief_q,0; - // Super Novice - set SUPNOV_Q,0; - // 2-1 Jobs ------------------------------ - set ASSIN_Q,0; set ASSIN_Q2,0; - set BSMITH_Q,0; set BSMITH_Q2,0; - set HNTR_Q,0; set HNTR_Q2,0; - set KNIGHT_Q,0; set KNIGHT_Q2,0; - set PRIEST_Q,0; set PRIEST_Q2,0; set PRIEST_Q3,0; - set WIZ_Q,0; set WIZ_Q2,0; - // 2-2 Jobs ------------------------------ - set ROGUE_Q,0; set ROGUE_Q2,0; - set ALCH_Q,0; set ALCH_Q2,0; - set CRUS_Q,0; - set MONK_Q,0; set JOB_MONK_C,0; - set SAGE_Q,0; set SAGE_Q2,0; - set DANC_Q,0; - set BARD_Q,0; - // Extended Classes - set TAEK_Q,0; set TK_Q,0; - set STGL_Q,0; - set SOUL_Q,0; - set GUNS_Q,0; - set NINJ_Q,0; - return; -} - -function script F_ClearGarbage { - // Clear outdated global VARS - //DTS Vote System - if($dtsglobalelig) set $dtsglobalelig,0; - if($dts&(1<<6)) set $dts,$dts&~(1<<6); - //Cube Room - if(hzdun) { - set MISC_QUEST,MISC_QUEST|512; - set num1,0; set num2,0; set num3,0; set num4,0; set num5,0; - set num6,0; set num7,0; set num8,0; set num9,0; - set hzdun,0; set cubekey,0; set piciburn,0; - } - //Airship - if($lengths){ - cleararray $textstringsa$[0],"",getarraysize($textstringsa$); - cleararray $textstringsb$[0],"",getarraysize($textstringsb$); - cleararray $textstringsc$[0],"",getarraysize($textstringsc$); - cleararray $compstring$[0],"",getarraysize($compstring$); - cleararray $lengths[0],0,getarraysize($lengths); - } - //Shinkskas Quest garbage - if(Shinokas_Quest > 7){ - set ein_scientist,0; - set ein_stuff,0; - } - return; -} - -////////////////////////////////////////////////////////////////////////////////// -// Used in REBIRTH scripts -// Class = Internal Class ID -// BaseJob = Base Job (0..23) -// Upper : 0 - Default, 1 - Advanced, 2 - Baby -////////////////////////////////////////////////////////////////////////////////// - -function script Job_Change { - if (Upper<2) - jobchange getarg(0); // Common jobchange - else - jobchange getarg(0) + Job_Baby; //Change Job For Baby Class - logmes "CLASS CHANGE: " +strcharinfo(0)+ " become a "+jobname(Class); - return; -} - - -////////////////////////////////////////////////////////////////////////////////// -// FOT BACKWISE COMPATIBILITY: Functions used to check a players job class -// HOW TO USE: -// i.e. We need all holy classes but monks -// if ( callfunc("Is_Holy_Class") && callfunc("Is_Monk")==0 ) goto L_Start; -////////////////////////////////////////////////////////////////////////////////// - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Aco,Monk,Priest,Aco High,High Priest, -// Champion, 0 otherwise -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Holy_Class { - return ( BaseJob==Job_Acolyte || BaseJob==Job_Priest || BaseJob==Job_Monk ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Archer,Hunter,Bard,Dancer,Archer High,Sniper, -// Clown,Gypsy, 0 otherwise -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Bow_Class { - return ( BaseJob==Job_Archer || BaseJob==Job_Hunter || BaseJob==Job_Bard || BaseJob==Job_Dancer ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Mage,Wizard,Sage,Mage High,High Wizard, -// Professor, 0 otherwise -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Magic_Class { - return ( BaseJob==Job_Mage || BaseJob==Job_Wizard || BaseJob==Job_Sage ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Merc,Blacksmith,Alchemist,Merc High, -// Whitesmith,Creator, 0 otherwise -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Merc_Class { - return ( BaseJob==Job_Merchant || BaseJob==Job_Blacksmith || BaseJob==Job_Alchem ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Thief,Assassin,Rogue,Thief High, Assassin Cross -// Stalker, 0 otherwise -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Thief_Class { - return ( BaseJob==Job_Thief || BaseJob==Job_Assassin || BaseJob==Job_Rogue ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Swordy,Knight,Crusader,Swordy High, -// Lord Knight,Paladin, 0 otherwise -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Sword_Class { - return ( BaseJob==Job_Swordman || BaseJob==Job_Knight || BaseJob==Job_Knight2 || BaseJob==Job_Crusader || BaseJob==Job_Crusader2 ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// returns 1 if the player is either Taekwon, Star Gladiator,Soul Linker, 0 otherwise -// these classes can't be adopted nor reborn () -////////////////////////////////////////////////////////////////////////////////// - -function script Is_Taekwon_Class { - return ( Class==Job_Taekwon || Class==Job_Star_Gladiator || Class==Job_Star_Gladiator2 || Class==Job_Soul_Linker ); -} - - -////////////////////////////////////////////////////////////////////////////////// -// Functions used to spiff up dialoges [Lupus] -////////////////////////////////////////////////////////////////////////////////// - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_RandMes" -////////////////////////////////////////////////////////////////////////////////// -//returns random string -// Example: check F_Bye or F_Hi functions -// READ AND THINK: You can use it to pick a random number form list: -// set @itemIDfromList, callfunc("F_RandMes",8,1129,1222,1163,1357,1360,1522,1811,1410); - -function script F_RandMes { - return getarg(rand(1,getarg(0))); -} - - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_Sex" -////////////////////////////////////////////////////////////////////////////////// -//returns 1st string if female, 2nd string otherwise -// Example: mes callfunc("F_Sex","What a beautiful lady!","What a handsom man!"); - -function script F_SexMes { - return getarg(Sex); -} - - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_Hi" -////////////////////////////////////////////////////////////////////////////////// -//returns random HELLO message - -function script F_Hi { - return callfunc("F_RandMes",5,"Hi!","Hello!","Good day!","How are you?","Hello there."); -} - - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_Bye" -////////////////////////////////////////////////////////////////////////////////// -//returns random BYE message - -function script F_Bye { - return callfunc("F_RandMes",6,"Bye. See you again.","Later.","Goodbye.","Good luck!","Have a nice day!","Byebye!!!"); -} - - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_ItemName" -////////////////////////////////////////////////////////////////////////////////// -// Returns expanded item name string -//Argumentss -// 0 - Item ID -// 1 - Element N (0=none,1=Ice,2=Earth,3=Fire,4=Wind) -// 2 - VVS meter 0..3 -// 3 - Refine -// Example: mes "Show me your "+callfunc("F_ItemName",1201,1,2,5)+"..."; -// is equal to: mes "Show me your ^000090 +5 VVS Fire Knife ^000000..." - -function script F_ItemName { - set @t$,"^000090"; - if(getarg(3)) set @t$,@t$+"+"+getarg(3)+" "; - if(getarg(2)==1) set @t$,@t$+"VS "; - if(getarg(2)==2) set @t$,@t$+"VVS "; - if(getarg(2)==3) set @t$,@t$+"VVVS "; - if(getarg(2)>3) set @t$,@t$+getarg(2)+"xVS "; - if(getarg(1)==1) set @t$,@t$+"Ice "; - if(getarg(1)==2) set @t$,@t$+"Earth "; - if(getarg(1)==3) set @t$,@t$+"Fire "; - if(getarg(1)==4) set @t$,@t$+"Wind "; - if(getarg(1)>4) set @t$,@t$+"Strange "; - return @t$+getitemname(getarg(0))+"^000000"; -} - - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "getJobName" // -// [Usage] : callfunc("getJobName",Class); // -////////////////////////////////////////////////////////////////////////////////// - -function script getJobName { - switch(getarg(0)){ - case Job_Novice: - return "Novice"; - case Job_Swordman: - return "Swordman"; - case Job_Mage: - return "Magician"; - case Job_Archer: - return "Archer"; - case Job_Acolyte: - return "Acolyte"; - case Job_Merchant: - return "Merchant"; - case Job_Thief: - return "Thief"; - case Job_Knight: - case Job_Knight2: - return "Knight"; - case Job_Priest: - return "Priest"; - case Job_Wizard: - return "Wizard"; - case Job_Blacksmith: - return "Blacksmith"; - case Job_Hunter: - return "Hunter"; - case Job_Assassin: - return "Assassin"; - case Job_Crusader: - case Job_Crusader2: - return "Crusader"; - case Job_Monk: - return "Monk"; - case Job_Sage: - return "Sage"; - case Job_Rogue: - return "Rogue"; - case Job_Alchem: - return "Alchemist"; - case Job_Bard: - return "Bard"; - case Job_Dancer: - return "Dancer"; - case Job_SuperNovice: - return "Super Novice"; - case Job_Gunslinger: - return "Gunsligner"; - case Job_Ninja: - return "Ninja"; - case Job_Xmas: - return "Xmas"; - case Job_Novice_High: - return "Novice High"; - case Job_Swordman_High: - return "Swordman High"; - case Job_Mage_High: - return "Magician High"; - case Job_Archer_High: - return "Archer High"; - case Job_Acolyte_High: - return "Acolyte High"; - case Job_Merchant_High: - return "Merchant High"; - case Job_Thief_High: - return "Thief High"; - case Job_Lord_Knight: - case Job_Lord_Knight2: - return "Lord Knight"; - case Job_High_Priest: - return "High Priest"; - case Job_High_Wizard: - return "High Wizard"; - case Job_Whitesmith: - return "Whitesmith"; - case Job_Sniper: - return "Sniper"; - case Job_Assassin_Cross: - return "Assassin Cross"; - case Job_Paladin: - case Job_Paladin2: - return "Paladin"; - case Job_Champion: - return "Champion"; - case Job_Professor: - return "Professor"; - case Job_Stalker: - return "Stalker"; - case Job_Creator: - return "Creator"; - case Job_Clown: - return "Clown"; - case Job_Gypsy: - return "Gypsy"; - case Job_Baby: - return "Baby"; - case Job_Baby_Swordman: - return "Baby Swordman"; - case Job_Baby_Mage: - return "Baby Magician"; - case Job_Baby_Archer: - return "Baby Archer"; - case Job_Baby_Acolyte: - return "Baby Acolyte"; - case Job_Baby_Merchant: - return "Baby Merchant"; - case Job_Baby_Thief: - return "Baby Thief"; - case Job_Baby_Knight: - case Job_Baby_Knight2: - return "Baby Knight"; - case Job_Baby_Priest: - return "Baby Priest"; - case Job_Baby_Wizard: - return "Baby Wizard"; - case Job_Baby_Blacksmith: - return "Baby Blacksmith"; - case Job_Baby_Hunter: - return "Baby Hunter"; - case Job_Baby_Assassin: - return "Baby Assassin"; - case Job_Baby_Crusader: - case Job_Baby_Crusader2: - return "Baby Crusader"; - case Job_Baby_Monk: - return "Baby Monk"; - case Job_Baby_Sage: - return "Baby Sage"; - case Job_Baby_Rogue: - return "Baby Rogue"; - case Job_Baby_Alchem: - return "Baby Alchemist"; - case Job_Baby_Bard: - return "Baby Bard"; - case Job_Baby_Dancer: - return "Baby Dancer"; - case Job_Super_Baby: - return "Super Baby"; - case Job_Taekwon: - if(Sex == 0) - return "Taekwon Girl"; - else - return "Taekwon Boy"; - case Job_Star_Gladiator: - case Job_Star_Gladiator2: - return "Star Gladiator"; - case Job_Soul_Linker: - return "Soul Linker"; - case Job_Ninja: - return "Ninja"; - case Job_Gunslinger: - return "Gunslinger"; - case Job_Xmas: - return "Christmas"; - case Option_Wedding: - if(Sex == 0) - return "Bride"; - else - return "Bridegroom"; - default: - return "omghaxor"; - } -} - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_SaveQuestSkills": Store learnt quest skills -////////////////////////////////////////////////////////////////////////////////// -function script F_SaveQuestSkills { - set ADV_QSK,0; set ADV_QSK2,0; - //1st classes quest skills - for(set @i, 0; @i < 14; set @i, @i + 1){ - if(getskilllv(144+@i)) set ADV_QSK,ADV_QSK|pow(2,@i); - } - //2nd classes quest skills - for(set @i, 0; @i < 19; set @i, @i + 1){ - if(getskilllv(1001+@i)) set ADV_QSK2,ADV_QSK2|pow(2,@i); - } - return; -} - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_Load1Skills": Restore learnt 1st class quest skills -////////////////////////////////////////////////////////////////////////////////// -function script F_Load1Skills { - //1st classes quest skills - for(set @i, 0; @i < 14; set @i, @i + 1){ - if(ADV_QSK|pow(2,@i) == ADV_QSK) skill 144+@i,1,0; - } - set ADV_QSK,0; //Clear var - return; -} - -////////////////////////////////////////////////////////////////////////////////// -// *** Function "F_Load2Skills": Restore learnt 2nd class quest skills -////////////////////////////////////////////////////////////////////////////////// -function script F_Load2Skills { - //2nd classes quest skills - for(set @i, 0; @i < 19; set @i, @i + 1){ - if(ADV_QSK2|pow(2,@i) == ADV_QSK2) skill 1001+@i,1,0; - } - set ADV_QSK2,0; //Clear var - return; +//===== eAthena Script ======================================= +//= Global Functions +//===== By: ================================================== +//= Lupus, kobra_k88 +//===== Current Version: ===================================== +//= 2.08 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= +//===== Additional Comments: ================================= +//= 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 +//= 1.3b a fix, due to const.txt change [Lupus] +//= 1.4 Added Is_Taekwon_Class: Taekwondo, Star Knight(Gladiator),Soul Linker [Lupus] +//= 1.5 Added clear of Bard Quest variables. 1.5a updated [Lupus] +//= 1.6 Added F_RandMes, F_SexMes, F_Hi, F_Bye functions [Lupus] +//= Moved here useful function 'getJobName' +//= 1.7 Added "F_ItemName" function, added a great sample for "F_ItemName" +//= 1.8 Added Job Vars clear for Extended classes: TK,SL,SG [Lupus] +//= 1.9 Added "F_ClearGarbage" func that clears outdated, wasted variables [Lupus] +//= 1.91 Added "F_SaveQuestSkills","F_Load?Skills" functions [Lupus] +//= 2.0 Fixed F_Save/LoadQuestSkills functions. Had to split in into 2 vars [Lupus] +//= 2.01 Added $talk to F_ClearGarbage [Evera] +//= 2.02 Added $dtsglobalelig and $dts|(1<<6) to F_ClearGarbage [Evera] +//= 2.03 Added Gunslinger vars to F_ClearJobVar [Lupus] +//= 2.04 Added dtseligible 2 (becomes MISC_QUEST|128) to F_ClearGarbage [Evera] +//= 2.05 Book of Devil -> MISC_QUEST|256, clear other Niflheim garbage vars [Lupus] +//= +more garbage clean +//= 2.06 Pass to Bio-Lab -> MISC_QUEST|512 [Lupus] +//= 2.07 Added TK_Q variable clear [Lupus] +//- 2.08 Added NINJ_Q variable clear [Lupus] +//============================================================ + + +////////////////////////////////////////////////////////////////////////////////// +// Function that clears job quest variables +////////////////////////////////////////////////////////////////////////////////// + +function script F_ClearJobVar { + // Misc --------------------------------- + set JBLVL,0; + set FIRSTAID,0; + set PLAYDEAD,0; + set got_bandage,0; + set got_novnametag,0; + // First Class Jobs --------------------- + set job_acolyte_q,0; set job_acolyte_q2,0; + set job_archer_q,0; + set job_magician_q,0; + set job_merchant_q,0; set job_merchant_q2,0; set job_merchant_q3,0; + set job_sword_q,0; set SWTEST, 0; + set job_thief_q,0; + // Super Novice + set SUPNOV_Q,0; + // 2-1 Jobs ------------------------------ + set ASSIN_Q,0; set ASSIN_Q2,0; + set BSMITH_Q,0; set BSMITH_Q2,0; + set HNTR_Q,0; set HNTR_Q2,0; + set KNIGHT_Q,0; set KNIGHT_Q2,0; + set PRIEST_Q,0; set PRIEST_Q2,0; set PRIEST_Q3,0; + set WIZ_Q,0; set WIZ_Q2,0; + // 2-2 Jobs ------------------------------ + set ROGUE_Q,0; set ROGUE_Q2,0; + set ALCH_Q,0; set ALCH_Q2,0; + set CRUS_Q,0; + set MONK_Q,0; set JOB_MONK_C,0; + set SAGE_Q,0; set SAGE_Q2,0; + set DANC_Q,0; + set BARD_Q,0; + // Extended Classes + set TAEK_Q,0; set TK_Q,0; + set STGL_Q,0; + set SOUL_Q,0; + set GUNS_Q,0; + set NINJ_Q,0; + return; +} + +function script F_ClearGarbage { + // Clear outdated global VARS + //DTS Vote System + if($dtsglobalelig) set $dtsglobalelig,0; + if($dts&(1<<6)) set $dts,$dts&~(1<<6); + //Cube Room + if(hzdun) { + set MISC_QUEST,MISC_QUEST|512; + set num1,0; set num2,0; set num3,0; set num4,0; set num5,0; + set num6,0; set num7,0; set num8,0; set num9,0; + set hzdun,0; set cubekey,0; set piciburn,0; + } + //Airship + if($lengths){ + cleararray $textstringsa$[0],"",getarraysize($textstringsa$); + cleararray $textstringsb$[0],"",getarraysize($textstringsb$); + cleararray $textstringsc$[0],"",getarraysize($textstringsc$); + cleararray $compstring$[0],"",getarraysize($compstring$); + cleararray $lengths[0],0,getarraysize($lengths); + } + //Shinkskas Quest garbage + if(Shinokas_Quest > 7){ + set ein_scientist,0; + set ein_stuff,0; + } + return; +} + +////////////////////////////////////////////////////////////////////////////////// +// Used in REBIRTH scripts +// Class = Internal Class ID +// BaseJob = Base Job (0..23) +// Upper : 0 - Default, 1 - Advanced, 2 - Baby +////////////////////////////////////////////////////////////////////////////////// + +function script Job_Change { + if (Upper<2) + jobchange getarg(0); // Common jobchange + else + jobchange getarg(0) + Job_Baby; //Change Job For Baby Class + logmes "CLASS CHANGE: " +strcharinfo(0)+ " become a "+jobname(Class); + return; +} + + +////////////////////////////////////////////////////////////////////////////////// +// FOT BACKWISE COMPATIBILITY: Functions used to check a players job class +// HOW TO USE: +// i.e. We need all holy classes but monks +// if ( callfunc("Is_Holy_Class") && callfunc("Is_Monk")==0 ) goto L_Start; +////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Aco,Monk,Priest,Aco High,High Priest, +// Champion, 0 otherwise +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Holy_Class { + return ( BaseJob==Job_Acolyte || BaseJob==Job_Priest || BaseJob==Job_Monk ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Archer,Hunter,Bard,Dancer,Archer High,Sniper, +// Clown,Gypsy, 0 otherwise +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Bow_Class { + return ( BaseJob==Job_Archer || BaseJob==Job_Hunter || BaseJob==Job_Bard || BaseJob==Job_Dancer ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Mage,Wizard,Sage,Mage High,High Wizard, +// Professor, 0 otherwise +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Magic_Class { + return ( BaseJob==Job_Mage || BaseJob==Job_Wizard || BaseJob==Job_Sage ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Merc,Blacksmith,Alchemist,Merc High, +// Whitesmith,Creator, 0 otherwise +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Merc_Class { + return ( BaseJob==Job_Merchant || BaseJob==Job_Blacksmith || BaseJob==Job_Alchem ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Thief,Assassin,Rogue,Thief High, Assassin Cross +// Stalker, 0 otherwise +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Thief_Class { + return ( BaseJob==Job_Thief || BaseJob==Job_Assassin || BaseJob==Job_Rogue ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Swordy,Knight,Crusader,Swordy High, +// Lord Knight,Paladin, 0 otherwise +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Sword_Class { + return ( BaseJob==Job_Swordman || BaseJob==Job_Knight || BaseJob==Job_Knight2 || BaseJob==Job_Crusader || BaseJob==Job_Crusader2 ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// returns 1 if the player is either Taekwon, Star Gladiator,Soul Linker, 0 otherwise +// these classes can't be adopted nor reborn () +////////////////////////////////////////////////////////////////////////////////// + +function script Is_Taekwon_Class { + return ( Class==Job_Taekwon || Class==Job_Star_Gladiator || Class==Job_Star_Gladiator2 || Class==Job_Soul_Linker ); +} + + +////////////////////////////////////////////////////////////////////////////////// +// Functions used to spiff up dialoges [Lupus] +////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_RandMes" +////////////////////////////////////////////////////////////////////////////////// +//returns random string +// Example: check F_Bye or F_Hi functions +// READ AND THINK: You can use it to pick a random number form list: +// set @itemIDfromList, callfunc("F_RandMes",8,1129,1222,1163,1357,1360,1522,1811,1410); + +function script F_RandMes { + return getarg(rand(1,getarg(0))); +} + + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_Sex" +////////////////////////////////////////////////////////////////////////////////// +//returns 1st string if female, 2nd string otherwise +// Example: mes callfunc("F_Sex","What a beautiful lady!","What a handsom man!"); + +function script F_SexMes { + return getarg(Sex); +} + + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_Hi" +////////////////////////////////////////////////////////////////////////////////// +//returns random HELLO message + +function script F_Hi { + return callfunc("F_RandMes",5,"Hi!","Hello!","Good day!","How are you?","Hello there."); +} + + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_Bye" +////////////////////////////////////////////////////////////////////////////////// +//returns random BYE message + +function script F_Bye { + return callfunc("F_RandMes",6,"Bye. See you again.","Later.","Goodbye.","Good luck!","Have a nice day!","Byebye!!!"); +} + + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_ItemName" +////////////////////////////////////////////////////////////////////////////////// +// Returns expanded item name string +//Argumentss +// 0 - Item ID +// 1 - Element N (0=none,1=Ice,2=Earth,3=Fire,4=Wind) +// 2 - VVS meter 0..3 +// 3 - Refine +// Example: mes "Show me your "+callfunc("F_ItemName",1201,1,2,5)+"..."; +// is equal to: mes "Show me your ^000090 +5 VVS Fire Knife ^000000..." + +function script F_ItemName { + set @t$,"^000090"; + if(getarg(3)) set @t$,@t$+"+"+getarg(3)+" "; + if(getarg(2)==1) set @t$,@t$+"VS "; + if(getarg(2)==2) set @t$,@t$+"VVS "; + if(getarg(2)==3) set @t$,@t$+"VVVS "; + if(getarg(2)>3) set @t$,@t$+getarg(2)+"xVS "; + if(getarg(1)==1) set @t$,@t$+"Ice "; + if(getarg(1)==2) set @t$,@t$+"Earth "; + if(getarg(1)==3) set @t$,@t$+"Fire "; + if(getarg(1)==4) set @t$,@t$+"Wind "; + if(getarg(1)>4) set @t$,@t$+"Strange "; + return @t$+getitemname(getarg(0))+"^000000"; +} + + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "getJobName" // +// [Usage] : callfunc("getJobName",Class); // +////////////////////////////////////////////////////////////////////////////////// + +function script getJobName { + switch(getarg(0)){ + case Job_Novice: + return "Novice"; + case Job_Swordman: + return "Swordman"; + case Job_Mage: + return "Magician"; + case Job_Archer: + return "Archer"; + case Job_Acolyte: + return "Acolyte"; + case Job_Merchant: + return "Merchant"; + case Job_Thief: + return "Thief"; + case Job_Knight: + case Job_Knight2: + return "Knight"; + case Job_Priest: + return "Priest"; + case Job_Wizard: + return "Wizard"; + case Job_Blacksmith: + return "Blacksmith"; + case Job_Hunter: + return "Hunter"; + case Job_Assassin: + return "Assassin"; + case Job_Crusader: + case Job_Crusader2: + return "Crusader"; + case Job_Monk: + return "Monk"; + case Job_Sage: + return "Sage"; + case Job_Rogue: + return "Rogue"; + case Job_Alchem: + return "Alchemist"; + case Job_Bard: + return "Bard"; + case Job_Dancer: + return "Dancer"; + case Job_SuperNovice: + return "Super Novice"; + case Job_Gunslinger: + return "Gunsligner"; + case Job_Ninja: + return "Ninja"; + case Job_Xmas: + return "Xmas"; + case Job_Novice_High: + return "Novice High"; + case Job_Swordman_High: + return "Swordman High"; + case Job_Mage_High: + return "Magician High"; + case Job_Archer_High: + return "Archer High"; + case Job_Acolyte_High: + return "Acolyte High"; + case Job_Merchant_High: + return "Merchant High"; + case Job_Thief_High: + return "Thief High"; + case Job_Lord_Knight: + case Job_Lord_Knight2: + return "Lord Knight"; + case Job_High_Priest: + return "High Priest"; + case Job_High_Wizard: + return "High Wizard"; + case Job_Whitesmith: + return "Whitesmith"; + case Job_Sniper: + return "Sniper"; + case Job_Assassin_Cross: + return "Assassin Cross"; + case Job_Paladin: + case Job_Paladin2: + return "Paladin"; + case Job_Champion: + return "Champion"; + case Job_Professor: + return "Professor"; + case Job_Stalker: + return "Stalker"; + case Job_Creator: + return "Creator"; + case Job_Clown: + return "Clown"; + case Job_Gypsy: + return "Gypsy"; + case Job_Baby: + return "Baby"; + case Job_Baby_Swordman: + return "Baby Swordman"; + case Job_Baby_Mage: + return "Baby Magician"; + case Job_Baby_Archer: + return "Baby Archer"; + case Job_Baby_Acolyte: + return "Baby Acolyte"; + case Job_Baby_Merchant: + return "Baby Merchant"; + case Job_Baby_Thief: + return "Baby Thief"; + case Job_Baby_Knight: + case Job_Baby_Knight2: + return "Baby Knight"; + case Job_Baby_Priest: + return "Baby Priest"; + case Job_Baby_Wizard: + return "Baby Wizard"; + case Job_Baby_Blacksmith: + return "Baby Blacksmith"; + case Job_Baby_Hunter: + return "Baby Hunter"; + case Job_Baby_Assassin: + return "Baby Assassin"; + case Job_Baby_Crusader: + case Job_Baby_Crusader2: + return "Baby Crusader"; + case Job_Baby_Monk: + return "Baby Monk"; + case Job_Baby_Sage: + return "Baby Sage"; + case Job_Baby_Rogue: + return "Baby Rogue"; + case Job_Baby_Alchem: + return "Baby Alchemist"; + case Job_Baby_Bard: + return "Baby Bard"; + case Job_Baby_Dancer: + return "Baby Dancer"; + case Job_Super_Baby: + return "Super Baby"; + case Job_Taekwon: + if(Sex == 0) + return "Taekwon Girl"; + else + return "Taekwon Boy"; + case Job_Star_Gladiator: + case Job_Star_Gladiator2: + return "Star Gladiator"; + case Job_Soul_Linker: + return "Soul Linker"; + case Job_Ninja: + return "Ninja"; + case Job_Gunslinger: + return "Gunslinger"; + case Job_Xmas: + return "Christmas"; + case Option_Wedding: + if(Sex == 0) + return "Bride"; + else + return "Bridegroom"; + default: + return "omghaxor"; + } +} + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_SaveQuestSkills": Store learnt quest skills +////////////////////////////////////////////////////////////////////////////////// +function script F_SaveQuestSkills { + set ADV_QSK,0; set ADV_QSK2,0; + //1st classes quest skills + for(set @i, 0; @i < 14; set @i, @i + 1){ + if(getskilllv(144+@i)) set ADV_QSK,ADV_QSK|pow(2,@i); + } + //2nd classes quest skills + for(set @i, 0; @i < 19; set @i, @i + 1){ + if(getskilllv(1001+@i)) set ADV_QSK2,ADV_QSK2|pow(2,@i); + } + return; +} + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_Load1Skills": Restore learnt 1st class quest skills +////////////////////////////////////////////////////////////////////////////////// +function script F_Load1Skills { + //1st classes quest skills + for(set @i, 0; @i < 14; set @i, @i + 1){ + if(ADV_QSK|pow(2,@i) == ADV_QSK) skill 144+@i,1,0; + } + set ADV_QSK,0; //Clear var + return; +} + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_Load2Skills": Restore learnt 2nd class quest skills +////////////////////////////////////////////////////////////////////////////////// +function script F_Load2Skills { + //2nd classes quest skills + for(set @i, 0; @i < 19; set @i, @i + 1){ + if(ADV_QSK2|pow(2,@i) == ADV_QSK2) skill 1001+@i,1,0; + } + set ADV_QSK2,0; //Clear var + return; } \ No newline at end of file -- cgit v1.2.3-60-g2f50