[1] | 1 | //===== eAthena Script ======================================= |
---|
| 2 | //= Global Functions |
---|
| 3 | //===== By: ================================================== |
---|
| 4 | //= Lupus, kobra_k88 |
---|
| 5 | //===== Current Version: ===================================== |
---|
| 6 | //= 2.13 |
---|
| 7 | //===== Compatible With: ===================================== |
---|
| 8 | //= eAthena 1.0 |
---|
| 9 | //===== Description: ========================================= |
---|
| 10 | //= <Description> |
---|
| 11 | //===== Additional Comments: ================================= |
---|
| 12 | //= Added F_ClearJobVar - on getting a new job it clears all Job Quest variables |
---|
| 13 | //= Removed individual job check functions as they were redundant [kobra_k88] |
---|
| 14 | //= 1.3 Added Job Change Function for Baby/Normal Classes |
---|
| 15 | //= 1.3b a fix, due to const.txt change [Lupus] |
---|
| 16 | //= 1.4 Added Is_Taekwon_Class: Taekwondo, Star Knight(Gladiator),Soul Linker [Lupus] |
---|
| 17 | //= 1.5 Added clear of Bard Quest variables. 1.5a updated [Lupus] |
---|
| 18 | //= 1.6 Added F_RandMes, F_SexMes, F_Hi, F_Bye functions [Lupus] |
---|
| 19 | //= Moved here useful function 'getJobName' |
---|
| 20 | //= 1.7 Added "F_ItemName" function, added a great sample for "F_ItemName" |
---|
| 21 | //= 1.8 Added Job Vars clear for Extended classes: TK,SL,SG [Lupus] |
---|
| 22 | //= 1.9 Added "F_ClearGarbage" func that clears outdated, wasted variables [Lupus] |
---|
| 23 | //= 1.91 Added "F_SaveQuestSkills","F_Load?Skills" functions [Lupus] |
---|
| 24 | //= 2.0 Fixed F_Save/LoadQuestSkills functions. Had to split in into 2 vars [Lupus] |
---|
| 25 | //= 2.01 Added $talk to F_ClearGarbage [Evera] |
---|
| 26 | //= 2.02 Added $dtsglobalelig and $dts|(1<<6) to F_ClearGarbage [Evera] |
---|
| 27 | //= 2.03 Added Gunslinger vars to F_ClearJobVar [Lupus] |
---|
| 28 | //= 2.04 Added dtseligible 2 (becomes MISC_QUEST|128) to F_ClearGarbage [Evera] |
---|
| 29 | //= 2.05 Book of Devil -> MISC_QUEST|256, clear other Niflheim garbage vars [Lupus] |
---|
| 30 | //= +more garbage clean |
---|
| 31 | //= 2.06 Pass to Bio-Lab -> MISC_QUEST|512 [Lupus] |
---|
| 32 | //= 2.07 Added TK_Q variable clear. 2.08 Added NINJ_Q variable clear [Lupus] |
---|
| 33 | //= 2.09 Cleared F_ClearGarbage [Lupus] |
---|
| 34 | //= 2.10 Added F_CheckMaxCount to check count of carrid items. [L0ne_w0lf] |
---|
| 35 | //= 2.10a Removed function F_CheckMaxCount. Not needed. [L0ne_W0lf] |
---|
| 36 | //= 2.11 Updated function Job_Change to jobchange based on Upper value. [Paradox924X] |
---|
| 37 | //= 2.12 Added more unused vars to F_ClearGarbage [Lupus] |
---|
| 38 | //= 2.13 Added more unused vars to F_ClearGarbage [Lupus] |
---|
| 39 | //= 2,14 Added old novice variables to F_ClearGarbage. [L0ne_W0lf] |
---|
| 40 | //============================================================ |
---|
| 41 | |
---|
| 42 | |
---|
| 43 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 44 | // Function that clears job quest variables |
---|
| 45 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 46 | |
---|
| 47 | function script F_ClearJobVar { |
---|
| 48 | // Misc --------------------------------- |
---|
| 49 | set JBLVL,0; |
---|
| 50 | set FIRSTAID,0; |
---|
| 51 | set PLAYDEAD,0; |
---|
| 52 | set got_bandage,0; |
---|
| 53 | set got_novnametag,0; |
---|
| 54 | // First Class Jobs --------------------- |
---|
| 55 | set job_acolyte_q,0; set job_acolyte_q2,0; |
---|
| 56 | set job_archer_q,0; |
---|
| 57 | set job_magician_q,0; |
---|
| 58 | set job_merchant_q,0; set job_merchant_q2,0; set job_merchant_q3,0; |
---|
| 59 | set job_sword_q,0; set SWTEST, 0; |
---|
| 60 | set job_thief_q,0; |
---|
| 61 | // Super Novice |
---|
| 62 | set SUPNOV_Q,0; |
---|
| 63 | // 2-1 Jobs ------------------------------ |
---|
| 64 | set ASSIN_Q,0; set ASSIN_Q2,0; set ASSIN_Q3,0; |
---|
| 65 | set BSMITH_Q,0; set BSMITH_Q2,0; |
---|
| 66 | set HNTR_Q,0; set HNTR_Q2,0; |
---|
| 67 | set KNIGHT_Q,0; set KNIGHT_Q2,0; |
---|
| 68 | set PRIEST_Q,0; set PRIEST_Q2,0; set PRIEST_Q3,0; |
---|
| 69 | set WIZ_Q,0; set WIZ_Q2,0; |
---|
| 70 | // 2-2 Jobs ------------------------------ |
---|
| 71 | set ROGUE_Q,0; set ROGUE_Q2,0; |
---|
| 72 | set ALCH_Q,0; set ALCH_Q2,0; |
---|
| 73 | set CRUS_Q,0; |
---|
| 74 | set MONK_Q,0; set JOB_MONK_C,0; |
---|
| 75 | set SAGE_Q,0; set SAGE_Q2,0; |
---|
| 76 | set DANC_Q,0; |
---|
| 77 | set BARD_Q,0; |
---|
| 78 | // Extended Classes |
---|
| 79 | set TAEK_Q,0; set TK_Q,0; |
---|
| 80 | set STGL_Q,0; |
---|
| 81 | set SOUL_Q,0; |
---|
| 82 | set GUNS_Q,0; |
---|
| 83 | set NINJ_Q,0; |
---|
| 84 | return; |
---|
| 85 | } |
---|
| 86 | |
---|
| 87 | function script F_ClearGarbage { |
---|
| 88 | // Clear outdated global VARS |
---|
| 89 | //Clear TURTLE var if the Turtle Islans Quest is already done |
---|
| 90 | if(TURTLE==20) set MISC_QUEST,MISC_QUEST | 65536; |
---|
| 91 | if(MISC_QUEST & 65536) set TURTLE,0; //now clear the var if the quest is over |
---|
| 92 | //Clear previously saved Quest Skills (now it isn't used) |
---|
| 93 | set ADV_QSK,0; |
---|
| 94 | set ADV_QSK2,0; |
---|
| 95 | //Old Seset Skill Event used to use RES_SKILL var |
---|
| 96 | set RES_SKILL,0; |
---|
| 97 | //Here you put outdated variables from your outdated EVENTS |
---|
| 98 | //e.g. Is XMAS done? Add the EVENT var clearing code here. |
---|
| 99 | |
---|
| 100 | //due to bugs in BS quest: |
---|
| 101 | set wizard_m2,0; |
---|
| 102 | |
---|
| 103 | // Old Novice Ground Variables. |
---|
| 104 | set NEW_MES_FLAG0,0; |
---|
| 105 | set NEW_MES_FLAG1,0; |
---|
| 106 | set NEW_MES_FLAG2,0; |
---|
| 107 | set NEW_MES_FLAG3,0; |
---|
| 108 | set NEW_MES_FLAG4,0; |
---|
| 109 | set NEW_MES_FLAG5,0; |
---|
| 110 | set NEW_LVUP0,0; |
---|
| 111 | set NEW_LVUP1,0; |
---|
| 112 | set NEW_JOBLVUP,0; |
---|
| 113 | |
---|
| 114 | return; |
---|
| 115 | } |
---|
| 116 | |
---|
| 117 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 118 | // Used in REBIRTH scripts |
---|
| 119 | // Class = Internal Class ID |
---|
| 120 | // BaseJob = Base Job (0..23) |
---|
| 121 | // Upper : 0 - Default, 1 - Advanced, 2 - Baby |
---|
| 122 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 123 | |
---|
| 124 | function script Job_Change { |
---|
| 125 | jobchange getarg(0),Upper; //Jobchange based on Upper |
---|
| 126 | logmes "CLASS CHANGE: " +strcharinfo(0)+ " become a "+jobname(Class); |
---|
| 127 | return; |
---|
| 128 | } |
---|
| 129 | |
---|
| 130 | |
---|
| 131 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 132 | // Functions used to spiff up dialoges [Lupus] |
---|
| 133 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 134 | |
---|
| 135 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 136 | // *** Function "F_RandMes" |
---|
| 137 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 138 | //returns random string |
---|
| 139 | // Example: check F_Bye or F_Hi functions |
---|
| 140 | // READ AND THINK: You can use it to pick a random number form list: |
---|
| 141 | // set @itemIDfromList, callfunc("F_RandMes",8,1129,1222,1163,1357,1360,1522,1811,1410); |
---|
| 142 | |
---|
| 143 | function script F_RandMes { |
---|
| 144 | return getarg(rand(1,getarg(0))); |
---|
| 145 | } |
---|
| 146 | |
---|
| 147 | |
---|
| 148 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 149 | // *** Function "F_Sex" |
---|
| 150 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 151 | //returns 1st string if female, 2nd string otherwise |
---|
| 152 | // Example: mes callfunc("F_Sex","What a beautiful lady!","What a handsome man!"); |
---|
| 153 | |
---|
| 154 | function script F_SexMes { |
---|
| 155 | return getarg(Sex); |
---|
| 156 | } |
---|
| 157 | |
---|
| 158 | |
---|
| 159 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 160 | // *** Function "F_Hi" |
---|
| 161 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 162 | //returns random HELLO message |
---|
| 163 | |
---|
| 164 | function script F_Hi { |
---|
| 165 | return callfunc("F_RandMes",5,"Hi!","Hello!","Good day!","How are you?","Hello there."); |
---|
| 166 | } |
---|
| 167 | |
---|
| 168 | |
---|
| 169 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 170 | // *** Function "F_Bye" |
---|
| 171 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 172 | //returns random BYE message |
---|
| 173 | |
---|
| 174 | function script F_Bye { |
---|
| 175 | return callfunc("F_RandMes",6,"Bye. See you again.","Later.","Goodbye.","Good luck!","Have a nice day!","Byebye!!!"); |
---|
| 176 | } |
---|
| 177 | |
---|
| 178 | |
---|
| 179 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 180 | // *** Function "F_ItemName" |
---|
| 181 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 182 | // Returns expanded item name string |
---|
| 183 | //Argumentss |
---|
| 184 | // 0 - Item ID |
---|
| 185 | // 1 - Element N (0=none,1=Ice,2=Earth,3=Fire,4=Wind) |
---|
| 186 | // 2 - VVS meter 0..3 |
---|
| 187 | // 3 - Refine |
---|
| 188 | // Example: mes "Show me your "+callfunc("F_ItemName",1201,1,2,5)+"..."; |
---|
| 189 | // is equal to: mes "Show me your ^000090 +5 VVS Fire Knife ^000000..." |
---|
| 190 | |
---|
| 191 | function script F_ItemName { |
---|
| 192 | set @t$,"^000090"; |
---|
| 193 | if(getarg(3)) set @t$,@t$+"+"+getarg(3)+" "; |
---|
| 194 | if(getarg(2)==1) set @t$,@t$+"VS "; |
---|
| 195 | if(getarg(2)==2) set @t$,@t$+"VVS "; |
---|
| 196 | if(getarg(2)==3) set @t$,@t$+"VVVS "; |
---|
| 197 | if(getarg(2)>3) set @t$,@t$+getarg(2)+"xVS "; |
---|
| 198 | if(getarg(1)==1) set @t$,@t$+"Ice "; |
---|
| 199 | if(getarg(1)==2) set @t$,@t$+"Earth "; |
---|
| 200 | if(getarg(1)==3) set @t$,@t$+"Fire "; |
---|
| 201 | if(getarg(1)==4) set @t$,@t$+"Wind "; |
---|
| 202 | if(getarg(1)>4) set @t$,@t$+"Strange "; |
---|
| 203 | return @t$+getitemname(getarg(0))+"^000000"; |
---|
| 204 | } |
---|
| 205 | |
---|
| 206 | |
---|
| 207 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 208 | // *** Function "getJobName" // |
---|
| 209 | // [Usage] : callfunc("getJobName",Class); // |
---|
| 210 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 211 | |
---|
| 212 | function script getJobName { |
---|
| 213 | return jobname(getarg(0)); |
---|
| 214 | } |
---|
| 215 | |
---|
| 216 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 217 | // *** Function "F_SaveQuestSkills": Store learnt quest skills |
---|
| 218 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 219 | function script F_SaveQuestSkills { |
---|
| 220 | set ADV_QSK,0; set ADV_QSK2,0; |
---|
| 221 | //1st classes quest skills |
---|
| 222 | for(set @i, 0; @i < 14; set @i, @i + 1){ |
---|
| 223 | if(getskilllv(144+@i)) set ADV_QSK,ADV_QSK|pow(2,@i); |
---|
| 224 | } |
---|
| 225 | //2nd classes quest skills |
---|
| 226 | for(set @i, 0; @i < 19; set @i, @i + 1){ |
---|
| 227 | if(getskilllv(1001+@i)) set ADV_QSK2,ADV_QSK2|pow(2,@i); |
---|
| 228 | } |
---|
| 229 | return; |
---|
| 230 | } |
---|
| 231 | |
---|
| 232 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 233 | // *** Function "F_Load1Skills": Restore learnt 1st class quest skills |
---|
| 234 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 235 | function script F_Load1Skills { |
---|
| 236 | //1st classes quest skills |
---|
| 237 | for(set @i, 0; @i < 14; set @i, @i + 1){ |
---|
| 238 | if(ADV_QSK|pow(2,@i) == ADV_QSK) skill 144+@i,1,0; |
---|
| 239 | } |
---|
| 240 | set ADV_QSK,0; //Clear var |
---|
| 241 | return; |
---|
| 242 | } |
---|
| 243 | |
---|
| 244 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 245 | // *** Function "F_Load2Skills": Restore learnt 2nd class quest skills |
---|
| 246 | ////////////////////////////////////////////////////////////////////////////////// |
---|
| 247 | function script F_Load2Skills { |
---|
| 248 | //2nd classes quest skills |
---|
| 249 | for(set @i, 0; @i < 19; set @i, @i + 1){ |
---|
| 250 | if(ADV_QSK2|pow(2,@i) == ADV_QSK2) skill 1001+@i,1,0; |
---|
| 251 | } |
---|
| 252 | set ADV_QSK2,0; //Clear var |
---|
| 253 | return; |
---|
| 254 | } |
---|