root/npc/custom/eAAC_Scripts/kafraExpress/global_functionsKE.txt

Revision 1, 8.1 kB (checked in by jinshiro, 17 years ago)
Line 
1//===== eAthena Script =======================================
2//= Global functions
3//===== By: ==================================================
4//= Skotlex
5//===== Current Version: =====================================
6//= 1.5
7//===== Compatible With: =====================================
8//= eAthena SVN R3424+, RO Ep6+
9//===== Description: =========================================
10//= Global Functions
11//=
12//===== Additional Comments: =================================
13//= GF_getJobName= function for getting a job's name
14//= GF_getJobName2= gets a jobs name modified by Type (see below)
15//= GF_getJobId=  gets a jobs number modified by Type (see below)
16//= GF_getJobLevel= identifies novices/1st/2nd among classes
17//= GF_getJobType= identifies normal/advanced/babies classes
18//= - GF_getJobClass= identifies job class (swordie, mage, etc)
19//============================================================
20
21function        script  GF_getJobName   {
22
23        switch (getarg(0)) {
24
25        case Job_Novice:
26                return "novice";
27        case Job_Acolyte:
28                return "acolyte";
29        case Job_Archer:
30                return "archer";
31        case Job_Mage:
32                return "mage";
33        case Job_Merchant:
34                return "merchant";
35        case Job_Swordman:
36                return "swordsman";
37        case Job_Thief:
38                return "thief";
39        case Job_Taekwon:
40                return "taekwon kid";
41        case Job_SuperNovice:
42                return "super novice";
43               
44        case Job_Hunter:
45                return "hunter";
46        case Job_Dancer:
47                return "dancer";
48        case Job_Bard:
49                return "bard";
50        case Job_Priest:
51                return "priest";
52        case Job_Monk:
53                return "monk";
54        case Job_Wizard:
55                return "wizard";
56        case Job_Sage:
57                return "sage";
58        case Job_BlackSmith:
59                return "blacksmith";
60        case Job_Alchemist:
61                return "alchemist";
62        case Job_Knight:
63        case Job_Knight2:
64                return "knight";
65        case Job_Crusader:
66        case Job_Crusader2:
67                return "crusader";
68        case Job_Assassin:
69                return "assassin";
70        case Job_Rogue:
71                return "rogue";
72        case Job_Star_Gladiator:
73        case Job_Star_Gladiator2:
74                return "star gladiator";
75        case Job_Soul_Linker:
76                return "soul linker";
77               
78        case Job_Novice_High:
79                return "high novice";
80        case Job_Acolyte_High:
81                return "high acolyte";
82        case Job_Archer_High:
83                return "high archer";
84        case Job_Mage_High:
85                return "high mage";
86        case Job_Merchant_High:
87                return "high merchant";
88        case Job_Swordman_High:
89                return "high swordsman";
90        case Job_Thief_High:
91                return "high thief";
92               
93        case Job_Assassin_Cross:
94                return "assassin cross";
95        case Job_Champion:
96                return "champion";
97        case Job_Clown:
98                return "minstrel";
99        case Job_Creator:
100                return "biochemist";
101        case Job_Gypsy:
102                return "gypsy";
103        case Job_High_Priest:
104                return "high priest";
105        case Job_High_Wizard:
106                return "high wizard";
107        case Job_Lord_Knight:
108        case Job_Lord_Knight2:
109                return "lord knight";
110        case Job_Paladin:
111        case Job_Paladin2:
112                return "paladin";
113        case Job_Professor:
114                return "professor";
115        case Job_Sniper:
116                return "sniper";
117        case Job_Stalker:
118                return "stalker";
119        case Job_Whitesmith:
120                return "whitesmith";
121
122        case Job_Baby:
123                return "baby";
124        case Job_Baby_Acolyte:
125                return "baby acolyte";
126        case Job_Baby_Archer:
127                return "baby archer";
128        case Job_Baby_Mage:
129                return "baby mage";
130        case Job_Baby_Merchant:
131                return "baby merchant";
132        case Job_Baby_Swordman:
133                return "baby swordsman";
134        case Job_Baby_Thief:
135                return "baby thief";
136        case Job_Super_Baby:
137                return "super baby";
138
139        case Job_Baby_Hunter:
140                return "baby hunter";
141        case Job_Baby_Dancer:
142                return "baby dancer";
143        case Job_Baby_Bard:
144                return "baby bard";
145        case Job_Baby_Priest:
146                return "baby priest";
147        case Job_Baby_Monk:
148                return "baby monk";
149        case Job_Baby_Wizard:
150                return "baby wizard";
151        case Job_Baby_Sage:
152                return "baby sage";
153        case Job_Baby_BlackSmith:
154                return "baby blacksmith";
155        case Job_Baby_Alchemist:
156                return "baby alchemist";
157        case Job_Baby_Knight:
158        case Job_Baby_Knight2:
159                return "baby knight";
160        case Job_Baby_Crusader:
161        case Job_Baby_Crusader2:
162                return "baby crusader";
163        case Job_Baby_Assassin:
164                return "baby assassin";
165        case Job_Baby_Rogue:
166                return "baby rogue";
167        default:
168                return "unknown";
169        }
170
171}
172
173//Returns job name using two params: JobId and Type
174function        script  GF_getJobName2  {
175        set @classId, callfunc("GF_getJobId", getarg(0), getarg(1));
176        return callfunc("GF_getJobName", @classId);
177}
178
179//Returns a Job's ID modified by their Type
180function        script  GF_getJobId     {
181        set @classId, getarg(0);
182        set @type, getarg(1);
183
184        if (@classId == Job_SuperNovice || @classId == Job_Super_Baby) {
185                switch (@type) {
186                case 0:
187                        return Job_SuperNovice;
188                case 2:
189                        return Job_Super_Baby;
190                default:
191                        return @classId;
192                }
193        }
194        if (@classId >= Job_Taekwon && @classId <= Job_Soul_Linker) {
195                //Currently has no alternates.
196                return @classId;       
197        }
198        if (@classId >= Job_Novice_High && @classId <= Job_Paladin2)
199                set @classId, @classId -Job_Novice_High;
200        else   
201        if (@classId >= Job_Baby && @classId <= Job_Super_Baby)
202                set @classId, @classId -Job_Baby;
203               
204        if (@type == 1)
205                set @classId, @classId +Job_Novice_High;
206               
207        if (@type == 2)
208                set @classId, @classId +Job_Baby;
209
210        return @classId;
211}
212
213//Returns the type of class:
214//0= Novice, 1= First Class, 2= Second Class, 3= Super Novice
215//4= Wedding
216function        script  GF_getJobLevel  {
217
218        set @classId, getarg(0);
219       
220        if (@classId >= Job_Novice_High && @classId <= Job_Paladin2)
221                set @classId, @classId -Job_Novice_High;
222
223        if (@classId >= Job_Baby && @classId <= Job_Baby_Crusader2)
224                set @classId, @classId -Job_Baby;
225       
226        if(@classId == Job_Novice) {
227                return 0;
228        }
229        if((@classId >= Job_Swordman && @classId <= Job_Thief)
230                || @classId == Job_Taekwon) {
231                return 1;
232        }
233        if ((@classId >= Job_Knight && @classId <= Job_Crusader2)
234        || (@classId >= Job_Star_Gladiator && @classId <= Job_Soul_Linker)) {
235                return 2;
236        }
237       
238        if(@classId == Job_SuperNovice || @classId == Job_Super_Baby) {
239                return 3;
240        }
241        if(@classId == 22) {
242                return 4;
243        }
244        return -1;
245}
246
247//Returns the type of class, based on path:
248//0= Normal Jobs, 1= Upper Jobs, 2= Baby Jobs
249//Works the same as Upper, except you can pass any job id to get it's upper value
250function        script  GF_getJobType   {
251        set @classId, getarg(0);
252       
253        if ((@classId >= Job_Novice && @classId <= Job_SuperNovice)
254                || (@classId >= Job_Taekwon && @classId <= Job_Soul_Linker)) {
255                return 0;
256        }
257        if (@classId >= Job_Novice_High && @classId <= Job_Paladin2) {
258                return 1;
259        }
260        if (@classId >= Job_Baby && @classId <= Job_Super_Baby) {
261                return 2;
262        }
263        return -1;
264}
265//Returns the base class of the given job, return values are:
266//Job_Novice (Novice, Baby Novice, Super Novice
267//Job_Acolyte (Aco, Priest, Monk +High/Baby variations)
268//Job_Archer (Archer, Sniper, Bard, Dancer +High/Baby variations)
269//Job_Mage (Mage, Wizard, Sage +High/Baby variations)
270//Job_Swordman (Swordsman, Knight, Crusader +High/Baby variations)
271//Job_Thief (Thief, Assassin, Rogue +High/Baby variations)
272//-1 : others (when wearing Tux/Wedding dress, for example)
273//Works the same as baseClass, except you pass the class which you want
274//examined.
275function        script  GF_getJobClass  {
276        set @classId, getarg(0);
277       
278        if (@classId >= Job_Novice_High && @classId <= Job_Paladin2)
279                set @classId, @classId -Job_Novice_High;
280
281        if (@classId >= Job_Baby && @classId <= Job_Baby_Crusader2)
282                set @classId, @classId -Job_Baby;
283       
284        switch (@classId) {
285        case Job_Novice:
286        case Job_SuperNovice:
287        case Job_Super_Baby:
288                return Job_Novice;
289               
290        case Job_Acolyte:
291        case Job_Priest:
292        case Job_Monk:
293                return Job_Acolyte;
294               
295        case Job_Archer:
296        case Job_Hunter:
297        case Job_Bard:
298        case Job_Dancer:
299                return Job_Archer;
300       
301        case Job_Mage:
302        case Job_Wizard:
303        case Job_Sage:
304                return Job_Mage;
305
306        case Job_Merchant:
307        case Job_BlackSmith:
308        case Job_Alchemist:
309                return Job_Merchant;
310       
311        case Job_Swordman:
312        case Job_Knight:
313        case Job_Knight2:
314        case Job_Paladin:
315        case Job_Paladin2:
316                return Job_Swordman;
317               
318        case Job_Thief:
319        case Job_Assassin:
320        case Job_Rogue:
321                return Job_Thief;
322
323        case Job_Taekwon:
324        case Job_Star_Gladiator:
325        case Job_Star_Gladiator2:
326        case Job_Soul_Linker:
327                return Job_Taekwon;
328
329        default:
330                return -1;
331        }
332}
Note: See TracBrowser for help on using the browser.