root/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_pvp.txt @ 1

Revision 1, 6.9 kB (checked in by jinshiro, 17 years ago)
Line 
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,{
17OnInit: //Load Config
18        donpcevent "keConfig::OnLoadWarpPvp";
19        end;
20}
21
22function        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)
105function 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}
Note: See TracBrowser for help on using the browser.