root/npc/other/Global_Functions.txt @ 7

Revision 1, 9.5 kB (checked in by jinshiro, 17 years ago)
Line 
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
47function        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
87function        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
124function        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
143function        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
154function        script  F_SexMes        {
155        return getarg(Sex);
156}
157
158
159//////////////////////////////////////////////////////////////////////////////////
160// *** Function "F_Hi"
161//////////////////////////////////////////////////////////////////////////////////
162//returns random HELLO message
163
164function        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
174function        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
191function        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
212function        script  getJobName      {
213        return jobname(getarg(0));
214}
215
216//////////////////////////////////////////////////////////////////////////////////
217// *** Function "F_SaveQuestSkills": Store learnt quest skills
218//////////////////////////////////////////////////////////////////////////////////
219function        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//////////////////////////////////////////////////////////////////////////////////
235function        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//////////////////////////////////////////////////////////////////////////////////
247function        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}
Note: See TracBrowser for help on using the browser.