1 | //===== eAthena Script ======================================= |
---|
2 | //= Kafra Express - Pvp Warping Module |
---|
3 | //===== By: ================================================== |
---|
4 | //= Skotlex |
---|
5 | //===== Current Version: ===================================== |
---|
6 | //= 1.7 |
---|
7 | //===== Compatible With: ===================================== |
---|
8 | //= eAthena SVN R3424+ |
---|
9 | //===== Description: ========================================= |
---|
10 | //= Part of the Kafra Express Script Package. |
---|
11 | //= Offers warping to the PvP arenas. |
---|
12 | //===== Additional Comments: ================================= |
---|
13 | //= See config.txt for configuration. |
---|
14 | //============================================================ |
---|
15 | |
---|
16 | - script keInit_warpPvp -1,{ |
---|
17 | OnInit: //Load Config |
---|
18 | donpcevent "keConfig::OnLoadWarpPvp"; |
---|
19 | end; |
---|
20 | } |
---|
21 | |
---|
22 | function script F_keWarpPvp { |
---|
23 | |
---|
24 | function SF_pvpMenu; |
---|
25 | |
---|
26 | set @cost,callfunc("F_keCost",1,100); |
---|
27 | if ($@kewp_advanced == 0) { |
---|
28 | SF_pvpMenu 1,$@kewp_cost,100,0,0; |
---|
29 | return; |
---|
30 | } |
---|
31 | |
---|
32 | do { |
---|
33 | if ($@kewp_showOnline) { |
---|
34 | set @kmenu, select( |
---|
35 | "- Cancel", |
---|
36 | "- All Levels Rooms ("+($@kewp_cost*@cost)+"z/"+(getmapusers("pvp_n_8-1")+getmapusers("pvp_n_8-2") |
---|
37 | +getmapusers("pvp_n_8-3")+getmapusers("pvp_n_8-4")+getmapusers("pvp_n_8-5"))+" "+$@ked_users$+")", |
---|
38 | "- Levels "+($@kewp_baseLv1-$@kewp_range)+"-"+($@kewp_baseLv1+$@kewp_range)+" Rooms ("+($@kewp_cost1*@cost)+"z/" |
---|
39 | +(getmapusers("pvp_n_1-1")+getmapusers("pvp_n_1-2")+getmapusers("pvp_n_1-3") |
---|
40 | +getmapusers("pvp_n_1-4")+getmapusers("pvp_n_1-5"))+" "+$@ked_users$+")", |
---|
41 | "- Levels "+($@kewp_baseLv2-$@kewp_range)+"-"+($@kewp_baseLv2+$@kewp_range)+" Rooms ("+($@kewp_cost2*@cost)+"z/" |
---|
42 | +(getmapusers("pvp_n_2-1")+getmapusers("pvp_n_2-2")+getmapusers("pvp_n_2-3") |
---|
43 | +getmapusers("pvp_n_2-4")+getmapusers("pvp_n_2-5"))+" "+$@ked_users$+")", |
---|
44 | "- Levels "+($@kewp_baseLv3-$@kewp_range)+"-"+($@kewp_baseLv3+$@kewp_range)+" Rooms ("+($@kewp_cost3*@cost)+"z/" |
---|
45 | +(getmapusers("pvp_n_3-1")+getmapusers("pvp_n_3-2")+getmapusers("pvp_n_3-3") |
---|
46 | +getmapusers("pvp_n_3-4")+getmapusers("pvp_n_3-5"))+" "+$@ked_users$+")", |
---|
47 | "- Levels "+($@kewp_baseLv4-$@kewp_range)+"-"+($@kewp_baseLv4+$@kewp_range)+" Rooms ("+($@kewp_cost4*@cost)+"z/" |
---|
48 | +(getmapusers("pvp_n_4-1")+getmapusers("pvp_n_4-2")+getmapusers("pvp_n_4-3") |
---|
49 | +getmapusers("pvp_n_4-4")+getmapusers("pvp_n_4-5"))+" "+$@ked_users$+")", |
---|
50 | "- Levels "+($@kewp_baseLv5-$@kewp_range)+"-"+($@kewp_baseLv5+$@kewp_range)+" Rooms ("+($@kewp_cost5*@cost)+"z/" |
---|
51 | +(getmapusers("pvp_n_5-1")+getmapusers("pvp_n_5-2")+getmapusers("pvp_n_5-3") |
---|
52 | +getmapusers("pvp_n_5-4")+getmapusers("pvp_n_5-5"))+" "+$@ked_users$+")", |
---|
53 | "- Levels "+($@kewp_baseLv6-$@kewp_range)+"-"+($@kewp_baseLv6+$@kewp_range)+" Rooms ("+($@kewp_cost6*@cost)+"z/" |
---|
54 | +(getmapusers("pvp_n_6-1")+getmapusers("pvp_n_6-2")+getmapusers("pvp_n_6-3") |
---|
55 | +getmapusers("pvp_n_6-4")+getmapusers("pvp_n_6-5"))+" "+$@ked_users$+")", |
---|
56 | "- Levels "+($@kewp_baseLv7-$@kewp_range)+"-"+($@kewp_baseLv7+$@kewp_range)+" Rooms ("+($@kewp_cost7*@cost)+"z/" |
---|
57 | +(getmapusers("pvp_n_7-1")+getmapusers("pvp_n_7-2")+getmapusers("pvp_n_7-3") |
---|
58 | +getmapusers("pvp_n_7-4")+getmapusers("pvp_n_7-5"))+" "+$@ked_users$+")" |
---|
59 | ); |
---|
60 | } else { |
---|
61 | set @kmenu, select( |
---|
62 | "- Cancel", |
---|
63 | "- No Level Restriction Rooms ("+($@kewp_cost*@cost)+"z)", |
---|
64 | "- Levels "+($@kewp_baseLv1-$@kewp_range)+"-"+($@kewp_baseLv1+$@kewp_range)+" Rooms ("+($@kewp_cost1*@cost)+"z)", |
---|
65 | "- Levels "+($@kewp_baseLv2-$@kewp_range)+"-"+($@kewp_baseLv2+$@kewp_range)+" Rooms ("+($@kewp_cost2*@cost)+"z)", |
---|
66 | "- Levels "+($@kewp_baseLv3-$@kewp_range)+"-"+($@kewp_baseLv3+$@kewp_range)+" Rooms ("+($@kewp_cost3*@cost)+"z)", |
---|
67 | "- Levels "+($@kewp_baseLv4-$@kewp_range)+"-"+($@kewp_baseLv4+$@kewp_range)+" Rooms ("+($@kewp_cost4*@cost)+"z)", |
---|
68 | "- Levels "+($@kewp_baseLv5-$@kewp_range)+"-"+($@kewp_baseLv5+$@kewp_range)+" Rooms ("+($@kewp_cost5*@cost)+"z)", |
---|
69 | "- Levels "+($@kewp_baseLv6-$@kewp_range)+"-"+($@kewp_baseLv6+$@kewp_range)+" Rooms ("+($@kewp_cost6*@cost)+"z)", |
---|
70 | "- Levels "+($@kewp_baseLv7-$@kewp_range)+"-"+($@kewp_baseLv7+$@kewp_range)+" Rooms ("+($@kewp_cost7*@cost)+"z)" |
---|
71 | ); |
---|
72 | } |
---|
73 | switch(@kmenu) { |
---|
74 | case 2: //No restrictions |
---|
75 | SF_pvpMenu 8,$@kewp_cost,100,0,0; |
---|
76 | break; |
---|
77 | case 3: |
---|
78 | SF_pvpMenu 1,$@kewp_cost1,100,$@kewp_baseLv1-$@kewp_range,$@kewp_baseLv1+$@kewp_range; |
---|
79 | break; |
---|
80 | case 4: |
---|
81 | SF_pvpMenu 2,$@kewp_cost2,100,$@kewp_baseLv2-$@kewp_range,$@kewp_baseLv2+$@kewp_range; |
---|
82 | break; |
---|
83 | case 5: |
---|
84 | SF_pvpMenu 3,$@kewp_cost3,100,$@kewp_baseLv3-$@kewp_range,$@kewp_baseLv3+$@kewp_range; |
---|
85 | break; |
---|
86 | case 6: |
---|
87 | SF_pvpMenu 4,$@kewp_cost4,100,$@kewp_baseLv4-$@kewp_range,$@kewp_baseLv4+$@kewp_range; |
---|
88 | break; |
---|
89 | case 7: |
---|
90 | SF_pvpMenu 5,$@kewp_cost5,100,$@kewp_baseLv5-$@kewp_range,$@kewp_baseLv5+$@kewp_range; |
---|
91 | break; |
---|
92 | case 8: |
---|
93 | SF_pvpMenu 6,$@kewp_cost6,100,$@kewp_baseLv6-$@kewp_range,$@kewp_baseLv6+$@kewp_range; |
---|
94 | break; |
---|
95 | case 9: |
---|
96 | SF_pvpMenu 7,$@kewp_cost7,100,$@kewp_baseLv7-$@kewp_range,$@kewp_baseLv7+$@kewp_range; |
---|
97 | break; |
---|
98 | } |
---|
99 | } while (@kmenu > 1); |
---|
100 | return; |
---|
101 | |
---|
102 | //SubFunction: SF_pvpMenu (int map-group, int cost, int min level, int max level) |
---|
103 | //Displays the list of the five available Pvp rooms to warp to. |
---|
104 | //map-group is the first index of the pvp map names (in pvp_n_2-3 it would be 2) |
---|
105 | function SF_pvpMenu { |
---|
106 | if (getarg(4)) { |
---|
107 | if (BaseLevel < getarg(3)) { |
---|
108 | callfunc "F_keIntro", e_sry, "Sorry, you need at least level "+getarg(2)+" to enter these arenas."; |
---|
109 | return; |
---|
110 | } |
---|
111 | if (BaseLevel > getarg(4)) { |
---|
112 | callfunc "F_keIntro", e_bzz, "Sorry, people above level "+getarg(3)+" are not allowed within these arenas."; |
---|
113 | return; |
---|
114 | } |
---|
115 | set @msg$,"levels "+getarg(3)+"-"+getarg(3); |
---|
116 | } else |
---|
117 | set @msg$,"all levels"; |
---|
118 | if ($@kewp_showOnline) { |
---|
119 | set @submenu, select( |
---|
120 | "- Cancel Warp (Rooms for "+@msg$+"/"+(getarg(1)*@cost)+"z)", |
---|
121 | "- Room Sandwich ("+getmapusers("pvp_n_"+getarg(0)+"-1")+" "+$@ked_users$+")", |
---|
122 | "- Room Rock On ("+getmapusers("pvp_n_"+getarg(0)+"-2")+" "+$@ked_users$+")", |
---|
123 | "- Four Room ("+getmapusers("pvp_n_"+getarg(0)+"-3")+" "+$@ked_users$+")", |
---|
124 | "- Room Undercross ("+getmapusers("pvp_n_"+getarg(0)+"-4")+" "+$@ked_users$+")", |
---|
125 | "- Room Compass ("+getmapusers("pvp_n_"+getarg(0)+"-5")+" "+$@ked_users$+")" |
---|
126 | ); |
---|
127 | } else { |
---|
128 | set @submenu, select( |
---|
129 | "- Cancel Warp (Rooms for "+@msg$+"/"+(getarg(1)*@cost)+"z)", |
---|
130 | "- Room Sandwich", |
---|
131 | "- Room Rock On", |
---|
132 | "- Four Room", |
---|
133 | "- Room Undercross", |
---|
134 | "- Room Compass" |
---|
135 | ); |
---|
136 | } |
---|
137 | switch (@submenu) { |
---|
138 | case 2: |
---|
139 | callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-1",-1,-1; |
---|
140 | break; |
---|
141 | case 3: |
---|
142 | callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-2",-1,-1; |
---|
143 | break; |
---|
144 | case 4: |
---|
145 | callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-3",-1,-1; |
---|
146 | break; |
---|
147 | case 5: |
---|
148 | callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-4",-1,-1; |
---|
149 | break; |
---|
150 | case 6: |
---|
151 | callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-5",-1,-1; |
---|
152 | break; |
---|
153 | } |
---|
154 | } |
---|
155 | |
---|
156 | } |
---|