1 | //===== eAthena Script ======================================= |
---|
2 | //= PvP NPCs |
---|
3 | //===== By: ================================================== |
---|
4 | //= kobra_k88; L0ne_W0lf |
---|
5 | //===== Current Version: ===================================== |
---|
6 | //= 1.4 |
---|
7 | //===== Compatible With: ===================================== |
---|
8 | //= eAthena SVN |
---|
9 | //===== Description: ========================================= |
---|
10 | //= [Aegis Conversion] |
---|
11 | //= PvP NPCs that are found in the Inns in major cities. |
---|
12 | //= Includes Yoyo Mode, Nightmare Mode, and Event Mode |
---|
13 | //= |
---|
14 | //= Breakdown of function "F_PVPNarrator" |
---|
15 | //= arg(0): Map to save player on |
---|
16 | //= arg(1): X position on getarg(0) map to save player |
---|
17 | //= arg(2): Y position on getarg(0) map to save player |
---|
18 | //===== Additional Comments: ================================= |
---|
19 | //= 1.1 Fixed arena names for Nightmare mode. Added room limit |
---|
20 | //= check.[kobra_k88] |
---|
21 | //= 1.2 Fixed the bug that you aways savepoint in geffen.[shadowlady] |
---|
22 | //= 1.2a Added PvP Narrator function. Using args for Fight |
---|
23 | //= Square Helpers. [kobra_k88] |
---|
24 | //= 1.3 Rescripted to Aegis 10.3 standards. [L0ne_W0lf] |
---|
25 | //= Removed all receptioned for Yoyo mode, with the |
---|
26 | //= exception of the "Free for all" mode. |
---|
27 | //= Added PVP event NPCs. |
---|
28 | //= 1.4 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf] |
---|
29 | //============================================================ |
---|
30 | |
---|
31 | // Morroc |
---|
32 | //============================================================ |
---|
33 | morocc_in,144,138,4 script PVPNarrator#moc 84,{ |
---|
34 | callfunc "F_PVPNarrator","morocc_in",141,139; |
---|
35 | } |
---|
36 | |
---|
37 | morocc_in,144,142,4 script Gate Keeper#moc::PVPGateKeeper 83,{ |
---|
38 | mes "[Gate Keeper]"; |
---|
39 | mes "Glad to be of service."; |
---|
40 | mes "I will open the PVP fight"; |
---|
41 | mes "square for you! If you have"; |
---|
42 | mes "any questions about the PVP"; |
---|
43 | mes "modes or rules, Please ask"; |
---|
44 | mes "the Narrator..."; |
---|
45 | next; |
---|
46 | switch(select("^FF5533' PvP Nightmare Mode'^000000:^3355FF' PvP Yoyo Mode'^000000:^3355FF' PvP Event Mode'^000000:Quit")) { |
---|
47 | case 1: |
---|
48 | mes "[Gate Keeper]"; |
---|
49 | mes "I am sorry, but currently the Nightmare mode service is not available."; |
---|
50 | mes "Please use the Yoyo mode instead. We apologize for the inconvenience."; |
---|
51 | close; |
---|
52 | case 2: |
---|
53 | mes "[Gate Keeper]"; |
---|
54 | mes "The admission fee is 500 Zeny."; |
---|
55 | mes "Do you want to move"; |
---|
56 | mes "to the Yoyo Mode"; |
---|
57 | mes "fight square?"; |
---|
58 | next; |
---|
59 | switch(select("Move:Cancel")) { |
---|
60 | case 1: |
---|
61 | if (Zeny > 499 && BaseLevel > 30) { |
---|
62 | set zeny,zeny-500; |
---|
63 | warp "pvp_y_room",51,23; |
---|
64 | end; |
---|
65 | } |
---|
66 | else { |
---|
67 | mes "[Gate Keeper]"; |
---|
68 | mes "Excuse me, but"; |
---|
69 | mes "did you not come prepared?"; |
---|
70 | mes "Double check that you have the"; |
---|
71 | mes "500 Zeny entrance fee, and"; |
---|
72 | mes "that you are at least level 31!"; |
---|
73 | close; |
---|
74 | } |
---|
75 | case 2: |
---|
76 | mes "[Gate Keeper]"; |
---|
77 | mes "In this war between Monsters"; |
---|
78 | mes "and Humans. This competition"; |
---|
79 | mes "between people, The PVP Mode!"; |
---|
80 | mes "Encourages us all to become"; |
---|
81 | mes "stronger. Come again."; |
---|
82 | mes "We welcome your challenge!"; |
---|
83 | close; |
---|
84 | } |
---|
85 | case 3: |
---|
86 | mes "[Gate Keeper]"; |
---|
87 | mes "Welcome"; |
---|
88 | mes "Please double check"; |
---|
89 | mes "That you have the admission or viewing ticket!"; |
---|
90 | next; |
---|
91 | if (countitem(7028) == 0 && countitem(7029) == 0) { |
---|
92 | mes "[Gate Keeper]"; |
---|
93 | mes "Eh? You don't have it? Then I"; |
---|
94 | mes "am sorry, this fight square is"; |
---|
95 | mes "only for people who have"; |
---|
96 | mes "admission or viewing tickets."; |
---|
97 | mes "You cannot come in without it."; |
---|
98 | close; |
---|
99 | } |
---|
100 | mes "[Gate Keeper]"; |
---|
101 | mes "Yes, thank you for participating. Have fun!"; |
---|
102 | close2; |
---|
103 | warp "pvp_room",51,23; |
---|
104 | end; |
---|
105 | case 4: |
---|
106 | mes "[Gate Keeper]"; |
---|
107 | mes "In this war between Monsters"; |
---|
108 | mes "and Humans. This competition"; |
---|
109 | mes "between people, The PVP Mode!"; |
---|
110 | mes "Encourages us all to become"; |
---|
111 | mes "stronger. Come again."; |
---|
112 | mes "We welcome your challenge!"; |
---|
113 | close; |
---|
114 | } |
---|
115 | } |
---|
116 | |
---|
117 | // Alberta |
---|
118 | //============================================================ |
---|
119 | alberta_in,22,146,4 script PVP Narrator#alb 84,{ |
---|
120 | callfunc "F_PVPNarrator","alberta_in",22,148; |
---|
121 | } |
---|
122 | |
---|
123 | alberta_in,26,146,4 duplicate(PVPGateKeeper) Gate Keeper#alb 83 |
---|
124 | |
---|
125 | // Prontera |
---|
126 | //============================================================ |
---|
127 | prt_in,56,140,4 script PVPNarrator#prt 84,{ |
---|
128 | callfunc "F_PVPNarrator","prt_in",54,137; |
---|
129 | } |
---|
130 | |
---|
131 | prt_in,52,140,4 duplicate(PVPGateKeeper) Gate Keeper#prt 83 |
---|
132 | |
---|
133 | // Geffen |
---|
134 | //============================================================ |
---|
135 | geffen_in,67,63,4 script PVPNarrator#gef 84,{ |
---|
136 | callfunc "F_PVPNarrator","geffen_in",70,59; |
---|
137 | } |
---|
138 | |
---|
139 | geffen_in,63,63,4 duplicate(PVPGateKeeper) Gate Keeper#gef 83 |
---|
140 | |
---|
141 | // Payon |
---|
142 | //============================================================ |
---|
143 | payon_in01,142,50,4 script PVPNarrator#pay 84,{ |
---|
144 | callfunc "F_PVPNarrator","payon_in01",142,46; |
---|
145 | } |
---|
146 | |
---|
147 | payon_in01,140,53,4 duplicate(PVPGateKeeper) Gate Keeper#pay 83 |
---|
148 | |
---|
149 | |
---|
150 | // PVP Yoyo Mode Staff |
---|
151 | //============================================================ |
---|
152 | pvp_y_room,86,85,4 script Fight Square Reception#1 105,{ |
---|
153 | set .@mapcount_1,getmapusers("pvp_y_8-1"); |
---|
154 | set .@mapcount_2,getmapusers("pvp_y_8-2"); |
---|
155 | set .@mapcount_3,getmapusers("pvp_y_8-3"); |
---|
156 | set .@mapcount_4,getmapusers("pvp_y_8-4"); |
---|
157 | set .@mapcount_5,getmapusers("pvp_y_8-5"); |
---|
158 | while(1) { |
---|
159 | switch(select("Prontera [ "+.@mapcount_1+" / 128 ]:Izlude [ "+.@mapcount_2+" / 128 ]:Payon [ "+.@mapcount_3+" / 128 ]:Alberta [ "+.@mapcount_4+" / 128 ]:Morroc [ "+.@mapcount_5+" / 128 ]:Cancel")) { |
---|
160 | case 1: |
---|
161 | callsub S_CheckPVPRoom,@mapcount_1,"pvp_y_8-1"; |
---|
162 | break; |
---|
163 | case 2: |
---|
164 | callsub S_CheckPVPRoom,@mapcount_2,"pvp_y_8-2"; |
---|
165 | break; |
---|
166 | case 3: |
---|
167 | callsub S_CheckPVPRoom,@mapcount_3,"pvp_y_8-3"; |
---|
168 | break; |
---|
169 | case 4: |
---|
170 | callsub S_CheckPVPRoom,@mapcount_4,"pvp_y_8-4"; |
---|
171 | break; |
---|
172 | case 5: |
---|
173 | callsub S_CheckPVPRoom,@mapcount_5,"pvp_y_8-5"; |
---|
174 | break; |
---|
175 | case 6: |
---|
176 | close; |
---|
177 | } |
---|
178 | } |
---|
179 | |
---|
180 | OnInit: |
---|
181 | waitingroom "Free For All",0; |
---|
182 | end; |
---|
183 | |
---|
184 | S_CheckPVPRoom: |
---|
185 | if (getarg(0) >= 128) { |
---|
186 | mes "[PVP Fight Square Reception Staff]"; |
---|
187 | mes "This map is currently full."; |
---|
188 | next; |
---|
189 | return; |
---|
190 | } |
---|
191 | else { |
---|
192 | warp getarg(1),0,0; |
---|
193 | end; |
---|
194 | } |
---|
195 | } |
---|
196 | |
---|
197 | // PVP Nightmare Mode Staff |
---|
198 | //============================================================ |
---|
199 | pvp_n_room,30,85,4 script Fight Square Reception#2 105,{ |
---|
200 | set .@mapcount_1,getmapusers("pvp_n_8-1"); |
---|
201 | set .@mapcount_2,getmapusers("pvp_n_8-2"); |
---|
202 | set .@mapcount_3,getmapusers("pvp_n_8-3"); |
---|
203 | set .@mapcount_4,getmapusers("pvp_n_8-4"); |
---|
204 | set .@mapcount_5,getmapusers("pvp_n_8-5"); |
---|
205 | while(1) { |
---|
206 | switch(select("Sandwich [ "+.@mapcount_1+" / 64 ]:Lock on [ "+.@mapcount_2+" / 32 ]:Four Room [ "+.@mapcount_3+" / 32 ]:Under cross [ "+.@mapcount_4+" / 32 ]:Compass Room [ "+.@mapcount_5+" / 32 ]:Cancel")) { |
---|
207 | case 1: |
---|
208 | callsub S_CheckPVPRoom,@mapcount_1,"pvp_n_8-1",64; |
---|
209 | break; |
---|
210 | case 2: |
---|
211 | callsub S_CheckPVPRoom,@mapcount_2,"pvp_n_8-2",32; |
---|
212 | break; |
---|
213 | case 3: |
---|
214 | callsub S_CheckPVPRoom,@mapcount_3,"pvp_n_8-3",32; |
---|
215 | break; |
---|
216 | case 4: |
---|
217 | callsub S_CheckPVPRoom,@mapcount_4,"pvp_n_8-4",32; |
---|
218 | break; |
---|
219 | case 5: |
---|
220 | callsub S_CheckPVPRoom,@mapcount_5,"pvp_n_8-5",32; |
---|
221 | break; |
---|
222 | case 6: |
---|
223 | close; |
---|
224 | } |
---|
225 | } |
---|
226 | |
---|
227 | OnInit: |
---|
228 | waitingroom "Free For All",0; |
---|
229 | end; |
---|
230 | |
---|
231 | S_CheckPVPRoom: |
---|
232 | if (getarg(0) >= getarg(2)) { |
---|
233 | mes "[PVP Fight Square Reception Staff]"; |
---|
234 | mes "This map is currently full."; |
---|
235 | next; |
---|
236 | return; |
---|
237 | } |
---|
238 | else { |
---|
239 | warp getarg(1),0,0; |
---|
240 | end; |
---|
241 | } |
---|
242 | } |
---|
243 | |
---|
244 | // Function |
---|
245 | //============================================================ |
---|
246 | function script F_PVPNarrator { |
---|
247 | mes "[PVP Narrator]"; |
---|
248 | mes "Hello and welcome!"; |
---|
249 | mes "I am in charge of"; |
---|
250 | mes "explaining the PVP Mode."; |
---|
251 | mes "I am the PVP Narrator!"; |
---|
252 | next; |
---|
253 | switch(select("What is PVP?:What are the PVP Modes?:What are the rules for PVP?:Save Position.:End Dialog.")) { |
---|
254 | case 1: |
---|
255 | mes "[PVP Narrator]"; |
---|
256 | mes "In short form"; |
---|
257 | mes "PVP means,"; |
---|
258 | mes "' Player VS Player Mode '"; |
---|
259 | mes "It's a unique place for people"; |
---|
260 | mes "To duel with each other."; |
---|
261 | next; |
---|
262 | mes "[PVP Narrator]"; |
---|
263 | mes "Just tell the"; |
---|
264 | mes "^3355FFGate Keeper^000000"; |
---|
265 | mes "That you want to try. He will"; |
---|
266 | mes "let you into the PVP square."; |
---|
267 | next; |
---|
268 | mes "[PVP Narrator]"; |
---|
269 | mes "But, You need to be at"; |
---|
270 | mes "least level 31. And you"; |
---|
271 | mes "must pay the 500 zeny"; |
---|
272 | mes "entrance fee in order to"; |
---|
273 | mes "To enter a PVP Fight Square."; |
---|
274 | close; |
---|
275 | case 2: |
---|
276 | mes "[PVP Narrator]"; |
---|
277 | mes "When you are qualified, You"; |
---|
278 | mes "can choose one of two Modes."; |
---|
279 | mes "Yoyo Mode, Or"; |
---|
280 | mes "Nightmare Mode."; |
---|
281 | next; |
---|
282 | mes "[PVP Narrator]"; |
---|
283 | mes "Yoyo Mode is risk free."; |
---|
284 | mes "You can experience PVP"; |
---|
285 | mes "without any restriction or"; |
---|
286 | mes "punishment. It is recommended"; |
---|
287 | mes "that you practice your skills"; |
---|
288 | mes "here before you move on."; |
---|
289 | next; |
---|
290 | mes "[PVP Narrator]"; |
---|
291 | mes "Nightmare Mode is very"; |
---|
292 | mes "dangerous! Please use caution."; |
---|
293 | mes "You will lose some of your real"; |
---|
294 | mes "EXP when you are defeated. And"; |
---|
295 | mes "There is a small chance that"; |
---|
296 | mes "you will drop some equipment."; |
---|
297 | next; |
---|
298 | mes "[PVP Narrator]"; |
---|
299 | mes "However, if you win, the"; |
---|
300 | mes "rewards can be great!"; |
---|
301 | mes "To avoid misunderstanding."; |
---|
302 | mes "You should think it over"; |
---|
303 | mes "twice before you go there..."; |
---|
304 | mes "Good Luck!"; |
---|
305 | close; |
---|
306 | case 3: |
---|
307 | mes "[PVP Narrator]"; |
---|
308 | mes "Each of the Fight squares"; |
---|
309 | mes "have a row of Narrators to"; |
---|
310 | mes "choose from based on your"; |
---|
311 | mes "qualifications."; |
---|
312 | next; |
---|
313 | mes "[PVP Narrator]"; |
---|
314 | mes "Each Narrator will ask"; |
---|
315 | mes "which of the five PVP maps"; |
---|
316 | mes "you wish to go to."; |
---|
317 | mes "Choose, and go in!"; |
---|
318 | next; |
---|
319 | mes "[PVP Narrator]"; |
---|
320 | mes "Each map has a limitation on"; |
---|
321 | mes "the number of people who can"; |
---|
322 | mes "participate. So you will see"; |
---|
323 | mes "figures in the corner showing"; |
---|
324 | mes "'Attendee/total'."; |
---|
325 | next; |
---|
326 | mes "[PVP Narrator]"; |
---|
327 | mes "Also, there is a hidden EXP"; |
---|
328 | mes "value in PVP mode. This EXP"; |
---|
329 | mes "score will only apply inside"; |
---|
330 | mes "of the PVP zone, so do not"; |
---|
331 | mes "worry."; |
---|
332 | next; |
---|
333 | mes "[PVP Narrator]"; |
---|
334 | mes "Every player's EXP at the"; |
---|
335 | mes "beginning is usually 5 points."; |
---|
336 | mes "If you win, you will"; |
---|
337 | mes "increse your EXP by 1 point"; |
---|
338 | next; |
---|
339 | mes "[PVP Narrator]"; |
---|
340 | mes "In the same way, when you"; |
---|
341 | mes "lose... Your EXP will"; |
---|
342 | mes "drop by 5 points."; |
---|
343 | mes "So be careful!"; |
---|
344 | next; |
---|
345 | mes "[PVP Narrator]"; |
---|
346 | mes "When you are defeated"; |
---|
347 | mes "And your EXP is equal"; |
---|
348 | mes "to or less than 0,"; |
---|
349 | mes "You will be removed from PVP"; |
---|
350 | mes "And your duel is finished!"; |
---|
351 | next; |
---|
352 | mes "[PVP Narrator]"; |
---|
353 | mes "However, If your EXP is more"; |
---|
354 | mes "than 0. You can still get help"; |
---|
355 | mes "Through other players healing..."; |
---|
356 | mes "Do you get it?"; |
---|
357 | next; |
---|
358 | mes "[PVP Narrator]"; |
---|
359 | mes "The fighting commands inside of"; |
---|
360 | mes "PVP Are the same as the normal."; |
---|
361 | mes "All the basic controls are the"; |
---|
362 | mes "same."; |
---|
363 | next; |
---|
364 | mes "[PVP Narrator]"; |
---|
365 | mes "However, there is one thing..."; |
---|
366 | mes "Within the PVP fight square,"; |
---|
367 | mes "And in the PVP fighting zones"; |
---|
368 | mes "You cannot save your position."; |
---|
369 | mes "Remember well... These rules"; |
---|
370 | mes "can help to ensure your victory."; |
---|
371 | close; |
---|
372 | case 4: |
---|
373 | mes "[PVP Narrator]"; |
---|
374 | mes "Position saved..."; |
---|
375 | mes "Successfully."; |
---|
376 | mes "Thank you very much, We"; |
---|
377 | mes "will see you again soon."; |
---|
378 | close2; |
---|
379 | savepoint getarg(0),getarg(1),getarg(2); |
---|
380 | end; |
---|
381 | case 5: |
---|
382 | mes "[PVP Narrator]"; |
---|
383 | mes "In this war between Monsters"; |
---|
384 | mes "and Humans. This competition"; |
---|
385 | mes "between people, The PVP Mode!"; |
---|
386 | mes "Encourages us all to become"; |
---|
387 | mes "stronger. Come again."; |
---|
388 | mes "We welcome your challenge!"; |
---|
389 | close; |
---|
390 | } |
---|
391 | } |
---|
392 | |
---|
393 | // Event Contestant Entrance |
---|
394 | //============================================================ |
---|
395 | pvp_room,54,85,4 script Registration Staff#1 105,{ |
---|
396 | if (countitem(7028) == 0) { |
---|
397 | mes "[PVP Combat Square Register Staff]"; |
---|
398 | mes "Eh? How did you get in here?"; |
---|
399 | mes "This is the entrance for players only."; |
---|
400 | mes "For details about viewers please proceed to the Register Staff on your right."; |
---|
401 | close; |
---|
402 | } |
---|
403 | |
---|
404 | if (.pvp_close_n_room == 1 && .pvp_close_s_room == 1 && .pvp_close_w_room == 1 && .pvp_close_e_room == 1) { |
---|
405 | Set .pvp_close_n_room,0; |
---|
406 | Set .pvp_close_s_room,0; |
---|
407 | Set .pvp_close_w_room,0; |
---|
408 | Set .pvp_close_e_room,0; |
---|
409 | } |
---|
410 | |
---|
411 | if (select("Combat Square one :Cancel") == 1) { |
---|
412 | mes "[PVP Combat Square Register Staff]"; |
---|
413 | mes "'"+ strcharinfo(0) +"'"; |
---|
414 | mes "Are you ready?!"; |
---|
415 | next; |
---|
416 | if (select("Yes!:No!") == 1) { |
---|
417 | mes "[PVP Combat Square Register Staff]"; |
---|
418 | mes "OK! I will send you inside"; |
---|
419 | mes "Good luck!"; |
---|
420 | close2; |
---|
421 | delitem 7028,1; //Invite_For_Duel |
---|
422 | while(1) { |
---|
423 | switch(rand(1,4)) { |
---|
424 | case 1: |
---|
425 | if (.pvp_close_n_room == 0) { |
---|
426 | set .pvp_close_n_room,1; |
---|
427 | warp "pvp_2vs2",40,59; |
---|
428 | end; |
---|
429 | } |
---|
430 | case 2: |
---|
431 | if (.pvp_close_s_room == 0) { |
---|
432 | set .pvp_close_s_room,1; |
---|
433 | warp "pvp_2vs2",59,40; |
---|
434 | end; |
---|
435 | } |
---|
436 | case 3: |
---|
437 | if (.pvp_close_w_room == 0) { |
---|
438 | set .pvp_close_w_room,1; |
---|
439 | warp "pvp_2vs2",20,40; |
---|
440 | end; |
---|
441 | } |
---|
442 | case 4: |
---|
443 | if (.pvp_close_e_room == 0) { |
---|
444 | set .pvp_close_e_room,1; |
---|
445 | warp "pvp_2vs2",40,20; |
---|
446 | end; |
---|
447 | } |
---|
448 | } |
---|
449 | } |
---|
450 | } |
---|
451 | mes "[PVP Combat Square Register Staff]"; |
---|
452 | mes "Come back anytime you are ready."; |
---|
453 | close; |
---|
454 | } |
---|
455 | close; |
---|
456 | |
---|
457 | OnInit: |
---|
458 | Set .pvp_close_n_room,0; |
---|
459 | Set .pvp_close_s_room,0; |
---|
460 | Set .pvp_close_w_room,0; |
---|
461 | Set .pvp_close_e_room,0; |
---|
462 | waitingroom "Combat Square players entrance only",0; |
---|
463 | end; |
---|
464 | } |
---|
465 | |
---|
466 | // Spectator Entrance |
---|
467 | //============================================================ |
---|
468 | pvp_room,62,85,4 script Spectator's Entrance#1::PVPSpectator 105,{ |
---|
469 | if (countitem(7029) == 0) { |
---|
470 | mes "[PVP Compete Square Register Staff]"; |
---|
471 | mes "This is the entrance for viewers."; |
---|
472 | mes "For details about players entrance please proceed to the Register Staff on your left."; |
---|
473 | close; |
---|
474 | } |
---|
475 | |
---|
476 | if (select("Compete Square one:Cancel") == 1) { |
---|
477 | mes "[PVP Combat Square Register Staff]"; |
---|
478 | mes "You got it, thanks for participating. Have fun!"; |
---|
479 | close2; |
---|
480 | delitem 7029,1; //Admission_For_Duel |
---|
481 | switch(rand(1,4)) { |
---|
482 | case 1: warp "pvp_2vs2",39,7; end; |
---|
483 | case 2: warp "pvp_2vs2",39,73; end; |
---|
484 | case 3: warp "pvp_2vs2",7,39; end; |
---|
485 | case 4: warp "pvp_2vs2",73,39; end; |
---|
486 | } |
---|
487 | } |
---|
488 | close; |
---|
489 | |
---|
490 | OnInit: |
---|
491 | waitingroom "Compete Square viewer's entrance",0; |
---|
492 | end; |
---|
493 | } |
---|
494 | |
---|
495 | pvp_room,70,85,4 duplicate(PVPSpectator) Spectator's Entrance#2 105 |
---|
496 | |
---|
497 | pvp_room,78,85,4 duplicate(PVPSpectator) Spectator's Entrance#3 105 |
---|
498 | |
---|
499 | pvp_room,86,85,4 duplicate(PVPSpectator) Spectator's Entrance#4 105 |
---|
500 | |
---|
501 | // Spectator Warps |
---|
502 | //============================================================ |
---|
503 | pvp_2vs2,5,4,0 script Combat Square Staff#1::PVPSpecWarp 45,1,1,{ |
---|
504 | OnTouch: |
---|
505 | mes "[Combat Square Staff]"; |
---|
506 | mes "May I help you?"; |
---|
507 | if (select("To the center viewer seat.:Leave Combat Square.") == 1) { |
---|
508 | warp "pvp_2vs2",38,38; |
---|
509 | end; |
---|
510 | } |
---|
511 | warp "pvp_room",84,39; |
---|
512 | end; |
---|
513 | } |
---|
514 | |
---|
515 | pvp_2vs2,5,74,0 duplicate(PVPSpecWarp) Combat Square Staff#2 45,1,1 |
---|
516 | |
---|
517 | pvp_2vs2,74,74,0 duplicate(PVPSpecWarp) Combat Square Staff#3 45,1,1 |
---|
518 | |
---|
519 | pvp_2vs2,74,5,0 duplicate(PVPSpecWarp) Combat Square Staff#4 45,1,1 |
---|
520 | |
---|
521 | pvp_2vs2,40,40,0 script Combat Square Staff#5 45,1,1,{ |
---|
522 | set mapmove,0; |
---|
523 | mes "[Combat Square Staff]"; |
---|
524 | mes "May I help you?"; |
---|
525 | if (select("To the side viewer seat.:Leave Combat Square.") == 1) { |
---|
526 | switch(rand(1,4)) { |
---|
527 | case 1: warp "pvp_2vs2",39,7; end; |
---|
528 | case 2: warp "pvp_2vs2",39,73; end; |
---|
529 | case 3: warp "pvp_2vs2",7,39; end; |
---|
530 | case 4: warp "pvp_2vs2",73,39; end; |
---|
531 | } |
---|
532 | } |
---|
533 | warp "pvp_c_room",84,39; |
---|
534 | end; |
---|
535 | } |
---|
536 | |
---|
537 | // PVP Area Exit warp |
---|
538 | //============================================================ |
---|
539 | pvp_room,51,19,0 script out#eventpvp 45,4,2,{ |
---|
540 | OnTouch: |
---|
541 | mes "[Combat Square Staff]"; |
---|
542 | mes "Did you have fun in Combat Square?"; |
---|
543 | mes "May I ask where you want to go?"; |
---|
544 | next; |
---|
545 | switch(select("prontera.:morocc.:geffen.:payon.:alberta.:Cancel.")) { |
---|
546 | case 1: warp "prontera",107,60; end; |
---|
547 | case 2: warp "morocc",157,96; end; |
---|
548 | case 3: warp "geffen",120,36; end; |
---|
549 | case 4: warp "payon",96,100; end; |
---|
550 | case 5: warp "alberta",41,243; end; |
---|
551 | case 6: close; |
---|
552 | } |
---|
553 | } |
---|