//================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2012-2015 Hercules Dev Team //= Copyright (C) Euphy //= Copyright (C) Slim //= Copyright (C) CalciumKid //= Copyright (C) 5511 //= Copyright (C) Kisuka //= //= Hercules is free software: you can redistribute it and/or modify //= it under the terms of the GNU General Public License as published by //= the Free Software Foundation, either version 3 of the License, or //= (at your option) any later version. //= //= This program is distributed in the hope that it will be useful, //= but WITHOUT ANY WARRANTY; without even the implied warranty of //= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //= GNU General Public License for more details. //= //= You should have received a copy of the GNU General Public License //= along with this program. If not, see . //========================================================================= //= Poring War //================= Description =========================================== //= Join a team in battle between Angeling and Deviling. //================= Current Version ======================================= //= 1.2 //========================================================================= //== Poring War Recruiter ================================== prt_fild08,159,371,3 script Poring War Recruiter#wop 4_PORING,{ mes "[Poring]"; mes "!!!!!"; mes "Whoa-! Humans, ring~!!"; mes "Gotta hide, hide, right~!"; mes "They're tempting us with Jellopy! Don't be fooled!"; next; mes "[Poring]"; mes "Hwak!!"; mes "Ring, Ring~ What's wrong with you people..?"; mes "Hey.. Hey, there. Hu.. Humans..."; mes "Poring.."; next; mes "[Poring]"; mes "I.. I've got some interesting work for ya.. Would you be interested?"; mes "We.. we porings need lots and lots of brave human worriers, ring~."; next; switch(select("Alright, I'm with you!", "What's that?", "Ignore")) { case 1: if (Zeny > 499) { mes "[Poring]"; mes "Oh, and there's an entrance fee of 500 zeny, ring."; mes "Have a good time, ring."; delitem War_Badge,countitem(War_Badge); Zeny -= 500; close2; warp "poring_w01",112,138; end; } else { mes "[Poring]"; mes "Oh, and there's an entrance fee of 500 zeny, ring."; mes "..........."; mes "Hey, that's life, ring. We need zeny too you know~!"; close; } case 2: mes "[Poring]"; mes "That's.. because there's been a.. slight confliction in our.. Ring Society.."; mes "So we've got to.............have a battle to settle this problem.."; mes "You'll see when you get there!"; close; case 3: mes "[Poring]"; mes "Huhhhh! Hu.. Humans are so cold and cruel!!!"; close; } } //== Poring Vending Machine ================================ poring_w01,100,97,3 script Poring Vending Machine#w 4_PORING,{ if (checkweight(Emperium,3) == 0) { mes "- You are carrying too much items in order to use the Vending Machine. -"; close; } mes "It's a vending machine. You can use Poring Coints to purchase."; next; if(select("Purchase.", "Read the descriptions of goods.") == 1) { mes "You need Poring Coins to purchase items."; mes "You cannot use any zeny."; mes "Item name - Price Poring Coin(P.Co)"; next; switch(select("Marvelous Medal - 4 P.Co", "Union of Tribe - 20 P.Co", "Poring Box - 30 P.Co", "Next")) { case 1: callsub S_PoringVending,Marvelous_Medal,4; case 2: callsub S_PoringVending,Union_Of_Tribe,20; case 3: callsub S_PoringVending,Poring_Box,30; case 4: mes "This is a special item."; mes "Item name - Poring Coin(P.Co)"; next; switch(select("Wild Rose - 15 P.Co", "Doppelganger - 20 P.Co", "Egnigem Cenia - 20 P.Co", "Collection Item")) { case 1: callsub S_PoringVending,Wild_Rose_Scroll,15; case 2: callsub S_PoringVending,Doppelganger_Scroll,20; case 3: callsub S_PoringVending,Ygnizem_Scroll,20; case 4: mes "Figures of 1st Job Class Characters including Novice are finally on sale!"; mes "Figures except for Novice are all ^4d4dffCharacter bound items^000000."; mes "Please be aware before you make a purchase~"; mes "Item name - Poring Coin(P.Co)"; next; switch(select("Novice Figure - 50 P.Co", "Swordman Figure - 100 P.Co", "Thief Figure - 100 P.Co", "Merchant Figure - 100 P.Co", "Acolyte Figure - 100 P.Co", "Mage Figure - 100 P.Co", "Archer Figure - 100 P.Co", "Random Draw - 50 P.Co", "Cancel")) { case 1: callsub S_PoringVending,Novice_Figure,50; case 2: callsub S_PoringVending,Swordman_Figure,100; case 3: callsub S_PoringVending,Thief_Figure,100; case 4: callsub S_PoringVending,Merchant_Figure,100; case 5: callsub S_PoringVending,Acolyte_Figure,100; case 6: callsub S_PoringVending,Mage_Figure,100; case 7: callsub S_PoringVending,Archer_Figure,100; case 8: mes "You have chosen Random Draw."; mes "1 of 7 diffeent kinds of figures will be selected."; next; if(select("Draw", "Cancel") == 1) { if (countitem(Poring_Coin) >= 50) { mes "Insert the Poring coin and pull the lever."; mes "Click~ The item came out of the mouth of the Poring with a rumbling sound."; mes "What could it be?"; next; switch(rand(1,17)) { case 5: .@Random_Figure = 2766; break; // Swordman_Figure case 6: .@Random_Figure = 2767; break; // Acolyte_Figure case 8: .@Random_Figure = 2770; break; // Thief_Figure case 11: .@Random_Figure = 2771; break; // Merchant_Figure case 13: .@Random_Figure = 2769; break; // Archer_Figure case 14: .@Random_Figure = 2768; break; // Mage_Figure default: .@Random_Figure = 2765; break; // Novice_Figure } mes "A nice " + getitemname(.@Random_Figure) + "."; delitem Poring_Coin,50; // Poring_Coin getitem .@Random_Figure,1; close; } else { mes "Not enough coins."; close; } } mes "["+strcharinfo(PC_NAME)+"]"; mes "... Maybe next time..."; close; case 9: mes "["+strcharinfo(PC_NAME)+"]"; mes "... Maybe next time..."; close; } } } } mes "Selling Item List"; mes "===================="; mes "[Marvelous Medal]"; mes " : A medal made of special metal only produced in Hugel."; mes " "; mes "[Union of Tribe]"; mes " : A statue with the image of a strong union of Tribes. People believe watching this statue actually helps strengthen the relationships between Tribes."; mes " "; mes "[Poring Box]"; mes " : A box wrapped with Poring patterned wrapping paper. Something's inside."; mes " "; mes "[Wild Rose]"; mes " : Your friend Wild Rose will come and help you."; mes " "; mes "[Mr. Doppel]"; mes " : A young nobe, Doppelganger will come and help you."; mes " "; mes "[Egnigem Cenia]"; mes " : A beautiful girl, Egnigem Cenia from Somatology Laboratory, is going to come and help you."; mes " "; mes "[Novice Figure]"; mes " : A fine figure of a Novice. Can be equiped as an '^4d4dffaccessory^000000'."; mes " HP + 70, extra effect of HP + 30 when equipped by a Novices."; mes " "; mes "[Swordman Figure]"; mes " : A nice figure of a Swordman. Can be equipped as an '^4d4dffaccessory^000000'."; mes " VIT + 1, extra effect of DEF + 2 when equipped by Swordman classes."; mes " "; mes "[Merchant Figure]"; mes " : A fine figure of a Merchant. Can be equipped as an '^4d4dffaccessory^000000'."; mes " STR + 1, extra effect of CRI + 5 when equipped by Merchant classes."; mes " "; mes "[Thief Figure]"; mes " : A fine Figure of a Thief. Can be equipped as an '^4d4dffaccessory^000000'."; mes " AGI + 1, extra effectASPD + 3% when equipped by Thief classes."; mes " "; mes "[Mage Figure]"; mes " : A fine figure of a Mage. Can be equipped as an '^4d4dffaccessory^000000'."; mes " INT + 1, an extra SP Recovery increase by 5% when equipped by Mage classes."; mes " "; mes "[Acolyte Figure]"; mes " : A fine figure of an Acolyte. Can be equipped as an '^4d4dffaccessory^000000'."; mes " INT + 1, extra effct of SP + 50 when equipped by Acolyte classes."; mes " "; mes "[Archer Figure]"; mes " : A fine figure of an Archer. Can be equipped as an '^4d4dffaccessory^000000'."; mes " DEX + 1, extra effct of ATK + 10 when equipped by Archer classes."; close; end; S_PoringVending: if (countitem(Poring_Coin) >= getarg(1)) { mes "Click~ The item came out of the mouth of the Poring with a rumbling sound."; delitem Poring_Coin,getarg(1); // Poring_Coin getitem getarg(0),1; } else { mes "Not enough coins."; } close; } //== Information =========================================== poring_w01,96,97,3 script Sweet Devi#wop 4_DEVIRUCHI,{ if (MaxWeight-Weight < 2000 || checkweight(Knife,1) == 0) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } mes "[Deviruchi]"; mes "Oh, Another Human Warrior!"; mes "How come so many humans want to join our Poring War these days?"; next; mes "[Deviruchi]"; mes "Well, whatever, as long as I make money out of it~"; mes "Ok, Warriors-! Hahaha How badly have I wanted to shout it out~!!"; next; mes "[Deviruchi]"; mes "You, brave warrior, are you ready to join the holy battle of Angeling and Deviling?"; next; mes "[Deviruchi]"; mes "Hehehee, I feel kinda shy now."; mes "Anyway, human. Do you want to join our Poring War?"; next; switch(select("Am I qualified to join?", "How do I join the war?", "Cancel", "Let me out of here, please!")) { case 1: mes "[Deviruchi]"; mes "No racial discrimination! Anyone can join if they're willing to fight."; mes "But the weird thing is that you humans who used to be our greatest enemies are now our participants."; next; mes "[Deviruchi]"; mes "If you really want to fight in the war or whatever.. the Team recruiter's right there."; mes "Also, it's totally up to you which team you want to fight for~"; close; case 2: mes "[Deviruchi]"; mes "It's simple. You see that Team recruiting room?"; mes "Each team is composed of 5 people. As soon as 5 members are collected, the battle starts."; mes "You win if you kill the other team's Porings."; next; mes "[Deviruchi]"; mes "This also means that the battle needs the total of 10 members."; next; mes "[Deviruchi]"; mes "When all 10 members are collected, those participants get to choose a team. Each team then should have 5 members who are in the SAME party."; next; mes "[Deviruchi]"; mes "So, finally, half of the members joins the Angeling Team"; mes "and the other half joins the Deviling Team."; next; mes "[Deviruchi]"; mes "If you're a member of the Angeling Team, your goal is to kill the Devilings at the other team's base and vice versa."; next; mes "[Deviruchi]"; mes "Each team should try killing both Porings in the other team's base. After killing one Poring, you have a limited time to kill the other Poring. Otherwise, the one you killed will come back alive."; next; mes "[Deviruchi]"; mes "It's sort of like a capture the flag game but with Porings instead. Understood?"; mes "And you need to make sure you know who's in which party."; close; case 3: mes "[" + strcharinfo(PC_NAME) + "]"; mes "hmm, I see."; close; case 4: mes "[Deviruchi]"; mes "Oh, Alright. I can help."; mes "I'll send you back to your savepoint."; close2; if (WoP_SaveMap$ != "") { savepoint WoP_SaveMap$,WoP_SaveMap_X,WoP_SaveMap_Y; WoP_SaveMap$ = ""; WoP_SaveMap_X = 0; WoP_SaveMap_Y = 0; } warp getsavepoint(0), getsavepoint(1), getsavepoint(2); end; } OnPCLogoutEvent: getmapxy(.@map$, .@x, .@y, UNITTYPE_PC); if (.@map$ == "poring_w02") { if (WoP_SaveMap$ != "") { savepoint WoP_SaveMap$,WoP_SaveMap_X,WoP_SaveMap_Y; WoP_SaveMap$ = ""; WoP_SaveMap_X = 0; WoP_SaveMap_Y = 0; } delitem War_Badge,countitem(War_Badge); wop_team = 0; } end; OnPCDieEvent: getmapxy(.@map$, .@x, .@y, UNITTYPE_PC); if (.@map$ == "poring_w02" && wop_team) { if (getsavepoint(0) != "poring_w02" && WoP_SaveMap$ == "") { WoP_SaveMap$ = getsavepoint(0); WoP_SaveMap_X = getsavepoint(1); WoP_SaveMap_Y = getsavepoint(2); } if (wop_team == 1) { savepoint "poring_w02",rand(44,51),rand(76,87); } if (wop_team == 2) { savepoint "poring_w02",rand(146,153),rand(76,87); } } end; OnPCKillEvent: getmapxy(.@map$, .@x, .@y, UNITTYPE_PC); if (.@map$ == "poring_w02" && wop_team) { getnameditem War_Badge,rid2name(killedrid); } end; OnInit: removemapflag "poring_w02",mf_partylock; removemapflag "poring_w02",mf_pvp; removemapflag "poring_w02",mf_pvp_noguild; removemapflag "poring_w02",mf_pvp_nocalcrank; $@wop_teamcount = 0; $@wop_deadcount_a = 0; $@wop_deadcount_d = 0; $@wop_team_a = 0; $@wop_team_d = 0; $@wop_doorcount_a = 0; $@wop_doorcount_d = 0; end; } //== Poring Registers ====================================== poring_w01,91,97,3 script Poring#wop_door_all PORING,{ end; OnInit: waitingroom "[Recruiting 10 Battle Participants]",11,"Poring#wop_door_all::OnStartArena",10,500,9; enablewaitingroomevent; end; OnStartArena: warpwaitingpc "poring_w01",101,70; donpcevent "#wop_warp_rtry::OnReady"; disablewaitingroomevent; end; OnEnable: enablewaitingroomevent; end; OnDisable: disablewaitingroomevent; end; } poring_w01,91,68,5 script Poring#wop_door_a PORING,{ end; OnInit: waitingroom "[Angeling Team Recruiter]",6,"Poring#wop_door_a::OnStartArena",5,0,9; enablewaitingroomevent; end; OnStartArena: warpwaitingpc "poring_w02",26,175; disablewaitingroomevent; if ($@wop_teamcount == 0) { $@wop_teamcount = 1; donpcevent "Poring#wop_door_d::OnDevilingStart"; donpcevent "#wop_warp_rtry::OnStop"; } else if ($@wop_teamcount == 1) { donpcevent "#wop_master::OnStart"; donpcevent "Poring#wop_door_d::OnStop"; stopnpctimer; } end; OnEnable: enablewaitingroomevent; end; OnDisable: disablewaitingroomevent; end; OnAngelingStart: initnpctimer; end; OnStop: stopnpctimer; end; OnTimer1000: mapannounce "poring_w01","The greatest battle of all time, the recruitment for the Deviling Team is over, ring!",0,0xf08080; end; OnTimer4000: mapannounce "poring_w01","Join the proud Angeling Team with angel wings!!",0,0xf08080; end; OnTimer8000: mapannounce "poring_w01","You got one minute to join the Angeling Team. The battle will be cancelled in 1 minute if not ready!!",0,0xf08080; donpcevent "#wop_master::OnAngelingWarn"; end; OnTimer13000: mapannounce "poring_w01","This is the time to join the great Angeling Team, ring!",0,0xf08080; end; OnTimer20000: mapannounce "poring_w01","This battle is the proud of the porings! Ring! Join the Angeling Team!!",0,0xf08080; end; OnTimer30000: mapannounce "poring_w01","We don't have much time, ring. Don't let the Devilings contaminate you!",0,0xf08080; end; OnTimer40000: mapannounce "poring_w01","Come! Join us!",0,0xf08080; end; OnTimer50000: mapannounce "poring_w01","What a pitty! I can't believe that brave warriors are missing!",0,0xf08080; end; OnTimer55000: mapannounce "poring_w01","Deviling: You can't leave us waiting for ever!! We're going to cancel the battle, ring!",0,0x33FF66; end; OnTimer55100: donpcevent "Poring#wop_door_a::OnDisable"; donpcevent "Poring#wop_door_d::OnDisable"; donpcevent "Poring#wop_door_all::OnDisable"; $@wop_teamcount = 0; donpcevent "#wop_master::OnAngelingEnd"; donpcevent "#wop_warp_rtry::OnEnable"; end; OnTimer58000: mapannounce "poring_w01","...There is nothing we can do, ring... Lets cheer for the next one, ring.",0,0xf08080; donpcevent "#wop_master::OnReset"; stopnpctimer; end; } poring_w01,112,68,3 script Poring#wop_door_d PORING,{ end; OnInit: waitingroom "[Deviling Team Recruiter]",6,"Poring#wop_door_d::OnStartArena",5,0,9; enablewaitingroomevent; end; OnStartArena: warpwaitingpc "poring_w02",170,175; disablewaitingroomevent; if ($@wop_teamcount == 0) { $@wop_teamcount = 1; donpcevent "Poring#wop_door_a::OnAngelingStart"; donpcevent "#wop_warp_rtry::OnStop"; } else if ($@wop_teamcount == 1) { donpcevent "#wop_master::OnStart"; donpcevent "Poring#wop_door_a::OnStop"; stopnpctimer; } end; OnEnable: enablewaitingroomevent; end; OnDisable: disablewaitingroomevent; end; OnDevilingStart: initnpctimer; end; OnStop: stopnpctimer; end; OnTimer1000: mapannounce "poring_w01","No more good people, the recruitment for the Angeling Team is over, ring!",0,0x33FF66; end; OnTimer4000: mapannounce "poring_w01","Nice members of the Deviling Team! Lets gather, ring!!",0,0x33FF66; end; OnTimer8000: mapannounce "poring_w01","The battle will be cancelled if the members aren't recruited in one minute!!",0,0x33FF66; donpcevent "#wop_master::OnDevilingWarn"; end; OnTimer13000: mapannounce "poring_w01","This is the time to join the brave Deviling Team, ring!",0,0x33FF66; end; OnTimer20000: mapannounce "poring_w01","D,E,V,I,L,I,N,G! Deviling Team! Come and join us!",0,0x33FF66; end; OnTimer30000: mapannounce "poring_w01","There ain't much time left, ring! If you wish to became a member of Deviling Team, Come and Join!",0,0x33FF66; end; OnTimer40000: mapannounce "poring_w01","D,E,V,I,L,I,N,G! Deviling Team! Come and Join us!!",0,0x33FF66; end; OnTimer50000: mapannounce "poring_w01","What a pitty! I can't believe there aren't enough players!",0,0x33FF66; end; OnTimer55000: mapannounce "poring_w01","Angeling: We got no time to wait, stupid Deviling! The battle has been cancelled, ring!",0,0xf08080; end; OnTimer55100: donpcevent "Poring#wop_door_a::OnDisable"; donpcevent "Poring#wop_door_d::OnDisable"; donpcevent "Poring#wop_door_all::OnDisable"; $@wop_teamcount = 0; donpcevent "#wop_master::OnDevilingEnd"; donpcevent "#wop_warp_rtry::OnEnable"; end; OnTimer58000: mapannounce "poring_w01","...Ughhhhhh... Tell me that isn't happening, ring! Right, Be ready for the next one, ring!!",0,0x33FF66; donpcevent "#wop_master::OnReset"; stopnpctimer; end; } poring_w01,103,70,0 script #wop_warp_rtry HIDDEN_WARP_NPC,13,13,{ end; OnInit: disablenpc "#wop_warp_rtry"; end; OnEnable: enablenpc "#wop_warp_rtry"; end; OnDisable: disablenpc "#wop_warp_rtry"; end; OnReady: initnpctimer; end; OnStop: stopnpctimer; end; OnTouch: warp "poring_w01",112,138; end; OnTimer3000: mapannounce "poring_w01","Porings: I am giving you 1 minute. Choose your team, ring!",0,0xf08080; end; OnTimer33000: mapannounce "poring_w01","Porings: 30 seconds left! Come on, Choose a team now, ring?!!",0,0xf08080; end; OnTimer58000: mapannounce "poring_w01","Porings: You sure you're a warrior?!!! I'm disappointed, ring!",0,0xf08080; end; OnTimer60000: mapannounce "poring_w01","The battle has been canceled since not all teams are full!!",0,0xf08080; end; OnTimer61000: enablenpc "#wop_warp_rtry"; end; OnTimer65000: disablenpc "#wop_warp_rtry"; donpcevent "#wop_master::OnReset"; stopnpctimer; end; } //== Mr. Doppel ============================================ poring_w02,26,181,3 script Mr. Doppel#wop_team_a 8_DOPPEL,{ if (checkweight(Emperium,3) == 0) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } .@a_tname$ = getpartyname($@wop_team_a); .@pname$ = getpartyname(getcharid(CHAR_ID_PARTY)); if ($@wop_team_a != 0 && $@wop_team_a == getcharid(CHAR_ID_PARTY)) { mes "[Mr. Doppel]"; mes "So, everyone joined the party?"; mes "The name of the party is... " + .@pname$ + ", right?"; mes "I'll transfer you to the battle staging area."; next; switch(select("No! Wait!", "Go to the staging area.")) { case 1: mes "[Mr. Doppel]"; mes "What is it now?"; mes "Can't you have a little more consideration?"; mes "You don't have much time. Decide now!"; next; mes "[Mr. Doppel]"; mes "If you don't get there in time, you won't make it to the battle."; close; case 2: if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) { mes "[Mr. Doppel]"; mes "So, you are the leader. Before going to the battlefield, you should check all your members."; next; switch(select("Very well. I'll be the last.", "I am the last. Send me to the battlefield.")) { case 1: mes "[Mr. Doppel]"; mes "First, make sure all the members are in your party."; close; case 2: mes "[Mr. Doppel]"; mes "Very well. Nice you have done everything on time."; delitem War_Badge,countitem(War_Badge); close2; wop_team = 0; warp "poring_w02",44,82; end; } } else { mes "[Mr. Doppel]"; mes "Right. I'm gonna send you to the battle staging area."; mes "Wait for all the other party members there."; delitem War_Badge,countitem(War_Badge); close2; wop_team = 0; warp "poring_w02",44,82; end; } } } else { if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) { if ($@wop_team_a == 0) { mes "[Mr. Doppel]"; mes "So, you are the party leader of Angeling Team."; mes "Are you sure all the members are in your party?"; mes "First, lets register your party name, after, we'll check the members."; next; mes "[Mr. Doppel]"; mes "Lets see... The name of the party is..."; mes " "; mes "^4d4dff " + .@pname$ + " ^000000"; mes " "; mes "Right? That is the name you wish?"; next; switch(select("No! You're wrong.", "Yes. I would like to register that name.", "Cancel")) { case 1: mes "[Mr. Doppel]"; mes "Hey, I don't have all day! Make your mind and register as fast as you can."; mes "Don't forget to let all the members join the party. Only the members of a registered party can join the battle."; close; case 2: mes "[Mr. Doppel]"; mes "So, I'll register your party name as - " +.@pname$ + " -."; mes "Now, Tell your ^4d4dffmembers to confirm your party^000000."; mes "I'll send you to the battlefield as soon as I confirm your party."; $@wop_team_a = getcharid(CHAR_ID_PARTY); mapannounce "poring_w02","The registration of the Angeling Team has been confirmed. The party members must confirm their team with Mr. Doppel.",0,0x33FF66; close; case 3: mes "[Mr. Doppel]"; mes "The clock is ticking. Make up your mind and register as soon as you can."; close; } } else { mes "[Mr. Doppel]"; mes "So, you are the leader of the party."; mes "Haven't you finished the party registration yet?"; mes "You must stay on the one that has been registered!"; next; mes "[Mr. Doppel]"; mes "The name of the party is "; mes " " + .@a_tname$ + " "; mes "Please, confirm."; close; } } else { mes "[Mr. Doppel]"; mes "If you aren't a registered member of the party, you can't join the battle."; next; mes "[Mr. Doppel]"; mes "I'll check again and, after the registeration of the party name, you'll be sent to the battlefield."; mes "We must stay together as a party, since this is a team game. Otherwise, we'll have problems."; close; } } OnInit: disablenpc "Mr. Doppel#wop_team_a"; end; OnEnable: enablenpc "Mr. Doppel#wop_team_a"; end; OnDisable: disablenpc "Mr. Doppel#wop_team_a"; end; } poring_w02,170,181,3 script Mr. Doppel#wop_team_d 8_DOPPEL,{ if (checkweight(Emperium,3) == 0) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } .@d_tname$ = getpartyname($@wop_team_d); .@pname$ = getpartyname(getcharid(CHAR_ID_PARTY)); if ($@wop_team_d != 0 && $@wop_team_d == getcharid(CHAR_ID_PARTY)) { mes "[Mr. Doppel]"; mes "So, everyone joined the party?"; mes "The name of the party is... " + .@pname$ + ", right?"; mes "I'll transfer you to the battle staging area."; next; switch(select("No! Wait!", "Go to the staging area.")) { case 1: mes "[Mr. Doppel]"; mes "What is it now?"; mes "Can't you have a little more consideration?"; mes "You don't have much time. Decide now!"; next; mes "[Mr. Doppel]"; mes "If you don't get there in time, you won't make it to the battle."; close; case 2: if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) { mes "[Mr. Doppel]"; mes "So, you are the leader. Before going to the battlefield, you should check all your members."; next; switch(select("Very well. I'll be the last.", "I am the last. Send me to the battlefield.")) { case 1: mes "[Mr. Doppel]"; mes "First, make sure all the members are in your party."; close; case 2: mes "[Mr. Doppel]"; mes "Very well. Nice you have done everything on time."; delitem War_Badge,countitem(War_Badge); close2; wop_team = 0; warp "poring_w02",153,82; end; } } else { mes "[Mr. Doppel]"; mes "Right. I'm gonna send you to the battle staging area."; mes "Wait for all the other party members there."; delitem War_Badge,countitem(War_Badge); close2; wop_team = 0; warp "poring_w02",153,82; end; } } } else { if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) { if ($@wop_team_d == 0) { mes "[Mr. Doppel]"; mes "So, you are the party leader of Deviling Team."; mes "Are you sure all the members are in your party?"; mes "First, lets register your party name, after, we'll check the members."; next; mes "[Mr. Doppel]"; mes "Lets see... The name of the party is..."; mes " "; mes "^4d4dff " + .@pname$ + " ^000000"; mes " "; mes "Right? That is the name you wish?"; next; switch(select("No! You're wrong.", "Yes. I would like to register that name.", "Cancel")) { case 1: mes "[Mr. Doppel]"; mes "Hey, I don't have all day! Make your mind and register as fast as you can."; mes "Don't forget to let all the members join the party. Only the members of a registered party can join the battle."; close; case 2: mes "[Mr. Doppel]"; mes "So, I'll register your party name as - " + .@pname$ + " -."; mes "Now, Tell your ^4d4dffmembers to confirm your party^000000."; mes "I'll send you to the battlefield as soon as I confirm your party."; $@wop_team_d = getcharid(CHAR_ID_PARTY); mapannounce "poring_w02","The registration of the Deviling Team has been confirmed. The party members must confirm their team with Mr. Doppel.",0,0x33FF66; close; case 3: mes "[Mr. Doppel]"; mes "The clock is ticking. Make up your mind and register as soon as you can."; close; } } else { mes "[Mr. Doppel]"; mes "So, you are the leader of the party."; mes "Haven't you finished the party registration yet?"; mes "You must stay on the one that has been registered!"; next; mes "[Mr. Doppel]"; mes "The name of the party is "; mes " " + .@d_tname$ + " "; mes "Please, confirm."; close; } } else { mes "[Mr. Doppel]"; mes "If you aren't a registered member of the party, you can't join the battle."; next; mes "[Mr. Doppel]"; mes "I'll check again and, after the registeration of the party name, you'll be sent to the battlefield."; mes "We must stay together as a party, since this is a team game. Otherwise, we'll have problems."; close; } } OnInit: disablenpc "Mr. Doppel#wop_team_d"; end; OnEnable: enablenpc "Mr. Doppel#wop_team_d"; end; OnDisable: disablenpc "Mr. Doppel#wop_team_d"; end; } poring_w02,1,1,0 script #wop_master FAKE_NPC,{ end; OnReset: removemapflag "poring_w02",mf_partylock; removemapflag "poring_w02",mf_pvp; removemapflag "poring_w02",mf_pvp_noguild; removemapflag "poring_w02",mf_pvp_nocalcrank; mapwarp "poring_w02","poring_w01",112,138; donpcevent "#wop_angellium1::OnReset"; donpcevent "#wop_angellium2::OnReset"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; $@wop_team_a = 0; $@wop_team_d = 0; $@wop_deadcount_a = 0; $@wop_deadcount_d = 0; $@wop_teamcount = 0; $@wop_doorcount_a = 0; $@wop_doorcount_d = 0; donpcevent "#wop_warp_a::OnDisable"; donpcevent "#wop_warp_d::OnDisable"; donpcevent "#wop_warp_rtry::OnDisable"; donpcevent "Poring#wop_door_a::OnEnable"; donpcevent "Poring#wop_door_d::OnEnable"; donpcevent "Poring#wop_door_all::OnEnable"; stopnpctimer; end; OnStart: initnpctimer; end; OnAngelingWarn: mapannounce "poring_w02","Deviling Team Recruitment is complete. The battle will be canceled automatically if the Angeling Team Recruitment isn't ready in 1 minute.",0,0xf08080; end; OnDevilingWarn: mapannounce "poring_w02","Angeling Team Recruitment is complete. The battle will be canceled automatically if the Deviling Team Recruitment isn't ready in 1 minute.",0,0xf08080; end; OnDevilingEnd: mapannounce "poring_w02","Deviling Team Recruitment failed. The battle will be canceled shortly.",0,0xf08080; end; OnAngelingEnd: mapannounce "poring_w02","Angeling Team Recruitment failed. The battle will be canceled shortly.",0,0xf08080; end; OnStop: stopnpctimer; end; OnAngelingWin: .@i = 1; OnDevilingWin: removemapflag "poring_w02",mf_partylock; removemapflag "poring_w02",mf_pvp; removemapflag "poring_w02",mf_pvp_noguild; removemapflag "poring_w02",mf_pvp_nocalcrank; if (.@i) mapannounce "poring_w02","Mr. Doppel: Angeling Team of party " + getpartyname($@wop_team_a) + " won the battle!",0,0xf08080; else mapannounce "poring_w02","Mr. Doppel: Deviling Team of party " + getpartyname($@wop_team_d) + " won the battle!",0,0xf08080; donpcevent "Deviruchi#wop_endmaster::OnEnable"; stopnpctimer; // Reset Barriers donpcevent "#aroom_ingate_wop::OnDisable"; donpcevent "#aroom_outgate_wop::OnDisable"; donpcevent "#droom_ingate_wop::OnDisable"; donpcevent "#droom_outgate_wop::OnDisable"; end; OnTimer5000: mapannounce "poring_w02","Mr. Doppel: Welcome to all the warriors that have come to fight the battle.",0,0xf08080; donpcevent "Mr. Doppel#wop_team_a::OnEnable"; donpcevent "Mr. Doppel#wop_team_d::OnEnable"; end; OnTimer8000: mapannounce "poring_w02","Mr. Doppel: Each member of the team must join the group, and the leader will register their team name.",0,0xf08080; end; OnTimer12000: mapannounce "poring_w02","Mr. Doppel: You have 50 seconds. Join the group, register it's name and go to the battlefield.",0,0xf08080; end; OnTimer32000: mapannounce "poring_w02","Mr. Doppel: You still have 30 seconds. Join the group, register it's name and go to the battlefield.",0,0xf08080; end; OnTimer62000: mapannounce "poring_w02","Mr. Doppel: Time is up. The rules will be explained shortly before the battle.",0,0xf08080; end; OnTimer70000: mapannounce "poring_w02","Mr. Doppel: All ready? Let me explain the battle rules.",0,0xf08080; end; OnTimer75000: mapannounce "poring_w02","Mr. Doppel: The Angeling Team has to protect 2 Angelings on their bases and, at the same time, eliminate the Devilings on their Deviling Team bases, and vice-versa.",0,0xf08080; end; OnTimer80000: mapannounce "poring_w02","Mr. Doppel: Your team wins if you eliminate the 2 monsters of the enemy team. The rules are as simple as that.",0,0xf08080; end; OnTimer85000: mapannounce "poring_w02","Mr. Doppel: But the Angelings or the Devilings return to life after a certain period of time, so it's important to eliminate the other Poring quickly, after you have eliminated the first.",0,0xf08080; end; OnTimer90000: mapannounce "poring_w02","Mr. Doppel: Also know that those Porings are furious and will attack everybody, it doesnt matter to what team they belong.",0,0xf08080; end; OnTimer95000: mapannounce "poring_w02","Mr. Doppel: Basically, the Porings are natural enemies of the humans, so the attack is innevitable, even if both are on the same team.",0,0xf08080; end; OnTimer100000: mapannounce "poring_w02","Mr. Doppel: In certain areas, you will need War Badges that are obtained by eliminating members of the other team. Alright, lets begin!",0,0xf08080; setmapflag "poring_w02",mf_partylock; setmapflag "poring_w02",mf_pvp; setmapflag "poring_w02",mf_pvp_noguild; setmapflag "poring_w02",mf_pvp_nocalcrank; donpcevent "#wop_warp_a::OnEnable"; donpcevent "#wop_warp_d::OnEnable"; donpcevent "#wop_angellium1::OnAngelingSpawn"; donpcevent "#wop_angellium2::OnAngelingSpawn"; donpcevent "#wop_devillium1::OnDevilingSpawn"; donpcevent "#wop_devillium2::OnDevilingSpawn"; end; OnTimer700000: mapannounce "poring_w02","Mr. Doppel: Time is up. Soon, you will be teleported to the Winners Stage.",0,0xf08080; removemapflag "poring_w02",mf_partylock; removemapflag "poring_w02",mf_pvp; removemapflag "poring_w02",mf_pvp_noguild; removemapflag "poring_w02",mf_pvp_nocalcrank; donpcevent "#wop_angellium1::OnReset"; donpcevent "#wop_angellium2::OnReset"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; end; OnTimer703000: donpcevent "Deviruchi#wop_endmaster::OnEnable"; stopnpctimer; end; } poring_w02,51,82,0 script #wop_warp_a HIDDEN_WARP_NPC,1,1,{ end; OnInit: disablenpc "#wop_warp_a"; end; OnEnable: enablenpc "#wop_warp_a"; specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#wop_warp_a")); end; OnDisable: disablenpc "#wop_warp_a"; end; OnTouch: wop_team = 1; warp "poring_w02",57,82; end; } poring_w02,146,82,0 script #wop_warp_d HIDDEN_WARP_NPC,1,1,{ end; OnInit: disablenpc "#wop_warp_d"; end; OnEnable: enablenpc "#wop_warp_d"; specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#wop_warp_d")); end; OnDisable: disablenpc "#wop_warp_d"; end; OnTouch: wop_team = 2; warp "poring_w02",140,82; end; } //== Poring Spawn ========================================== poring_w02,80,82,0 script #wop_angellium1 FAKE_NPC,{ end; OnReset: killmonster "poring_w02","#wop_angellium1::OnMyMobDead"; stopnpctimer; end; OnAngelingSpawn: monster "poring_w02",80,82,"Angeling",1766,1,"#wop_angellium1::OnMyMobDead"; end; OnMyMobDead: ++$@wop_deadcount_a; if ($@wop_deadcount_a == 1) { mapannounce "poring_w02","Mr. Doppel: The Angeling on the 1st base has been killed! 1 point lost!!",0,0x00ff00; initnpctimer; } else { donpcevent "#wop_angellium1::OnReset"; donpcevent "#wop_angellium2::OnReset"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_master::OnDevilingWin"; } end; OnTimer120000: --$@wop_deadcount_a; donpcevent "#wop_angellium1::OnAngelingSpawn"; mapannounce "poring_w02","Mr. Doppel: The Angeling on the 1st base has been revived! 1 point gained!!",0,0x00ff00; stopnpctimer; } poring_w02,98,41,0 script #wop_angellium2 FAKE_NPC,{ end; OnReset: killmonster "poring_w02","#wop_angellium2::OnMyMobDead"; stopnpctimer; end; OnAngelingSpawn: monster "poring_w02",98,41,"Angeling",1766,1,"#wop_angellium2::OnMyMobDead"; end; OnMyMobDead: ++$@wop_deadcount_a; if ($@wop_deadcount_a == 1) { mapannounce "poring_w02","Mr. Doppel: The Angeling on the 2nd base has been killed! 1 point lost!!",0,0x00ff00; initnpctimer; } else { donpcevent "#wop_angellium1::OnReset"; donpcevent "#wop_angellium2::OnReset"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_master::OnDevilingWin"; } end; OnTimer120000: --$@wop_deadcount_a; donpcevent "#wop_angellium2::OnAngelingSpawn"; mapannounce "poring_w02","Mr. Doppel: The Angeling on the 2nd base has been revived! 1 point gained!!",0,0x00ff00; stopnpctimer; end; } poring_w02,116,82,0 script #wop_devillium1 FAKE_NPC,{ end; OnReset: killmonster "poring_w02","#wop_devillium1::OnMyMobDead"; stopnpctimer; end; OnDevilingSpawn: monster "poring_w02",116,82,"Deviling",1767,1,"#wop_devillium1::OnMyMobDead"; end; OnMyMobDead: ++$@wop_deadcount_d; if ($@wop_deadcount_d == 1) { mapannounce "poring_w02","Mr. Doppel: The Deviling on the 1st base has been killed! 1 point lost!!",0,0x00ff00; initnpctimer; } else { donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_master::OnAngelingWin"; } end; OnTimer120000: --$@wop_deadcount_d; donpcevent "#wop_devillium1::OnDevilingSpawn"; mapannounce "poring_w02","Mr. Doppel: The Deviling on the 1st base has been revived! 1 point gained!!",0,0x00ff00; stopnpctimer; end; } poring_w02,98,124,0 script #wop_devillium2 FAKE_NPC,{ end; OnReset: killmonster "poring_w02","#wop_devillium2::OnMyMobDead"; stopnpctimer; end; OnDevilingSpawn: monster "poring_w02",98,124,"Deviling",1767,1,"#wop_devillium2::OnMyMobDead"; end; OnMyMobDead: ++$@wop_deadcount_d; if ($@wop_deadcount_d == 1) { mapannounce "poring_w02","Mr. Doppel: The deviling on the 2nd base has been killed! 1 point lost!!",0,0x00ff00; initnpctimer; } else { donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_master::OnAngelingWin"; } end; OnTimer120000: --$@wop_deadcount_d; donpcevent "#wop_devillium2::OnDevilingSpawn"; mapannounce "poring_w02","Mr. Doppel: The deviling on the 2nd base has been revived! 1 point gained!!",0,0x00ff00; stopnpctimer; } //== Deviruchi ============================================= poring_w02,99,201,3 script Deviruchi#wop_endmaster 4_DEVIRUCHI,{ if (MaxWeight-Weight < 2000 || checkweight(Knife,1) == 0) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } .@a_point = $@wop_deadcount_a; .@d_point = $@wop_deadcount_d; if (getcharid(CHAR_ID_PARTY) == $@wop_team_a) { if (.@a_point < .@d_point) { mes "[Devi]"; mes "Good work!"; mes "Thanks to you, we increased our chances of victory."; mes "Please, accept these Poring Coins as a sign of our appreciation."; next; if (wop_team == 1) { mes "[Devi]"; mes "Goodbye, my human friend."; close2; getitem Poring_Coin,3; // Poring_Coin warp "prt_fild08",150,370; end; } else { mes "[Devi]"; mes "Wait a minute, you look suspicious!!"; mes "Ah, I got it! You are on the side of the Devilings?!"; mes "You are spying on us!"; mes "I will never forgive you!"; close2; percentheal 99,0; warp "prt_fild08",150,370; end; } } else if (.@a_point == .@d_point) { mes "[Devi]"; mes "You did the best you could."; mes "I' ts a shame the battle was tied..."; mes "Even so, thanks for coming to fight for us. Please, accept this Poring Coin."; next; if (wop_team == 1) { mes "[Devi]"; mes "Goodbye, my human friend."; close2; getitem Poring_Coin,1; // Poring_Coin warp "prt_fild08",150,370; end; } else { mes "[Devi]"; mes "Wait a minute, you look suspicious!!"; mes "Ah, I got it! You are on the side of the Devilings?!"; mes "You are spying on us!"; mes "It must have been you that made us tie the battle!!"; mes "I will never forgive you!"; close2; percentheal 99,0; warp "prt_fild08",150,370; end; } } else { if (wop_team == 1) { mes "[Devi]"; mes "Well, I guess we had bad luck..."; mes "I cant give you anything, since we lost and everything..."; next; mes "[Devi]"; mes "Goodbye, my human friend."; close2; warp "prt_fild08",150,370; end; } else { mes "[Devi]"; mes "Wait a minute... There is a traitor here!"; mes "Ah, I got it! You are on the side of the Devilings?!"; mes "You are spying on us, Angelings!"; next; mes "[Devi]"; mes "You should be ashamed!"; close2; percentheal 99,0; warp "prt_fild08",150,370; end; } } } else if (getcharid(CHAR_ID_PARTY) == $@wop_team_d) { if (.@a_point > .@d_point) { mes "[Devi]"; mes "Good work!"; mes "Thanks to you, we increased our chances of victory."; mes "Please, accept these Poring Coins as a sign of our appreciation."; next; if (wop_team == 2) { mes "[Devi]"; mes "Goodbye, my human friend."; close2; getitem Poring_Coin,3; // Poring_Coin warp "prt_fild08",150,370; end; } else { mes "[Devi]"; mes "Wait a minute, you look suspicious!!"; mes "Ah, I got it! You are on the side of the Angelings?!"; mes "You are spying on us!!"; mes "I will never forgive you!"; close2; percentheal 99,0; warp "prt_fild08",150,370; end; } } else if (.@a_point == .@d_point) { mes "[Devi]"; mes "You did the best you could."; mes "It's a shame the battle was tied..."; mes "Even so, thanks for coming to fight for us. Please, accept this Poring Coin."; next; if (wop_team == 2) { mes "[Devi]"; mes "Goodbye, my human friend."; close2; getitem Poring_Coin,1; // Poring_Coin warp "prt_fild08",150,370; end; } else { mes "[Devi]"; mes "Wait a minute, you look suspicious!!"; mes "Ah, I got it! You are on the side of the Angelings?!"; mes "You are spying on us!"; mes "It must have been you that made us tie the battle!!"; mes "I will never forgive you!"; close2; percentheal 99,0; warp "prt_fild08",150,370; end; } } else { if (wop_team == 2) { mes "[Devi]"; mes "Well, I guess we had bad luck..."; mes "I cant give you anything, since we lost and everything..."; next; mes "[Devi]"; mes "I will allow you to return to your human world."; close2; warp "prt_fild08",150,370; end; } else { mes "[Devi]"; mes "Wait a minute, you look suspicious!!"; mes "Ah, I got it! You are on the side of the Angelings?!"; mes "You are spying on us, Devilings!"; next; mes "[Devi]"; mes "You should be ashamed!"; close2; percentheal 99,0; warp "prt_fild08",150,370; end; } } } else { mes "[Devi]"; mes "This is weird...Your party name ain't registered."; mes "Im sorry, but rules are rules. I can't help you if your party ain't registered."; close; } OnInit: disablenpc "Deviruchi#wop_endmaster"; end; OnEnable: enablenpc "Deviruchi#wop_endmaster"; initnpctimer; end; OnDisable: disablenpc "Deviruchi#wop_endmaster"; end; OnTimer3000: mapwarp "poring_w02","poring_w02",99,196; end; OnTimer5000: mapannounce "poring_w02","Mr. Doppel: Allow me to offer a souvenir to the humans that fought bravely for the Porings! Please, speak to Devi.",0,0x00ff00; end; OnTimer65000: mapannounce "poring_w02","Mr. Doppel: Time is up! Let me teleport you.",0,0x00ff00; end; OnTimer68000: mapwarp "poring_w02","poring_w01",112,138; end; OnTimer68100: donpcevent "#wop_master::OnStop"; donpcevent "#wop_devillium1::OnReset"; donpcevent "#wop_devillium2::OnReset"; donpcevent "#wop_angellium1::OnReset"; donpcevent "#wop_angellium2::OnReset"; $@wop_team_a = 0; $@wop_team_d = 0; $@wop_deadcount_a = 0; $@wop_deadcount_d = 0; $@wop_teamcount = 0; $@wop_doorcount_a = 0; $@wop_doorcount_d = 0; donpcevent "#wop_warp_a::OnDisable"; donpcevent "#wop_warp_d::OnDisable"; donpcevent "Mr. Doppel#wop_team_a::OnDisable"; donpcevent "Mr. Doppel#wop_team_d::OnDisable"; donpcevent "#wop_warp_rtry::OnDisable"; donpcevent "Poring#wop_door_a::OnEnable"; donpcevent "Poring#wop_door_d::OnEnable"; donpcevent "Poring#wop_door_all::OnEnable"; stopnpctimer; end; } //== Gate Guardian ========================================= poring_w02,99,52,0 script Angeling Guardian#wop_da HIDDEN_NPC,{ cutin "wop_emb0" + $@wop_doorcount_a,1; if ($@wop_doorcount_a < 4) { if (wop_team == 2) { mes "There is a device to equip the War Badges."; mes "I can see the empty slots to equip the Badges."; next; switch(select("Equip War Badge.", "Cancel.")) { case 1: if (countitem(War_Badge)) { if ($@wop_doorcount_a < 4) { mes "War Badge equipped."; delitem War_Badge,1; // War_Badge ++$@wop_doorcount_a; cutin "wop_emb0" + $@wop_doorcount_a,1; if ($@wop_doorcount_a == 4) { next; mes "Gate Activated."; donpcevent "#aroom_ingate_wop::OnEnable"; donpcevent "#aroom_outgate_wop::OnEnable"; } close2; } else { mes "All War Badges equipped."; mes "No need to equip any more."; close2; } } else { mes "^4d4dff - War Badge missing. You can obtain a War badge by killing members of the other team. - ^000000"; close2; } break; case 2: mes "Cancel."; close2; } } else { mes "There is a device to equip a War Badge."; mes "Be carefull to not allow the enemy to take and equip your War Badge here."; close2; } } else { mes "All War Badges have been equipped."; close2; } cutin "",255; end; OnInit: $@wop_doorcount_a = 0; end; } poring_w02,103,52,0 script #aroom_ingate_wop HIDDEN_WARP_NPC,1,1,{ end; OnInit: disablenpc "#aroom_ingate_wop"; end; OnEnable: enablenpc "#aroom_ingate_wop"; end; OnDisable: disablenpc "#aroom_ingate_wop"; end; OnTouch: warp "poring_w02",99,49; end; } poring_w02,93,51,0 script #aroom_outgate_wop HIDDEN_WARP_NPC,1,1,{ end; OnInit: disablenpc "#aroom_outgate_wop"; end; OnEnable: enablenpc "#aroom_outgate_wop"; end; OnDisable: disablenpc "#aroom_outgate_wop"; end; OnTouch: warp "poring_w02",99,54; end; } poring_w02,98,113,0 script Deviling Guardian#wop_dd HIDDEN_NPC,{ cutin "wop_emb0" + $@wop_doorcount_d,1; if ($@wop_doorcount_d < 4) { if (wop_team == 1) { mes "There is a device to equip the War Badges."; mes "I can see the empty slots to equip the Badges."; next; switch(select("Equip War Badge.", "Cancel.")) { case 1: if (countitem(War_Badge)) { if ($@wop_doorcount_d < 4) { mes "War Badge equipped."; delitem War_Badge,1; // War_Badge ++$@wop_doorcount_d; cutin "wop_emb0" + $@wop_doorcount_d,1; if ($@wop_doorcount_d == 4) { next; mes "Gate Activated."; donpcevent "#droom_ingate_wop::OnEnable"; donpcevent "#droom_outgate_wop::OnEnable"; } close2; } else { mes "All War Badges equipped."; mes "No need to equip any more."; close2; } } else { mes "^4d4dff - War Badge missing. You can obtain a War badge by killing members of the other team. - ^000000"; close2; } break; case 2: mes "Cancel."; close2; } } else { mes "There is a device to equip a War Badge."; mes "Be carefull to not allow the enemy to take and equip your War Badge here."; close2; } } else { mes "All War Badges have been equipped."; close2; } cutin "",255; end; OnInit: $@wop_doorcount_d = 0; end; } poring_w02,93,113,0 script #droom_ingate_wop HIDDEN_WARP_NPC,1,1,{ end; OnInit: disablenpc "#droom_ingate_wop"; end; OnEnable: enablenpc "#droom_ingate_wop"; end; OnDisable: disablenpc "#droom_ingate_wop"; end; OnTouch: warp "poring_w02",98,116; end; } poring_w02,103,114,0 script #droom_outgate_wop HIDDEN_WARP_NPC,1,1,{ end; OnInit: disablenpc "#droom_outgate_wop"; end; OnEnable: enablenpc "#droom_outgate_wop"; end; OnDisable: disablenpc "#droom_outgate_wop"; end; OnTouch: warp "poring_w02",98,111; end; } //== Other NPCs ============================================ - script Angeling Side Poring#wpa FAKE_NPC,{ end; } - script Deviling Side Marin#wpd FAKE_NPC,{ end; } poring_w01,79,102,5 duplicate(Angeling Side Poring#wpa) Angeling Side Poring#wa1 PORING poring_w01,80,107,5 duplicate(Angeling Side Poring#wpa) Angeling Side Poring#wa2 PORING poring_w01,84,108,5 duplicate(Angeling Side Poring#wpa) Angeling Side Poring#wa3 PORING poring_w01,84,112,5 duplicate(Angeling Side Poring#wpa) Angeling Side Poring#wa4 PORING poring_w01,88,112,5 duplicate(Angeling Side Poring#wpa) Angeling Side Poring#wa5 PORING poring_w01,114,112,3 duplicate(Deviling Side Marin#wpd) Deviling Side Marin#wd1 MARIN poring_w01,117,111,3 duplicate(Deviling Side Marin#wpd) Deviling Side Marin#wd2 MARIN poring_w01,117,108,3 duplicate(Deviling Side Marin#wpd) Deviling Side Marin#wd3 MARIN poring_w01,122,108,3 duplicate(Deviling Side Marin#wpd) Deviling Side Marin#wd4 MARIN poring_w01,121,105,3 duplicate(Deviling Side Marin#wpd) Deviling Side Marin#wd5 MARIN poring_w01,84,108,3 script #wop_ex_1 HIDDEN_WARP_NPC,3,3,{ end; OnTouch: mes "[Porings]"; mes "P~ooooooooo -!!!"; mes "Let's teach them a lesson, ring!"; mes "We are no longer betting our lives for Jellopies, ring!!!"; next; mes "[Porings]"; mes "Let's go! Let's fight! Let's win, win, win!!!"; emotion e_go,0,"Angeling Side Poring#wa1"; emotion e_go,0,"Angeling Side Poring#wa2"; emotion e_go,0,"Angeling Side Poring#wa3"; emotion e_go,0,"Angeling Side Poring#wa4"; emotion e_go,0,"Angeling Side Poring#wa5"; next; if (wop_team == 1) { mes "[Porings]"; mes "Ohhhhhh, there he is, the warrior that fought for us!!"; mes "Oh my god... Nice, ring!"; mes "Poring~ Poring~ Poooooo~"; mes "Party of Angeling~ Popopo, Poring!"; } else if (wop_team == 2) { mes "[Porings]"; mes "Wait, YOU! Aren't you on the side of the Devilings?!"; mes "Get out now! Leave!!"; mes "Booooo~ Boo~ Boooo~"; emotion e_omg,0,"Angeling Side Poring#wa1"; emotion e_an,0,"Angeling Side Poring#wa2"; emotion e_omg,0,"Angeling Side Poring#wa3"; emotion e_an,0,"Angeling Side Poring#wa4"; emotion e_gasp,0,"Angeling Side Poring#wa5"; } else { mes "[Porings]"; mes "Hey, human. How about fighting for us Porings on Angeling's side??!"; emotion e_hlp,0,"Angeling Side Poring#wa1"; emotion e_go,0,"Angeling Side Poring#wa2"; emotion e_hlp,0,"Angeling Side Poring#wa3"; emotion e_go,0,"Angeling Side Poring#wa4"; emotion e_go,0,"Angeling Side Poring#wa5"; } next; mes "[Porings]"; mes "Party of Angeling~ Popopo, Poring!"; mes "Victory~ Victory~ Pooooooo~"; next; mes "- Porings are cheerfully shouting for the victory. -"; close; } poring_w01,119,107,3 script #wop_ex_2 HIDDEN_WARP_NPC,3,3,{ end; OnTouch: mes "[Marins]"; mes "Woooooaaaaaaaaaaa!"; mes "Finally, it's time for us to teach those stupid pigs a lesson!!"; mes "Those Porings with low-grades are all idiots!!"; next; mes "[Marins]"; mes "Let's go! Let's fight! Fight for Triumph!!!!"; emotion e_go,0,"Deviling Side Marin#wd1"; emotion e_go,0,"Deviling Side Marin#wd2"; emotion e_go,0,"Deviling Side Marin#wd3"; emotion e_go,0,"Deviling Side Marin#wd4"; emotion e_go,0,"Deviling Side Marin#wd5"; next; if (wop_team == 2) { mes "[Marins]"; mes "Ohhhh... Here is the warrior that fought for us!!"; mes "Amazing!"; mes "This proves that humans recognize us as true monsters!!"; } else if (wop_team == 1) { mes "[Marins]"; mes "Wait, YOU! Aren't you on the side of the Angelings?!"; mes "Get out now! Leave!!"; mes "Booooo~ Boo~ Boooo~"; emotion e_omg,0,"Deviling Side Marin#wd1"; emotion e_an,0,"Deviling Side Marin#wd2"; emotion e_omg,0,"Deviling Side Marin#wd3"; emotion e_an,0,"Deviling Side Marin#wd4"; emotion e_gasp,0,"Deviling Side Marin#wd5"; } else { mes "[Marins]"; mes "Hey, human. Don't you wanna fight for Deviling, the noble of darkness? What do you say?!"; emotion e_hlp,0,"Deviling Side Marin#wd1"; emotion e_go,0,"Deviling Side Marin#wd2"; emotion e_hlp,0,"Deviling Side Marin#wd3"; emotion e_go,0,"Deviling Side Marin#wd4"; emotion e_go,0,"Deviling Side Marin#wd5"; } next; mes "[Marins]"; mes "The world's Best Miraculous Poring! Deviling has it all! Go, Deviling, Go-!!"; next; mes "- Marins are cheerfully shouting for the victory. -"; close; }