diff options
author | L0ne_W0lf <L0ne_W0lf@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-07-06 20:21:43 +0000 |
---|---|---|
committer | L0ne_W0lf <L0ne_W0lf@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-07-06 20:21:43 +0000 |
commit | c87c721fe0cdcb1c7bfa660dbe87fe3126ec7531 (patch) | |
tree | b46079b7329b03916bd11c365872c7c985b2d2b6 /npc/other/pvp.txt | |
parent | 180c626bef428190edbcd8a8a6d1ef1ef03ce808 (diff) | |
download | hercules-c87c721fe0cdcb1c7bfa660dbe87fe3126ec7531.tar.gz hercules-c87c721fe0cdcb1c7bfa660dbe87fe3126ec7531.tar.bz2 hercules-c87c721fe0cdcb1c7bfa660dbe87fe3126ec7531.tar.xz hercules-c87c721fe0cdcb1c7bfa660dbe87fe3126ec7531.zip |
* Updated Juno and Comodo NPCs.
- Updated Monster Museum NPCs as well.
- Updated doomed swords quest, moved unrelated NPCs to proper files.
- Added the end of the Comodo and Juno doomed swords quests.
* Fixed "[Kafra Employee]" being shown twice at one instance.
* Fixed the Geffen Inn NPC.
* Updated the NPC names for the Geffen Kafra.
* Updated the PVP script to official. Includes Event mode.
- Added warps for the PVP Cross room.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10858 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'npc/other/pvp.txt')
-rw-r--r-- | npc/other/pvp.txt | 836 |
1 files changed, 487 insertions, 349 deletions
diff --git a/npc/other/pvp.txt b/npc/other/pvp.txt index 3d3909f42..8623a80d8 100644 --- a/npc/other/pvp.txt +++ b/npc/other/pvp.txt @@ -1,414 +1,552 @@ //===== eAthena Script ======================================= -//= PvP +//= PvP NPCs //===== By: ================================================== -//= kobra_k88 +//= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.2a +//= 1.3 //===== Compatible With: ===================================== //= eAthena 0.5.2 + //===== Description: ========================================= +//= [Aegis Conversion] +//= PvP NPCs that are found in the Inns in major cities. +//= Includes Yoyo Mode, Nightmare Mode, and Event Mode //= +//= Breakdown of function "F_PVPNarrator" +//= arg(0): Map to save player on +//= arg(1): X position on getarg(0) map to save player +//= arg(2): Y position on getarg(0) map to save player //===== Additional Comments: ================================= -//= v1.1 Fixed arena names for Nightmare mode. Added room limit -//= check.[kobra_k88] -//= v1.2 Fixed the bug that you aways savepoint in geffen.[shadowlady] -//= v1.2a Added PvP Narrator function. Using args for Fight -//= Square Helpers. [kobra_k88] +//= 1.1 Fixed arena names for Nightmare mode. Added room limit +//= check.[kobra_k88] +//= 1.2 Fixed the bug that you aways savepoint in geffen.[shadowlady] +//= 1.2a Added PvP Narrator function. Using args for Fight +//= Square Helpers. [kobra_k88] +//= 1.3 Rescripted to Aegis 10.3 standards. [L0ne_W0lf] +//= Removed all receptioned for Yoyo mode, with the +//= exception of the "Free for all" mode. +//= Added PVP event NPCs. //============================================================ - -//========================================================================== -// PvP Narrators -//========================================================================== - -// Alberta ----------------------------------------- -alberta_in,22,146,4 script PvP Narrator#1 84,{ - callfunc "F_PvPNarr", "alberta_in", 24, 143; - end; -} -// Payon ------------------------------------- -payon_in01,173,109,3 script PvP Narrator#2 84,{ - callfunc "F_PvPNarr", "payon_in01", 169, 108; - end; -} -// Prontera ------------------------------------- -prt_in,56,140,4 script PvP Narrator#3 84,{ - callfunc "F_PvPNarr", "prt_in", 54, 137; - end; -} -// Morocc -------------------------------------- -morocc_in,144,138,4 script PvP Narrator#4 84,{ - callfunc "F_PvPNarr", "morocc_in", 141, 140; - end; -} -// Geffen -------------------------------------- -geffen_in,67,63,4 script PvP Narrator#5 84,{ - callfunc "F_PvPNarr", "geffen_in", 64, 60; - end; -} - -//******************************************************// -// Function: PvP Narrator -//******************************************************// -// arg(0): mapname -// arg(1): savepoint x cord. -// arg(2): savepoint y cord. -//============================= -function script F_PvPNarr { - mes "[PvP Narrator]"; - mes "Hello and welcome! I am in charge of explaining the PvP mode to all of those who inquire. I am the PvP Narrator!"; - M_Menu: - next; - menu "What is PvP?",M_0, "What are the PvP modes?",M_1, "What are the rules for PvP?",M_2, "Save position.",M_3; - - M_0: - mes "[PvP Narrator]"; - mes "PvP is short for 'Player versus Player'! It is a unique play mode that allows players to duel other players!"; - next; - mes "[PvP Narrator]"; - mes "If you're interested just speak with the ^5533FFGate Keeper'^000000. He will let you into the PvP square."; - next; - mes "[PvP Narrator]"; - mes "That IS, IF you have at least a base level of 31 and you have 500 zeny to pay for the enterance fee."; - mes "Those are the requirements to participate in PvP."; - goto M_Menu; - M_1: - mes "[PvP Narrator]"; - mes "There are 2 PvP modes to choose from."; - mes "One is called ^5533FF'Yoyo'^000000 Mode and the other is called ^5533FF'Nightmare'^000000 Mode."; - next; - mes "[PvP Narrator]"; - mes "Yoyo mode essentially lets you play risk free. You can experience the thrill of PvP without any restrictions or penalties."; - mes "It is recomended that you practice your skills in this mode before you move on."; - next; - mes "[PvP Narrator]"; - mes "Nightmare Mode is very dangerous! Please use caution when trying this mode of play."; - mes "You will lose some of your real EXP if you are defeated. There is also the small chance that you will drop some items and equipment."; - next; - mes "[PvP Narrator]"; - mes "Of course if you win, the rewards can be great!! Even so you should really think twice before you attempt Nightmare Mode."; - mes "Anyways, good luck."; - goto M_Menu; - M_2: - mes "[PvP Narrator]"; - mes "Before you enter any actual PvP areana, you must first choose your level of ability based on your base level."; - mes "You will do this in the pre-fight room. There will be a row of narrators, each one representing a set of player levels."; - next; - mes "[PvP Narrator]"; - mes "Speak to the narrator that represents your base level. You will then be asked to choose from five different fight maps."; - mes "You will be able to see how many people are currently participating in any given map."; - next; - mes "[PvP Narrator]"; - mes "This will be represented by the 'Attendee/Total' figure in the corner of the screen. There is a limit to how many can play on a map."; - mes "There is a hidden EXP value in PvP mode. This EXP will only apply inside of the PvP zone and not outside."; - next; - mes "[PvP Narrator]"; - mes "Every one will receive a base EXP of 5 points when they first start. If you win a match your EXP with increase by 1 point."; - mes "If you loose your EXP will drop by 5 points, so be carefull!"; - next; - mes "[PvP Narrator]"; - mes "If you are defeated and your EXP is equal to or less than 0, you will be removed from the PvP arena."; - mes "If your EXP is more than 0 than you may continue fighting and even get help from healers."; - next; - mes "[PvP Narrator]"; - mes "The fighting commands inside of PvP are the same as outside. Just remember that you won't be able to save inside a PvP arena."; - next; - mes "[PvP Narrator]"; - mes "Remember these rules well as they can help to ensure your victory."; - goto M_Menu; - M_3: - savepoint getarg(0), getarg(1), getarg(2); - mes "[PvP Narrator]"; - mes "Your position has been saved."; - close; +// Morroc +//============================================================ +morocc_in,144,138,4 script PVPNarrator#moc 84,{ + callfunc "F_PVPNarrator","morocc_in",141,139; } - -//========================================================================== -// Gate Keepers -//========================================================================== - -// Alberta ----------------------------------- -alberta_in,26,146,4 script Gate Keeper#1::GateKeep 83,{ +morocc_in,144,142,4 script Gate Keeper#moc::PVPGateKeeper 83,{ mes "[Gate Keeper]"; - mes "Hi. I'm glad to be of service. I will open the PvP fight square for you!"; - mes "If you have any questions about the PvP modes or rules, please ask the Narrator....."; + mes "Glad to be of service."; + mes "I will open the PVP fight"; + mes "square for you! If you have"; + mes "any questions about the PVP"; + mes "modes or rules, Please ask"; + mes "the Narrator..."; next; - menu "^5533FF'PvP Yoyo Mode'^000000 Fight Square.",M_0, - "^FF5533'PvP Nightmare Mode'^000000 Fight Square.",M_1, - "^5533FF'PvP Duel (Fighting) Mode'^000000 Combat Square.",M_2, "End Conversation.",M_End; - M_0: - set @mode$, "Yoyo"; - set @players1, 128; - set @players2, 128; - set @room1$, "Prontera"; - set @room2$, "Izlude"; - set @room3$, "Payon"; - set @room4$, "Alberta"; - set @room5$, "Morroc"; - callsub sF_Move; - warp "pvp_y_room", 51, 23; - end; - M_1: - set @mode$, "Nightmare"; - set @players1, 64; - set @players2, 32; - set @room1$, "Sandwhich Arena"; - set @room2$, "Rock Arena"; - set @room3$, "Four Arena"; - set @room4$, "UnderCross Arena"; - set @room5$, "Copass Arena"; - callsub sF_Move; - warp "pvp_n_room", 51, 23; - end; - M_2: - + switch(select("^FF5533' PvP Nightmare Mode'^000000:^3355FF' PvP Yoyo Mode'^000000:^3355FF' PvP Event Mode'^000000:Quit")) { + case 1: mes "[Gate Keeper]"; - mes "To enter the Duel (Fighting) Mode square you must have an admission ticket. Do you have one?"; - next; - menu "Yes I do.",-, "No I don't.",sM_1; - - if(countitem(7029) < 1) goto sM_1; - delitem 7029, 1; - set @mode$, "Fighting"; - callsub sF_Move; - warp "pvp_y_room", 51, 23; - end; - - sM_1: - mes "[Gate Keeper]"; - mes "Eh? You don't have one? I'm sorry but this fight square is only for people who have admission or viewing tickets."; - mes "You cannot come in without one."; - close; - M_End: - mes "[Gate Keeper]"; - mes "In this war between Monsters and Humans this competition between people, PvP, encourages all of us to become stronger."; - mes "Come again anytime. We welcome your challenge!"; + mes "I am sorry, but currently the Nightmare mode service is not available."; + mes "Please use the Yoyo mode instead. We apologize for the inconvenience."; close; - -sF_Move: - mes "[Gate Keeper]"; - mes "The admission fee is 500 Zeny. Do you want to move to the "+@mode$+" fight square?"; - next; - menu "Yes",-, "No",M_End; - - if(BaseLevel < 31) goto sL_LowLvl; - if(Zeny < 500) goto sL_NdZeny; - set Zeny, Zeny - 500; + case 2: mes "[Gate Keeper]"; - mes "Prepare to be warped to the arena....."; + mes "The admission fee is 500 Zeny."; + mes "Do you want to move"; + mes "to the Yoyo Mode"; + mes "fight square?"; next; - return; - - sL_LowLvl: + switch(select("Move:Cancel")) { + case 1: + if (Zeny > 499 && BaseLevel > 30) { + set zeny,zeny-500; + warp "pvp_y_room",51,23; + end; + } + else { + mes "[Gate Keeper]"; + mes "Excuse me, but"; + mes "did you not come prepared?"; + mes "Double check that you have the"; + mes "500 Zeny entrance fee, and"; + mes "that you are at least level 31!"; + close; + } + case 2: mes "[Gate Keeper]"; - mes "In order to participate in PvP you must have a base level of at least ^FF4444'31'^000000."; + mes "In this war between Monsters"; + mes "and Humans. This competition"; + mes "between people, The PVP Mode!"; + mes "Encourages us all to become"; + mes "stronger. Come again."; + mes "We welcome your challenge!"; close; - sL_NdZeny: + } + case 3: + mes "[Gate Keeper]"; + mes "Welcome"; + mes "Please double check"; + mes "That you have the admission or viewing ticket!"; + next; + if (countitem(7028) == 0 && countitem(7029) == 0) { mes "[Gate Keeper]"; - mes "As I stated, the admission fee is ^FF4444'500'^000000 Zeny. You seem to be short on Zeny."; + mes "Eh? You don't have it? Then I"; + mes "am sorry, this fight square is"; + mes "only for people who have"; + mes "admission or viewing tickets."; + mes "You cannot come in without it."; close; + } + mes "[Gate Keeper]"; + mes "Yes, thank you for participating. Have fun!"; + close2; + warp "pvp_room",51,23; + end; + case 4: + mes "[Gate Keeper]"; + mes "In this war between Monsters"; + mes "and Humans. This competition"; + mes "between people, The PVP Mode!"; + mes "Encourages us all to become"; + mes "stronger. Come again."; + mes "We welcome your challenge!"; + close; + } } -// Geffen -------------------------------------------- -geffen_in,63,63,4 duplicate(GateKeep) Gate Keeper#2 83 -// Morroc---------------------------------------------- -morocc_in,144,142,4 duplicate(GateKeep) Gate Keeper#3 83 -// Payon ---------------------------------------------- -payon_in01,175,106,3 duplicate(GateKeep) Gate Keeper#4 83 -// Prontera ------------------------------------------- -prt_in,52,140,4 duplicate(GateKeep) Gate Keeper#5 83 +// Alberta +//============================================================ +alberta_in,22,146,4 script PVP Narrator#alb 84,{ + callfunc "F_PVPNarrator","alberta_in",22,148; +} +alberta_in,26,146,4 duplicate(PVPGateKeeper) Gate Keeper#alb 83 +// Prontera +//============================================================ +prt_in,56,140,4 script PVPNarrator#prt 84,{ + callfunc "F_PVPNarrator","prt_in",54,137; +} -//==========================================================================// -// PvP Yoyo Mode Fight Square Helpers -//==========================================================================// +prt_in,52,140,4 duplicate(PVPGateKeeper) Gate Keeper#prt 83 -// LV31 ~ 40 --------------------------------- -pvp_y_room,30,85,4 script Fight Square Helper::YHelper1 105,{ - callfunc "F_PvPRoom", "y_1", 31, 40; -OnInit: - waitingroom "LV31 ~ LV40",0; - end; +// Geffen +//============================================================ +geffen_in,67,63,4 script PVPNarrator#gef 84,{ + callfunc "F_PVPNarrator","geffen_in",70,59; } -// LV41 ~ 50 -------------------------------- -pvp_y_room,38,85,4 script Fight Square Helper::YHelper2 105,{ - callfunc "F_PvPRoom", "y_2", 41, 50; -OnInit: - waitingroom "LV41 ~ LV50",0; - end; -} +geffen_in,63,63,4 duplicate(PVPGateKeeper) Gate Keeper#gef 83 -// LV51 ~ 60 --------------------------------- -pvp_y_room,46,85,4 script Fight Square Helper::YHelper3 105,{ - callfunc "F_PvPRoom", "y_3", 51, 60; -OnInit: - waitingroom "LV51 ~ LV60", 0; - end; +// Payon +//============================================================ +payon_in01,142,50,4 script PVPNarrator#pay 84,{ + callfunc "F_PVPNarrator","payon_in01",142,46; } -// LV61 ~ 70 ------------------------------------ -pvp_y_room,54,85,4 script Fight Square Helper::YHelper4 105,{ - callfunc "F_PvPRoom", "y_4", 61, 70; -OnInit: - waitingroom "LV61 ~ LV70", 0; - end; -} +payon_in01,140,53,4 duplicate(PVPGateKeeper) Gate Keeper#pay 83 -// LV71 ~ 80 ------------------------------------ -pvp_y_room,62,85,4 script Fight Square Helper::YHelper5 105,{ - callfunc "F_PvPRoom", "y_5", 71, 80; -OnInit: - waitingroom "LV71 ~ LV80", 0; - end; -} -// LV81 ~ 90 -------------------------------------- -pvp_y_room,70,85,4 script Fight Square Helper::YHelper6 105,{ - callfunc "F_PvPRoom", "y_6", 81, 90; -OnInit: - waitingroom "LV81 ~ LV90", 0; - end; -} +// PVP Yoyo Mode Staff +//============================================================ +pvp_y_room,86,85,4 script Fight Square Reception Staff 105,{ + set .@mapcount_1,getmapusers("pvp_y_8-1"); + set .@mapcount_2,getmapusers("pvp_y_8-2"); + set .@mapcount_3,getmapusers("pvp_y_8-3"); + set .@mapcount_4,getmapusers("pvp_y_8-4"); + set .@mapcount_5,getmapusers("pvp_y_8-5"); + while(1) { + switch(select("Prontera [ "+.@mapcount_1+" / 128 ]:Izlude [ "+.@mapcount_2+" / 128 ]:Payon [ "+.@mapcount_3+" / 128 ]:Alberta [ "+.@mapcount_4+" / 128 ]:Morroc [ "+.@mapcount_5+" / 128 ]:Cancel")) { + case 1: + callsub S_CheckPVPRoom,@mapcount_1,"pvp_y_8-1"; + break; + case 2: + callsub S_CheckPVPRoom,@mapcount_2,"pvp_y_8-2"; + break; + case 3: + callsub S_CheckPVPRoom,@mapcount_3,"pvp_y_8-3"; + break; + case 4: + callsub S_CheckPVPRoom,@mapcount_4,"pvp_y_8-4"; + break; + case 5: + callsub S_CheckPVPRoom,@mapcount_5,"pvp_y_8-5"; + break; + case 6: + close; + } + } -// LV91 ~ -------------------------------------------- -pvp_y_room,78,85,4 script Fight Square Helper::YHelper7 105,{ - callfunc "F_PvPRoom", "y_7", 91, 255; OnInit: - waitingroom "LV91 ~ ", 0; + waitingroom "Free For All",0; end; -} -// No Limit ----------------------------------------- -pvp_y_room,86,85,4 script Fight Square Helper::YHelper8 105,{ - callfunc "F_PvPRoom", "y_8", 0, 255; -OnInit: - waitingroom "No Limit", 0; - end; +S_CheckPVPRoom: + if (getarg(0) >= 128) { + mes "[PVP Fight Square Reception Staff]"; + mes "This map is currently full."; + next; + return; + } + else { + warp getarg(1),0,0; + end; + } } +// PVP Nightmare Mode Staff +//============================================================ +pvp_n_room,30,85,4 script Fight Square Reception Staff 105,{ + set .@mapcount_1,getmapusers("pvp_n_8-1"); + set .@mapcount_2,getmapusers("pvp_n_8-2"); + set .@mapcount_3,getmapusers("pvp_n_8-3"); + set .@mapcount_4,getmapusers("pvp_n_8-4"); + set .@mapcount_5,getmapusers("pvp_n_8-5"); + while(1) { + 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")) { + case 1: + callsub S_CheckPVPRoom,@mapcount_1,"pvp_n_8-1",64; + break; + case 2: + callsub S_CheckPVPRoom,@mapcount_2,"pvp_n_8-2",32; + break; + case 3: + callsub S_CheckPVPRoom,@mapcount_3,"pvp_n_8-3",32; + break; + case 4: + callsub S_CheckPVPRoom,@mapcount_4,"pvp_n_8-4",32; + break; + case 5: + callsub S_CheckPVPRoom,@mapcount_5,"pvp_n_8-5",32; + break; + case 6: + close; + } + } -//==========================================================================// -// PvP Nightmare Mode Fight Square Helpers -//==========================================================================// -// LV31 ~ 40 ------------------------------------- -pvp_n_room,30,85,4 script Fight Square Helper#N1 105,{ - callfunc "F_PvPRoom", "n_1", 31, 40; OnInit: - waitingroom "LV31 ~ LV40",0; + waitingroom "Free For All",0; end; -} -// LV41 ~ 50 -------------------------------------- -pvp_n_room,38,85,4 script Fight Square Helper#N2 105,{ - callfunc "F_PvPRoom", "n_2", 41, 50; -OnInit: - waitingroom "LV41 ~ LV50",0; - end; +S_CheckPVPRoom: + if (getarg(0) >= getarg(2)) { + mes "[PVP Fight Square Reception Staff]"; + mes "This map is currently full."; + next; + return; + } + else { + warp getarg(1),0,0; + end; + } } -// LV51 ~ 60 ------------------------------------- -pvp_n_room,46,85,4 script Fight Square Helper#N3 105,{ - callfunc "F_PvPRoom", "n_3", 51, 60; -OnInit: - waitingroom "LV51 ~ LV60", 0; - end; +// Function +//============================================================ +function script F_PVPNarrator { + mes "[PVP Narrator]"; + mes "Hello and welcome!"; + mes "I am in charge of"; + mes "explaining the PVP Mode."; + mes "I am the PVP Narrator!"; + next; + switch(select("What is PVP?:What are the PVP Modes?:What are the rules for PVP?:Save Position.:End Dialog.")) { + case 1: + mes "[PVP Narrator]"; + mes "In short form"; + mes "PVP means,"; + mes "' Player VS Player Mode '"; + mes "It's a unique place for people"; + mes "To duel with each other."; + next; + mes "[PVP Narrator]"; + mes "Just tell the"; + mes "^3355FFGate Keeper^000000"; + mes "That you want to try. He will"; + mes "let you into the PVP square."; + next; + mes "[PVP Narrator]"; + mes "But, You need to be at"; + mes "least level 31. And you"; + mes "must pay the 500 zeny"; + mes "entrance fee in order to"; + mes "To enter a PVP Fight Square."; + close; + case 2: + mes "[PVP Narrator]"; + mes "When you are qualified, You"; + mes "can choose one of two Modes."; + mes "Yoyo Mode, Or"; + mes "Nightmare Mode."; + next; + mes "[PVP Narrator]"; + mes "Yoyo Mode is risk free."; + mes "You can experience PVP"; + mes "without any restriction or"; + mes "punishment. It is recommended"; + mes "that you practice your skills"; + mes "here before you move on."; + next; + mes "[PVP Narrator]"; + mes "Nightmare Mode is very"; + mes "dangerous! Please use caution."; + mes "You will lose some of your real"; + mes "EXP when you are defeated. And"; + mes "There is a small chance that"; + mes "you will drop some equipment."; + next; + mes "[PVP Narrator]"; + mes "However, if you win, the"; + mes "rewards can be great!"; + mes "To avoid misunderstanding."; + mes "You should think it over"; + mes "twice before you go there..."; + mes "Good Luck!"; + close; + case 3: + mes "[PVP Narrator]"; + mes "Each of the Fight squares"; + mes "have a row of Narrators to"; + mes "choose from based on your"; + mes "qualifications."; + next; + mes "[PVP Narrator]"; + mes "Each Narrator will ask"; + mes "which of the five PVP maps"; + mes "you wish to go to."; + mes "Choose, and go in!"; + next; + mes "[PVP Narrator]"; + mes "Each map has a limitation on"; + mes "the number of people who can"; + mes "participate. So you will see"; + mes "figures in the corner showing"; + mes "'Attendee/total'."; + next; + mes "[PVP Narrator]"; + mes "Also, there is a hidden EXP"; + mes "value in PVP mode. This EXP"; + mes "score will only apply inside"; + mes "of the PVP zone, so do not"; + mes "worry."; + next; + mes "[PVP Narrator]"; + mes "Every player's EXP at the"; + mes "beginning is usually 5 points."; + mes "If you win, you will"; + mes "increse your EXP by 1 point"; + next; + mes "[PVP Narrator]"; + mes "In the same way, when you"; + mes "lose... Your EXP will"; + mes "drop by 5 points."; + mes "So be careful!"; + next; + mes "[PVP Narrator]"; + mes "When you are defeated"; + mes "And your EXP is equal"; + mes "to or less than 0,"; + mes "You will be removed from PVP"; + mes "And your duel is finished!"; + next; + mes "[PVP Narrator]"; + mes "However, If your EXP is more"; + mes "than 0. You can still get help"; + mes "Through other players healing..."; + mes "Do you get it?"; + next; + mes "[PVP Narrator]"; + mes "The fighting commands inside of"; + mes "PVP Are the same as the normal."; + mes "All the basic controls are the"; + mes "same."; + next; + mes "[PVP Narrator]"; + mes "However, there is one thing..."; + mes "Within the PVP fight square,"; + mes "And in the PVP fighting zones"; + mes "You cannot save your position."; + mes "Remember well... These rules"; + mes "can help to ensure your victory."; + close; + case 4: + mes "[PVP Narrator]"; + mes "Position saved..."; + mes "Successfully."; + mes "Thank you very much, We"; + mes "will see you again soon."; + close2; + savepoint getarg(0),getarg(1),getarg(2); + end; + case 5: + mes "[PVP Narrator]"; + mes "In this war between Monsters"; + mes "and Humans. This competition"; + mes "between people, The PVP Mode!"; + mes "Encourages us all to become"; + mes "stronger. Come again."; + mes "We welcome your challenge!"; + close; + } } -// LV61 ~ 70 ------------------------------------ -pvp_n_room,54,85,4 script Fight Square Helper#N4 105,{ - callfunc "F_PvPRoom", "n_4", 61, 70; -OnInit: - waitingroom "LV61 ~ LV70", 0; - end; -} +// Event Contestant Entrance +//============================================================ +pvp_room,54,85,4 script Combat Square Register Staff 105,{ + if (countitem(7028) == 0) { + mes "[PVP Combat Square Register Staff]"; + mes "Eh? How did you get in here?"; + mes "This is the entrance for players only."; + mes "For details about viewers please proceed to the Register Staff on your right."; + close; + } + + if (.pvp_close_n_room == 1 && .pvp_close_s_room == 1 && .pvp_close_w_room == 1 && .pvp_close_e_room == 1) { + Set .pvp_close_n_room,0; + Set .pvp_close_s_room,0; + Set .pvp_close_w_room,0; + Set .pvp_close_e_room,0; + } + + if (select("Combat Square one :Cancel") == 1) { + mes "[PVP Combat Square Register Staff]"; + mes "'"+ strcharinfo(0) +"'"; + mes "Are you ready?!"; + next; + if (select("Yes!:No!") == 1) { + mes "[PVP Combat Square Register Staff]"; + mes "OK! I will send you inside"; + mes "Good luck!"; + close2; + delitem 7028,1; //Invite_For_Duel + while(1) { + switch(rand(1,4)) { + case 1: + if (.pvp_close_n_room == 0) { + set .pvp_close_n_room,1; + warp "pvp_2vs2",40,59; + end; + } + case 2: + if (.pvp_close_s_room == 0) { + set .pvp_close_s_room,1; + warp "pvp_2vs2",59,40; + end; + } + case 3: + if (.pvp_close_w_room == 0) { + set .pvp_close_w_room,1; + warp "pvp_2vs2",20,40; + end; + } + case 4: + if (.pvp_close_e_room == 0) { + set .pvp_close_e_room,1; + warp "pvp_2vs2",40,20; + end; + } + } + } + } + mes "[PVP Combat Square Register Staff]"; + mes "Come back anytime you are ready."; + close; + } + close; -// LV71 ~ 80 ----------------------------------- -pvp_n_room,62,85,4 script Fight Square Helper#N5 105,{ - callfunc "F_PvPRoom", "n_5", 71, 80; OnInit: - waitingroom "LV71 ~ LV80", 0; + Set .pvp_close_n_room,0; + Set .pvp_close_s_room,0; + Set .pvp_close_w_room,0; + Set .pvp_close_e_room,0; + waitingroom "Combat Square players entrance only",0; end; } -// LV81 ~ 90 ------------------------------------ -pvp_n_room,70,85,4 script Fight Square Helper#N6 105,{ - callfunc "F_PvPRoom", "n_6", 81, 90; +// Spectator Entrance +//============================================================ +pvp_room,62,85,4 script Compete Square viewer's entrance::PVPSpectator 105,{ + if (countitem(7029) == 0) { + mes "[PVP Compete Square Register Staff]"; + mes "This is the entrance for viewers."; + mes "For details about players entrance please proceed to the Register Staff on your left."; + close; + } + + if (select("Compete Square one:Cancel") == 1) { + mes "[PVP Combat Square Register Staff]"; + mes "You got it, thanks for participating. Have fun!"; + close2; + delitem 7029,1; //Admission_For_Duel + switch(rand(1,4)) { + case 1: warp "pvp_2vs2",39,7; end; + case 2: warp "pvp_2vs2",39,73; end; + case 3: warp "pvp_2vs2",7,39; end; + case 4: warp "pvp_2vs2",73,39; end; + } + } + close; + OnInit: - waitingroom "LV81 ~ LV90", 0; + waitingroom "Compete Square viewer's entrance",0; end; } -// LV91 ~ --------------------------------------- -pvp_n_room,78,85,4 script Fight Square Helper#N7 105,{ - callfunc "F_PvPRoom", "n_7", 91, 255; -OnInit: - waitingroom "LV91 ~ ", 0; +pvp_room,70,85,4 duplicate(PVPSpectator) Compete Square Register Staff 105 + +pvp_room,78,85,4 duplicate(PVPSpectator) Combat Square Register Staff 105 + +pvp_room,86,85,4 duplicate(PVPSpectator) Combat Square Register Staff 105 + +// Spectator Warps +//============================================================ +pvp_2vs2,5,4,0 script Combat Square Staff::PVPSpecWarp 45,1,1,{ +OnTouch: + mes "[Combat Square Staff]"; + mes "May I help you?"; + if (select("To the center viewer seat.:Leave Combat Square.") == 1) { + warp "pvp_2vs2",38,38; + end; + } + warp "pvp_room",84,39; end; } -// No Limit ---------------------------------- -pvp_n_room,86,85,4 script Fight Square Helper#N8 105,{ - callfunc "F_PvPRoom", "n_8", 0, 255; -OnInit: - waitingroom "No Limit", 0; +pvp_2vs2,5,74,0 duplicate(PVPSpecWarp) Combat Square Staff 45,1,1 + +pvp_2vs2,74,74,0 duplicate(PVPSpecWarp) Combat Square Staff 45,1,1 + +pvp_2vs2,74,5,0 duplicate(PVPSpecWarp) Combat Square Staff 45,1,1 + +pvp_2vs2,40,40,0 script Combat Square Staff 45,1,1,{ + set mapmove,0; + mes "[Combat Square Staff]"; + mes "May I help you?"; + if (select("To the side viewer seat.:Leave Combat Square.") == 1) { + switch(rand(1,4)) { + case 1: warp "pvp_2vs2",39,7; end; + case 2: warp "pvp_2vs2",39,73; end; + case 3: warp "pvp_2vs2",7,39; end; + case 4: warp "pvp_2vs2",73,39; end; + } + } + warp "pvp_c_room",84,39; end; } - -//***************************************************************// -// Function: PvP Fight Square Helper -//***************************************************************// -// arg(0): pvp room name -// arg(1): minimum base lvl to enter arena -// arg(2): maximum base lvl allowed to enter arena -//=============================================== -function script F_PvPRoom { - - mes "[Fight Square Helper]"; - if(BaseLevel < getarg(1)) goto L_LowLvl; - if(BaseLevel > getarg(2)) goto L_HiLvl; - mes "Please choose an arena to fight in..."; - M_Menu: +// PVP Area Exit warp +//============================================================ +pvp_room,51,19,0 script out 45,4,2,{ +OnTouch: + mes "[Combat Square Staff]"; + mes "Did you have fun in Combat Square?"; + mes "May I ask where you want to go?"; next; - menu @room1$ + " [" + getmapusers("pvp_" + getarg(0) + "-1") + "/" +@players1+ "]",M_Rm1, - @room2$ + " [" + getmapusers("pvp_" + getarg(0) + "-2") + "/" +@players2+ "]",M_Rm2, - @room3$ + " [" + getmapusers("pvp_" + getarg(0) + "-3") + "/" +@players2+ "]",M_Rm3, - @room4$ + " [" + getmapusers("pvp_" + getarg(0) + "-4") + "/" +@players2+ "]",M_Rm4, - @room5$ + " [" + getmapusers("pvp_" + getarg(0) + "-5") + "/" +@players2+ "]",M_Rm5, "Cancel",M_End; - M_Rm1: - if (getmapusers("pvp_" + getarg(0) + "-1") == @players1) goto L_Full; - warp "pvp_" + getarg(0) + "-1",0,0; - end; - M_Rm2: - if (getmapusers("pvp_" + getarg(0) + "-2") == @players2) goto L_Full; - warp "pvp_" + getarg(0) + "-2",0,0; - end; - M_Rm3: - if (getmapusers("pvp_" + getarg(0) + "-3") == @players2) goto L_Full; - warp "pvp_" + getarg(0) + "-3",0,0; - end; - M_Rm4: - if (getmapusers("pvp_" + getarg(0) + "-4") == @players2) goto L_Full; - warp "pvp_" + getarg(0) + "-4",0,0; - end; - M_Rm5: - if (getmapusers("pvp_" + getarg(0) + "-5") == @players2) goto L_Full; - warp "pvp_" + getarg(0) + "-5",0,0; - end; - M_End: - close; - - L_LowLvl: - mes "I'm sorry but you do not meet the Base Level requirements to enter. Please try a lower level room."; - close; - L_HiLvl: - mes "I'm sorry but you exceed the Base Level requirements to enter. Please try a higher level room."; - close; - L_Full: - mes "[Fight Square Helper]"; - mes "I'm sorry but this arena is full. Please choose another one to participate in...."; - goto M_Menu; -} + switch(select("prontera.:morocc.:geffen.:payon.:alberta.:Cancel.")) { + case 1: warp "prontera",107,60; end; + case 2: warp "morocc",157,96; end; + case 3: warp "geffen",120,36; end; + case 4: warp "payon",96,100; end; + case 5: warp "alberta",41,243; end; + case 6: close; + } +}
\ No newline at end of file |