1 | //===== eAthena Script ======================================= |
---|
2 | //= Cash Shop Functions |
---|
3 | //===== By: ================================================== |
---|
4 | //= L0ne_W0lf |
---|
5 | //===== Current Version: ===================================== |
---|
6 | //= 1.0 |
---|
7 | //===== Compatible With: ===================================== |
---|
8 | //= eAthena SVN |
---|
9 | //===== Description: ========================================= |
---|
10 | //= Used explicitly in the Item Database for Cash shop items |
---|
11 | //= - Kafra Card |
---|
12 | //= - Giant Fly Wing |
---|
13 | //= - Neuralizer |
---|
14 | //= - Dungeon Teleport Scroll |
---|
15 | //===== Additional Comments: ================================= |
---|
16 | //= 1.0 First version. [L0ne_W0lf] |
---|
17 | //= F_CashPartyCall Optimized by Trancid. |
---|
18 | //============================================================ |
---|
19 | |
---|
20 | // Kafra Card |
---|
21 | //============================================================ |
---|
22 | // - Open player's storage. |
---|
23 | // - No arguments. |
---|
24 | function script F_CashStore { |
---|
25 | cutin "kafra_01",2; |
---|
26 | mes "[Kafra Employee]"; |
---|
27 | mes "Welcome to the Kafra Corporation."; |
---|
28 | mes "Here, let me open your Storage for you."; |
---|
29 | close2; |
---|
30 | openstorage; |
---|
31 | cutin "",255; |
---|
32 | return; |
---|
33 | } |
---|
34 | |
---|
35 | |
---|
36 | // Giant Fly Wing |
---|
37 | //============================================================ |
---|
38 | // - Warp party leader to random spot on the map. |
---|
39 | // - Summon Party members on party leader map to that location. |
---|
40 | // - No arguments. |
---|
41 | function script F_CashPartyCall { |
---|
42 | warp "Random",0,0; |
---|
43 | if(getpartyleader(getcharid(1),2) == getcharid(0)) { |
---|
44 | getmapxy .@mapl$, .@xl, .@yl, 0; |
---|
45 | getpartymember getcharid(1); |
---|
46 | set .@partymembercount, $@partymembercount; |
---|
47 | copyarray .@partymembername$[0], $@partymembername$[0], .@partymembercount; |
---|
48 | for(set .@i, 0; .@i < .@partymembercount; set .@i, .@i + 1) |
---|
49 | if(!(getmapxy(.@mapm$, .@xm, .@ym, 0, .@partymembername$[.@i])) && (.@mapm$ == .@mapl$)) |
---|
50 | warpchar .@mapl$, .@xl, .@yl, getcharid(0, .@partymembername$[.@i]); |
---|
51 | } |
---|
52 | return; |
---|
53 | } |
---|
54 | |
---|
55 | // Neuralizer |
---|
56 | //============================================================ |
---|
57 | // - Reset players skills. Weight must be 0, options must be off. |
---|
58 | // - No arguments. |
---|
59 | function script F_CashReset { |
---|
60 | if (Class != Job_Novice) { |
---|
61 | if (Weight < 1) { |
---|
62 | if (checkriding() || checkfalcon() || checkcart()) return; |
---|
63 | else { |
---|
64 | resetskill; |
---|
65 | sc_end SC_ALL; |
---|
66 | } |
---|
67 | } |
---|
68 | } |
---|
69 | return; |
---|
70 | } |
---|
71 | |
---|
72 | // Dungeon Teleport Scroll |
---|
73 | //============================================================ |
---|
74 | // - Warp player to random location of selected dungeon |
---|
75 | // due to lack of information. |
---|
76 | // - No arguments. |
---|
77 | function script F_CashDungeon { |
---|
78 | switch(select("Nogg Road:Mjolnir Dead Pit:Umbala Dungeon:Payon Caves:Toy Factory:Glast Heim Prison:Louyang Dungeon:Kunlun Dungeon:Izlude Undersea Tunnel:Turtle Island:Clocktower 3F:Clocktower B3F:Glast Heim Sewers 2F:Sphinx Dungeon 4F:Pyramid Dungeon 4F:Prontera Culverts 3F:Amatsu Dungeon 1F:Somatology Laboratory 1F:Ayotaya Dungeon 2F")) |
---|
79 | { |
---|
80 | case 1: warp "mag_dun01",0,0; end; // Nogg Road |
---|
81 | case 2: warp "mjo_dun01",0,0; end; // Mjolnir Dead Pit |
---|
82 | case 3: warp "um_dun01",0,0; end; // Umbala Dungeon |
---|
83 | case 4: warp "pay_dun00",0,0; end; // Payon Caves |
---|
84 | case 5: warp "xmas_dun01",0,0; end; // Toy Factory |
---|
85 | case 6: warp "gl_prison",0,0; end; // Glast Heim Prison |
---|
86 | case 7: warp "lou_dun01",0,0; end; // Louyang Dungeon |
---|
87 | case 8: warp "gon_dun01",0,0; end; // Kunlun Dungeon |
---|
88 | case 9: warp "iz_dun00",0,0; end; // Izlude Undersea Tunnel |
---|
89 | case 10: warp "tur_dun01",0,0; end; // Turtle Island |
---|
90 | case 11: warp "c_tower3",0,0; end; // Clocktower 3F |
---|
91 | case 12: warp "alde_dun03",0,0; end; // Clocktower B3F |
---|
92 | case 13: warp "gl_sew02",0,0; end; // Glast Heim Sewers 2F |
---|
93 | case 14: warp "in_sphinx4",0,0; end; // Sphinx Dungeon 4F |
---|
94 | case 15: warp "moc_pryd04",0,0; end; // Pyramid Dungeon 4F |
---|
95 | case 16: warp "prt_sewb3",0,0; end; // Prontera Culverts 3F |
---|
96 | case 17: warp "ama_dun01",0,0; end; // Amatsu Dungeon 1F |
---|
97 | case 18: warp "lhz_dun01",0,0; end; // Somatology Laboratory 1F |
---|
98 | case 19: warp "ayo_dun02",0,0; end; // Ayotaya Dungeon 2F |
---|
99 | } |
---|
100 | return; |
---|
101 | } |
---|
102 | |
---|
103 | // Cities Teleport Scroll |
---|
104 | //============================================================ |
---|
105 | // - Warp player to differents Citys acording to the Scroll |
---|
106 | // - Arg(0) = type of scroll. |
---|
107 | function script F_CashCity { |
---|
108 | switch(getarg(0)) |
---|
109 | { |
---|
110 | // Yellow |
---|
111 | case 1: switch(select("Prontera:Geffen:Payon:Morroc:Aldebaran:Alberta")) { |
---|
112 | case 1: warp "prontera",0,0; end; |
---|
113 | case 2: warp "geffen",0,0; end; |
---|
114 | case 3: warp "payon",0,0; end; |
---|
115 | case 4: warp "morocc",0,0; end; |
---|
116 | case 5: warp "aldebaran",0,0; end; |
---|
117 | case 6: warp "alberta",0,0; end; |
---|
118 | } |
---|
119 | break; |
---|
120 | // Green |
---|
121 | case 2: switch(select("Juno:Lighthalzen:Einbroch:Hugel")) { |
---|
122 | case 1: warp "yuno",0,0; end; |
---|
123 | case 2: warp "lighthalzen",0,0; end; |
---|
124 | case 3: warp "einbroch",0,0; end; |
---|
125 | case 4: warp "hugel",0,0; end; |
---|
126 | } |
---|
127 | break; |
---|
128 | // Red |
---|
129 | case 3: switch(select("Rachel:Veins")) { |
---|
130 | case 1: warp "rachel",0,0; end; |
---|
131 | case 2: warp "veins",0,0; end; |
---|
132 | } |
---|
133 | break; |
---|
134 | // Blue |
---|
135 | case 4: switch(select("Ayothaya:Amatsu:Louyang:Gonryun")) { |
---|
136 | case 1: warp "ayothaya",0,0; end; |
---|
137 | case 2: warp "amatsu",0,0; end; |
---|
138 | case 3: warp "louyang",0,0; end; |
---|
139 | case 4: warp "gonryun",0,0; end; |
---|
140 | } |
---|
141 | break; |
---|
142 | } |
---|
143 | return; |
---|
144 | } |
---|