Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== eAthena Script ======================================
- //= MvP Ladder Game Script
- //===== By: ===============================================
- //= by aftermath (1.0)
- //= by ~AnnieRuru~ (2.0)
- //= by Hendra814
- //===== Current Version: ======================================
- //= 3.4
- //===== Compatible With: =====================================
- //= eAthena 12766 Trunk
- //===== Description: =========================================
- //= This script warps you to an arena where you have to kill all MvP bosses in
- //= accending or more like from weakest to strongest.
- //===== Additional Comments: ==================================
- //= 1.0 by aftermath
- //= 1.1 Fixed exploit where 2 or more users can get it by pressing "Yes, lets get it on."
- //= at the same time.
- //= 2.0 ~by AnnieRuru~
- //= rewrite everything with new MVPs
- //= 3.0 party mode
- //= 3.1 added feature & fix various bugs
- //= 3.2 fix 2 party register at same time will make 2 MVPs in the map
- //= 3.3 big updates -> copy everything from 2.4a
- //- 3.4 FIx NPC klik warning and error chat room
- //========================================================
- function script int__ {
- set .@num, atoi(getarg(0)+"");
- if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
- set .@l, getstrlen(.@num+"");
- for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
- set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
- if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
- }
- }
- // Configure Mapflags ------------------------
- //guild_vs2-2 mapflag nobranch
- guild_vs2-2 mapflag nomemo
- //guild_vs2-2 mapflag nopenalty // disable exp loss
- //guild_vs2-2 mapflag noreturn
- guild_vs2-2 mapflag nosave SavePoint
- guild_vs2-2 mapflag noteleport
- guild_vs2-2 mapflag nowarp
- guild_vs2-2 mapflag nowarpto
- //guild_vs2-2 mapflag nomobloot // disable monster drop loots,
- //guild_vs2-2 mapflag nomvploot // 2 of these
- guild_vs2-2 mapflag loadevent
- guild_vs2-2 mapflag partylock
- guild_vs2-2,0,0,0 script Party ev_Mvp -1,{
- OnInit:
- // Configurations -----------------------------------------------------
- // distance check. Default is ON ... however ... some people complain it bug ...
- set .distancecheck, 1;
- // set entrance fee. Note: Only choose zeny OR item. If item amount if specify, the script will use item
- set .entryitemid, 674; // 674 - mithril coin
- set .entryitemamount, 0; // by default is using zeny
- set .entryzeny, 100000;
- // id of each mvp. you can add more
- setarray .mvpid[1],
- 1086,// Golden Thief Bug 64
- 1115,// Eddga 65
- 1150,// Moonlight Flower 67
- 1159,// Phreeoni 69
- 1112,// Drake 70
- 1583,// Tao Gunka 70
- 1492,// Incantation Samurai 71
- 1046,// Doppelgangger 72
- 1252,// Garm 73
- 1418,// Evil Snake Lord 73
- 1059,// Mistress 74
- 1190,// Orc Lord 74
- 1087,// Orc Hero 77
- 1251,// Knight of Windstorm 77
- 1038,// Osiris 78
- 1658,// Ygnizem 79
- 1272,// Dark Lord 80
- 1871,// Fallen Bishop 80
- 1039,// Baphomet 81
- 1147,// Maya 81
- 1785,// Atroce 82
- 1389,// Dracula 85
- 1630,// Bacsojin 85
- 1885,// Gorynych 85
- 1623,// RSX 0806 86
- 1511,// Amon Ra 88
- 1688,// Lady Tanee 89
- 1768,// Gloom Under Night 89
- 1719,// Datale 90
- 1734,// Kiel D-01 90
- 1157,// Pharaoh 93
- 1373,// Lord of Death 94
- 1312,// Turtle General 97
- 1779,// Ktullanux 98
- 1874,// Beelzebub 98
- rand(1646,1651),// Lord Knight Seyren 99 || Assassin Cross Eremes 99 || Whitesmith Harword 99 || High Priest Magaleta 99 || Sniper Shecil 99 || High Wizard Katrinn 99
- 1708,// Thanatos 99
- 1751,// Valkyrie Randgris 99
- 1832;// Ifrit 99
- // total rounds - Default has 39 rounds
- set .totalround, getarraysize(.mvpid) -1;
- // set the zeny reward. Will distribute evenly among all party member who still survive in the map
- set .reward[1], 10000;
- set .reward[2], 20000;
- set .reward[3], 30000;
- set .reward[4], 40000;
- set .reward[5], 50000;
- set .reward[6], 60000;
- set .reward[7], 70000;
- set .reward[8], 80000;
- set .reward[9], 90000;
- set .reward[10], 100000;
- set .reward[11], 110000;
- set .reward[12], 120000;
- set .reward[13], 130000;
- set .reward[14], 140000;
- set .reward[15], 150000;
- set .reward[16], 160000;
- set .reward[17], 170000;
- set .reward[18], 180000;
- set .reward[19], 190000;
- set .reward[20], 200000;
- set .reward[21], 210000;
- set .reward[22], 220000;
- set .reward[23], 230000;
- set .reward[24], 240000;
- set .reward[25], 250000;
- set .reward[26], 260000;
- set .reward[27], 270000;
- set .reward[28], 280000;
- set .reward[29], 290000;
- set .reward[30], 300000;
- set .reward[31], 310000;
- set .reward[32], 320000;
- set .reward[33], 330000;
- set .reward[34], 340000;
- set .reward[35], 350000;
- set .reward[36], 360000;
- set .reward[37], 370000;
- set .reward[38], 380000;
- set .reward[39], 390000;
- // Time attack. The party has to beat all MVPs within # minutes. When the time is up, all party members still inside the map will warp to respawn point. Do Not set this as 0
- set .timeout, 60;
- // set item reward on completing each round. Every party member still alive inside the room will get this. STACK with zeny reward
- set .itemid, 608; // 608 - Yggdrasil Seed
- set .itemamount, 0;
- // item reward on completion whole ladder. Every party members inside the map ( survive or not ) will get this.
- set .lastitemid, 607; // 607 - Yggdrasil Berry
- set .lastitemamount, 10;
- // item reward when beaten the best record. It will only give to the player who register the game, if doesn't online will give to the member who land the last hit on last MVP
- set .topitemid, 607;
- set .topitemamount, 10;
- // time delay for next round, in seconds. Default is 3
- set .delay, 5;
- // minimum amount of party members to participate this game
- set .amount, 3;
- // set respawn point after finished the mvp ladder game
- set .respawnmap$, "SavePoint";
- set .respawnx, 0;
- set .respawny, 0;
- // set this to disallow all party members use the room for # MINUTES after registering, prevent same player go in again and again
- set .usagedeny_player, 0; // deny that character each time register
- set .usagedeny_account, 0; // deny whole account each time register
- // make announcement when a party join MVP ladder
- set .joinann, 2; // 0 - disable announcement, 1- announce to server, 2- announce to town where mvp ladder warper located
- // make announcement when a party finished MVP ladder
- set .quitann, 2; // 0 - disable announcement, 1- announce to server, 2- announce to town where mvp ladder warper located
- // minimum GM level in your server consider as Support GM, to allow these GMs get into this map
- // in the case player complain this script bug again ...
- // please tell them to use @jumpto or @warp
- set .mingmlvl, 20;
- // minimum gm level can reset the deny usage, to allow that player can play this game for 1 more time without waiting
- // this setting also allow the GM himself can play this ladder without the deny usage
- set .gmcandeny, 70;
- // minimum gm level can reset the best record.
- set .gmlvlreset, 99;
- // Config Ends --------------------------------------------------------------
- getmapxy .eventmap$, .@x, .@y, 1;
- if ( .joinann < 0 || .joinann > 2 ) set .joinann, 0;
- set .usagedeny_player, .usagedeny_player * 60;
- set .usagedeny_account, .usagedeny_account * 60;
- end;
- OnEvent:
- set .originaid, getcharid(3);
- set .origincid, getcharid(0);
- set .inuseid, getcharid(1);
- set .round, 0;
- killmonsterall .eventmap$;
- announce "You have "+ .timeout +" minutes to complete total "+ .totalround +" Rounds.", 1;
- getpartymember .inuseid, 1;
- getpartymember .inuseid, 2;
- deletearray .members$, 128;
- set .memberstotal, 0;
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- set .members$[ .memberstotal ], strcharinfo(0);
- set .memberstotal, .memberstotal +1 ;
- }
- attachrid .originaid;
- OnMvpDead:
- if ( getcharid(1) != .inuseid ) {
- mapannounce .eventmap$, "An Intruder !! "+ strcharinfo(0) +" attempt to interrupt your MVP ladder game !", 0;
- }
- set .round, .round + 1;
- set .@origin, getcharid(3);
- if ( .round >= 2 ) {
- getpartymember .inuseid, 1;
- getpartymember .inuseid, 2;
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- getmapxy .@map$, .@x, .@y, 0;
- if ( .@map$ != .eventmap$ || hp == 0 ) continue;
- set .@onlineaid[ getarraysize(.@onlineaid) ], getcharid(3);
- }
- set .@online, getarraysize(.@onlineaid);
- if ( .reward[.round-1] )
- set .@reward, .reward[.round-1] / .@online;
- for ( set .@i, 0; .@i < .@online; set .@i, .@i +1 ) {
- attachrid .@onlineaid[.@i];
- if ( .reward[.round-1] ) {
- message strcharinfo(0), "You have rewarded "+ callfunc("int__", .@reward) +" zeny";
- set zeny, zeny + .@reward;
- }
- if ( .itemamount && .round != .totalround +1 )
- getitem .itemid, .itemamount;
- }
- attachrid .@origin;
- }
- if ( .round == .totalround +1 ) {
- announce "Amazing ... Your Party able to beat all the MVPs !",1;
- getpartymember .inuseid, 1;
- getpartymember .inuseid, 2;
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- getmapxy .@map$, .@x, .@y, 0;
- if ( .@map$ != .eventmap$ ) continue;
- getitem .lastitemid, .lastitemamount;
- }
- attachrid .@origin;
- set .@timeused, .timeout * 60 - ( .hour * 60*60 + .min * 60 + .sec );
- if ( $mvpladp_time == 0 || .@timeused < $mvpladp_time ) {
- announce "And your party beat the RECORD !!! [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", 1;
- if ( isloggedin( .originaid, .origincid ) ) {
- attachrid .originaid;
- getmapxy .@map$, .@x, .@y, 0;
- if ( .@map$ == .eventmap$ ) {
- announce "The Special Reward goes to "+ strcharinfo(0) +" because "+( (sex)?"he":"she" )+" register this game.", 1;
- getitem .topitemid, .topitemamount;
- set .@already, 1;
- }
- attachrid .@origin;
- }
- if ( .@already == 0 ) {
- announce "The Special Reward goes to "+ strcharinfo(0) +" because "+( (sex)?"he":"she" )+" kills the last MVP.", 1;
- getitem .topitemid, .topitemamount;
- }
- deletearray $mvpladp_name$, 128;
- set $mvpladp_name$, strcharinfo(1);
- copyarray $mvpladp_name$[1], .members$[0], .memberstotal;
- set $mvpladp_time, .@timeused;
- }
- else
- announce "Time used [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", 1;
- set .@inuseid, .inuseid;
- sleep 10000;
- getpartymember .@inuseid, 1;
- getpartymember .@inuseid, 2;
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- getmapxy .@map$, .@x, .@y, 0;
- if ( .@map$ != .eventmap$ ) continue;
- warp .respawnmap$, .respawnx, .respawny;
- }
- if ( .quitann == 1 )
- announce getpartyname(.@inuseid) +" party has finished the Party MvP ladder !", 0;
- else if ( .quitann == 2 )
- mapannounce .npcmap$, getpartyname(.@inuseid) +" has finished the Party MvP ladder !", 0;
- end;
- }
- else if ( .round == .totalround )
- announce "Final Round will begin in "+ .delay +" sec.", 1;
- else
- announce "Round "+ .round +" will begin in "+ .delay +" sec.", 1;
- sleep .delay * 1000;
- if ( .mvpid[.round] >= 1646 && .mvpid[.round] <= 1651 )
- monster .eventmap$,0,0,"--ja--",rand(1646,1651),1,"Party ev_Mvp::OnMvpDead";
- else
- monster .eventmap$,0,0,"--ja--",.mvpid[.round],1,"Party ev_Mvp::OnMvpDead";
- end;
- OnPCLoadMapEvent:
- sleep2 1;
- getmapxy .@map$, .@x, .@y, 0;
- if ( .@map$ != .eventmap$ ) end;
- if ( getcharid(1) == .inuseid || getgmlevel() >= .mingmlvl ) end;
- warp .respawnmap$, .respawnx, .respawny;
- announce "You are forbidden to enter Party MVP ladder game without registration.", 3, 0xFF0000;
- end;
- }
- prontera,162,187,3 script Party MvP Room 56,{
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "Welcome to MvP ladder game.";
- mes "In this game, your party have to kill every single MvP monster in accending order, starting from weakest to the strongest.";
- mes "Everytime your party beaten a MVP, you will reward with zeny.";
- if ( getvariableofnpc(.lastitemamount,"Party ev_Mvp") )
- mes "If you can finish the MVP ladder, everyone of you will earn "+ getvariableofnpc(.lastitemamount,"Party ev_Mvp") +" "+ getitemname(getvariableofnpc(.lastitemid,"Party ev_Mvp")) +".";
- if ( getvariableofnpc(.entryitemamount,"Party ev_Mvp") )
- mes "But the person who ask me to start the game must pay me "+ getvariableofnpc(.entryitemamount,"Party ev_Mvp") +" "+ getitemname(getvariableofnpc(.entryitemid,"Party ev_Mvp")) +".";
- else if ( getvariableofnpc(.entryzeny,"Party ev_Mvp") )
- mes "But the person who ask me to start the game must pay me "+ callfunc("int__", getvariableofnpc(.entryzeny,"Party ev_Mvp") ) +" zeny";
- next;
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "So... do you want to play the game?";
- next;
- if ( select("Yes, lets get it on.","Show me the best record.","No.",( getgmlevel() >= getvariableofnpc(.gmcandeny,"Party ev_Mvp") && ( getvariableofnpc(.usagedeny_player,"Party ev_Mvp") || getvariableofnpc(.usagedeny_account,"Party ev_Mvp") ) )?"Reset a party deny usage":"") == 3 ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "When your party are strong enough to complete the game, please come back.";
- close;
- }
- else if ( @menu == 2 ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- if ( $mvpladp_time == 0 ) {
- mes "Nobody finish this game before.";
- close;
- }
- else {
- mes "The best record is";
- mes "[ "+( $mvpladp_time / 60 )+" min "+( $mvpladp_time % 60 )+" sec ]";
- mes "By the party ^EE8800"+ $mvpladp_name$ +"^000000.";
- for ( set .@i, 1; .@i < getarraysize($mvpladp_name$); set .@i, .@i +1 )
- mes .@i +". ^0000FF"+ $mvpladp_name$[.@i] +"^000000";
- if ( getgmlevel() < getvariableofnpc(.gmlvlreset,"Party ev_Mvp") ) close;
- next;
- if ( select("Close.", "Reset it.") == 1 ) close;
- if ( select("Nevermind.", "I really want to reset it.") == 1 ) close;
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "Record reset successfully.";
- deletearray $mvpladp_name$, 128;
- set $mvpladp_time, 0;
- close;
- }
- }
- else if ( @menu == 4 ) {
- if ( getgmlevel() < getvariableofnpc(.gmcandeny,"Party ev_Mvp") ) end;
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "Enter any player name of that party, every online party member will be reset.";
- next;
- input .@name$;
- set .@aid, getcharid(3, .@name$);
- set .@pid, getcharid(1, .@name$);
- mes "[^FF0000MvP Ladder Warper^000000]";
- if ( .@aid == 0 ) {
- mes "That player is not online or not exist.";
- close;
- }
- else if ( .@pid == 0 ) {
- mes rid2name(.@aid) +" doesn't has a party.";
- close;
- }
- set .@origin, getcharid(3);
- getpartymember .@pid, 1;
- getpartymember .@pid, 2;
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- set mvpladp_deny, 0;
- set #mvpladp_deny, 0;
- }
- attachrid .@origin;
- mes rid2name(.@aid) +"'s party can play this game now.";
- close;
- }
- else if ( getcharid(1) == 0 ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "You don't have a party";
- close;
- }
- getpartymember getcharid(1), 1;
- getpartymember getcharid(1), 2;
- if ( $@partymembercount < getvariableofnpc(.amount,"Party ev_Mvp") ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "Your party has too few members.";
- mes "You must form a party at least "+ getvariableofnpc(.amount,"Party ev_Mvp") +" members and at least has "+ getvariableofnpc(.amount,"Party ev_Mvp") +" party members online to start MVP ladder game.";
- close;
- }
- set .@origin, getcharid(3);
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- if ( gettimetick(2) < mvpladp_deny + getvariableofnpc(.usagedeny_player,"Party ev_Mvp") )
- set .@denytime[ .@deny ], mvpladp_deny + getvariableofnpc(.usagedeny_player,"Party ev_Mvp") - gettimetick(2);
- if ( gettimetick(2) < #mvpladp_deny + getvariableofnpc(.usagedeny_account,"Party ev_Mvp") ) {
- set .@denytime2[ .@deny ], #mvpladp_deny + getvariableofnpc(.usagedeny_account,"Party ev_Mvp") - gettimetick(2);
- if ( .@denytime2[ .@deny ] > .@denytime[ .@deny ] )
- set .@denytime[ .@deny ], .@denytime2[ .@deny ];
- }
- if ( .@denytime[ .@deny ] ) {
- set .@denyname$[ .@deny ], strcharinfo(0);
- set .@deny, .@deny +1 ;
- }
- if ( getvariableofnpc(.distancecheck,"Party ev_Mvp") ) {
- getmapxy .@map$, .@x, .@y, 0;
- if ( distance ( .@x, .@y, .x, .y ) > 15 || .@map$ != getvariableofnpc(.npcmap$,"Party ev_Mvp") ) {
- set .@awayname$[ .@away ], strcharinfo(0);
- set .@away, .@away +1 ;
- }
- }
- set .@online, .@online +1;
- }
- attachrid .@origin;
- if ( .@deny ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "I'm sorry, but the following party members are not allow to participate in this game.";
- mes " ";
- for ( set .@i, 0; .@i < .@deny; set .@i, .@i +1 ) {
- mes "^0000FF"+ .@denyname$[.@i] +"^000000";
- set .@day, .@denytime[.@i] / (24*60*60);
- set .@hour, .@denytime[.@i] % (24*60*60) / (60*60);
- set .@min, .@denytime[.@i] % (24*60*60) % (60*60) / (60);
- set .@sec, .@denytime[.@i] % (24*60*60) % (60*60) % (60);
- mes ( (.@day)?(.@day +" day "):"" )+( (.@hour||.@day)?(.@hour +" hour "):"" )+( (.@min||.@hour||.@day)?(.@min +" min "):"")+ .@sec +" sec";
- mes " ";
- }
- mes "You have to either form a new party, or kick these members out.";
- close;
- }
- else if ( .@online < getvariableofnpc(.amount,"Party ev_Mvp") ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "Your party has too few members online.";
- mes "At least "+ getvariableofnpc(.amount,"Party ev_Mvp") +" party members must online to start MVP ladder game.";
- close;
- }
- else if ( .@away ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "The following players is away from me.";
- for ( set .@i, 0; .@i < .@away; set .@i, .@i +1 )
- mes "^0000FF"+ .@awayname$[.@i] +"^000000";
- mes "All party members must gather around me in order for me to warp your party members to MVP ladder game.";
- close;
- }
- if ( countitem( getvariableofnpc(.entryitemid,"Party ev_Mvp") ) < getvariableofnpc(.entryitemamount,"Party ev_Mvp") ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "You don't have enough "+ getitemname(getvariableofnpc(.entryitemid,"Party ev_Mvp")) +", please come back when you do.";
- close;
- }
- else if ( getvariableofnpc(.entryitemamount,"Party ev_Mvp") == 0 && zeny < getvariableofnpc(.entryzeny,"Party ev_Mvp") ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "You don't have enough zeny, please come back when you do.";
- close;
- }
- else if ( .inuse || getmapusers( getvariableofnpc(.eventmap$,"Party ev_Mvp") ) >= 1 ) {
- mes "[^FF0000MvP Ladder Warper^000000]";
- mes "I'm sorry but a party is currently playing the game. Please standby until the party finishes the game or gets killed.";
- mes "Thank You.";
- close;
- }
- if ( getvariableofnpc(.joinann,"Party ev_Mvp") )
- announce strcharinfo(1) +" party has started the MvP ladder game.",(getvariableofnpc(.joinann,"Party ev_Mvp") -1);
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- if ( getgmlevel() < getvariableofnpc(.gmcandeny,"Party ev_Mvp") ) {
- if ( getvariableofnpc(.usagedeny_player,"Party ev_Mvp") ) set mvpladp_deny, gettimetick(2);
- if ( getvariableofnpc(.usagedeny_account,"Party ev_Mvp") ) set #mvpladp_deny, gettimetick(2);
- }
- percentheal 100,100;
- warp getvariableofnpc( .eventmap$, "Party ev_Mvp" ), 0, 0;
- }
- attachrid .@origin;
- set .inuse, 1;
- set .inuseid, getcharid(1);
- set .inusename$, strcharinfo(1);
- if ( getvariableofnpc(.entryitemamount,"Party ev_Mvp") )
- delitem getvariableofnpc(.entryitemid,"Party ev_Mvp"), getvariableofnpc(.entryitemamount,"Party ev_Mvp");
- else
- set zeny, zeny - getvariableofnpc(.entryzeny,"Party ev_Mvp");
- initnpctimer;
- doevent "Party ev_Mvp::OnEvent";
- end;
- OnTimer20:
- set getvariableofnpc(.min,"Party ev_Mvp"), getvariableofnpc(.timeout,"Party ev_Mvp");
- while ( getvariableofnpc(.min,"Party ev_Mvp") >= 60 ) {
- set getvariableofnpc(.hour,"Party ev_Mvp"), getvariableofnpc(.hour,"Party ev_Mvp") +1 ;
- set getvariableofnpc(.min,"Party ev_Mvp"), getvariableofnpc(.min,"Party ev_Mvp") - 60 ;
- }
- while ( getvariableofnpc(.hour,"Party ev_Mvp") || getvariableofnpc(.min,"Party ev_Mvp") || getvariableofnpc(.sec,"Party ev_Mvp") ) {
- set getvariableofnpc(.sec,"Party ev_Mvp"), getvariableofnpc(.sec,"Party ev_Mvp") -1 ;
- if ( getvariableofnpc(.sec,"Party ev_Mvp") < 0 && ( getvariableofnpc(.min,"Party ev_Mvp") > 0 || getvariableofnpc(.hour,"Party ev_Mvp") > 0 ) ) {
- set getvariableofnpc(.sec,"Party ev_Mvp"), getvariableofnpc(.sec,"Party ev_Mvp") + 60;
- set getvariableofnpc(.min,"Party ev_Mvp"), getvariableofnpc(.min,"Party ev_Mvp") - 1 ;
- }
- if ( getvariableofnpc(.min,"Party ev_Mvp") < 0 && getvariableofnpc(.hour,"Party ev_Mvp") > 0 ) {
- set getvariableofnpc(.min,"Party ev_Mvp"), getvariableofnpc(.min,"Party ev_Mvp") + 60;
- set getvariableofnpc(.hour,"Party ev_Mvp"), getvariableofnpc(.hour,"Party ev_Mvp") - 1;
- }
- delwaitingroom strnpcinfo(0);
- waitingroom "Time Left = "+( ( getvariableofnpc(.hour,"Party ev_Mvp") )?( getvariableofnpc(.hour,"Party ev_Mvp") +":"):"" )+( ( getvariableofnpc(.min,"Party ev_Mvp") < 10 )?"0"+ getvariableofnpc(.min,"Party ev_Mvp"): getvariableofnpc(.min,"Party ev_Mvp") )+":"+( ( getvariableofnpc(.sec,"Party ev_Mvp") < 10 )?"0"+ getvariableofnpc(.sec,"Party ev_Mvp"): getvariableofnpc(.sec,"Party ev_Mvp") ), 0;
- if ( getmapusers( getvariableofnpc(.eventmap$,"Party ev_Mvp") ) == 0 && .inuse == 0 ) break;
- else if ( getvariableofnpc(.sec,"Party ev_Mvp") == 0 ) {
- switch ( getvariableofnpc(.min,"Party ev_Mvp") ) {
- case 30:
- case 20:
- case 10:
- case 5:
- case 3:
- case 2:
- case 1:
- mapannounce getvariableofnpc(.eventmap$,"Party ev_Mvp"), "You have "+ getvariableofnpc(.min,"Party ev_Mvp") +" min left to complete Party MVP ladder game.", 0;
- default:
- }
- }
- sleep 999;
- }
- if ( getvariableofnpc(.round,"Party ev_Mvp") != getvariableofnpc(.totalround,"Party ev_Mvp") +1 ) {
- killmonsterall getvariableofnpc(.eventmap$,"Party ev_Mvp");
- mapannounce getvariableofnpc(.eventmap$,"Party ev_Mvp"), "You failed to kill all MVPs in time.", 0;
- if ( getvariableofnpc(.quitann,"Party ev_Mvp") == 1 )
- announce .inusename$ +" party failed to finish the Party MvP ladder !", 0;
- else if ( getvariableofnpc(.quitann,"Party ev_Mvp") == 2 )
- mapannounce getvariableofnpc(.npcmap$,"Party ev_Mvp"), .inusename$ +" party failed to finish the Party MvP ladder !", 0;
- getpartymember .inuseid, 1;
- getpartymember .inuseid, 2;
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( !isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) continue;
- attachrid $@partymemberaid[.@i];
- getmapxy .@map$, .@x, .@y, 0;
- if ( .@map$ == getvariableofnpc(.eventmap$,"Party ev_Mvp") )
- warp getvariableofnpc(.respawnmap$,"Party ev_Mvp"), getvariableofnpc(.respawnx,"Party ev_Mvp"), getvariableofnpc(.respawny,"Party ev_Mvp");
- }
- }
- set getvariableofnpc(.hour,"Party ev_Mvp"), 0;
- set getvariableofnpc(.min,"Party ev_Mvp"), 0;
- set getvariableofnpc(.sec,"Party ev_Mvp"), 0;
- delwaitingroom strnpcinfo(0);
- end;
- OnTimer20000:
- set .inuse, 0;
- end;
- OnInit:
- sleep 1;
- getmapxy .@map$, .x, .y, 1;
- set getvariableofnpc(.npcmap$,"Party ev_Mvp"), .@map$;
- end;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement