Jump to content

  •  

Photo

MvP speed run exact party 2 to minium party of 2


  • Please log in to reply
No replies to this topic

#1 mpjy4

mpjy4

    Newbie

  • Members
  • Pip
  • 9 posts

Posted 29 October 2016 - 03:03 PM

I would like this script to change from Exact number of party players to Minimum party of 2 and up.

Can anybody fix this problem?

prontera,169,186,4	script	MvP Speed Run	580,{
	mes "[MvP Speed Run]";
	mes "Say... do you want to play the MvP Ladder game?";
	next;
	switch(select("Yes, let's get it on!:Information.:Show me the best records.:No.")) {
	case 1:
		break;
	case 2:
		mes "[MvP Speed Run]";
		mes "In this game, your party will fight an MVP of your choosing as fast as you can.";
		if ( .register_cost )
			mes "But the entrance fee is "+ callfunc( "F_InsertComma", .register_cost ) +" zeny times the mvp level.";
		next;
		mes "[MvP Speed Run]";
		mes "You lose the game if you can't finish in "+ .timeout +" minutes, or if your entire party is killed.";
		mes "Good luck!";
		close;
	case 3:	//todo mvp ladder menu
		mes "[MvP Speed Run]";
		mes "Menu Under Construction";
		close;
	case 4:
		mes "[MvP Speed Run]";
		mes "When you are strong enough to complete the game, please come back.";
		close;
	}
	next;
	mes "[MvP Speed Run]";
	mes "Which MVp would you like to face?";
	.round = select(implode(.Menu$,":")) - 1;

	if ( !getcharid(1) ) {
		mes "[MvP Speed Run]";
		mes "You have to form a party to play.";
		close;
	}
	if ( getpartyleader( getcharid(1), 2 ) != getcharid(0) ) {
		mes "[MvP Speed Run]";
		mes "Only the party leader can register.";
		close;
	}
	.@origin = getcharid(3);
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
			attachrid $@partymemberaid[.@i];
			if ( strcharinfo(3) == strnpcinfo(4) )
				.@online++;
		}
	}
	attachrid .@origin;
	if ( $@partymembercount != .register_min ) {
		mes "[MvP Speed Run]";
		mes "You have to form a party with exactly "+ .register_min +" members to play.";
		close;
	}
	else if ( .@online != .register_min )  {
		mes "[MvP Speed Run]";
		mes "Your party must have "+ .register_min +" members online on map '"+ strnpcinfo(4) +"'.";
		close;
	}
	else if ( .register_cost && Zeny < .register_cost ) {
		mes "[MvP Speed Run]";
		mes "You don't have enough zeny. Please come back when you do.";
		close;
	}
	else if ( .party_id ) {
		mes "[MvP Speed Run]";
		mes "I'm sorry, but a party is currently playing the game. Please standby until the party is finished.";
		mes "Thank you.";
		close;
	}
	Zeny -= .register_cost;
	announce "The party ["+ strcharinfo(1) +"] has started the MvP ladder game.", bc_all;
	set .party_id, getcharid(1);
	set .@time_enter, gettimetick(2);
	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
			attachrid $@partymemberaid[.@i];
			if ( strcharinfo(3) == strnpcinfo(4) ) {
				announce "You have "+ .timeout +" minutes to complete "+ .totalround +" rounds.", bc_self;
				.@name$[.@c] = strcharinfo(0);
				.@c++;
			}
		}
	}
	cleanmap .eventmap$;
	warpparty .eventmap$, 0,0, .party_id, strnpcinfo(4);
	mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" will spawn in 60 Seconds", bc_map|bc_blue;
	sleep 60000;
	monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead";
	mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" has spawned!", bc_map|bc_blue;
	sleep .timeout * 60000;
	set .@timeused, gettimetick(2) - .@time_enter;
	if ( !$mvpladdderparty_time || .@timeused < $mvpladdderparty_time ) {
		mapannounce .eventmap$, "And you broke the record! [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map;
		set $mvpladdderparty_time, .@timeused;
		set $mvpladdderparty_name$, getpartyname( .party_id );
		copyarray $mvpladderparty_member$, .@name$, .register_min;
	}
	else
		mapannounce .eventmap$, "Time used [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map;
	sleep 10000;
	announce "The party ["+ getpartyname( .party_id ) +"] has finished the MvP Speed Run!", bc_all;
	mapwarp .eventmap$, .map$, .x, .y;
	killmonsterall .eventmap$;
	.party_id = .round = 0;
	end;



OnMvpDead:
	awake strnpcinfo(0);
	end;

OnPCLogoutEvent:
	if ( hp > 0 )
		.@less_one = 1;
	else
		end;
OnPCDieEvent:
	if ( strcharinfo(3) != .eventmap$ || !getcharid(1) ) end;
	if ( getcharid(1) != .party_id ) end;
	getpartymember .party_id, 1;
	getpartymember .party_id, 2;
	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
			attachrid $@partymemberaid[.@i];
			if ( strcharinfo(3) == .eventmap$ && hp > 0 )
				.@alive++;
		}
	}
	if ( .@less_one )
		.@alive--;
	if ( !.@alive ) {
		mapannounce .eventmap$, "Party wiped!", bc_map;
		sleep 10000;
		awake strnpcinfo(0);
	}
	end;

OnInit:
//	Configurations -----------------------------------------------------

	// Time limit (in minutes)
	// When time runs out, all players inside the room will be kicked out.
	// Do NOT set this to zero!
	set .timeout, 60;

	// entrance fee (in Zeny)
	set .register_cost, 1000000;

	// exact amount of party members needed to start the game
	set .register_min, ;

	// id of each mvp. you can add more
	setarray .mvpid[0],
		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
		1646,// Bio3 			99
		1647,// Bio3 			99
		1648,// Bio3 			99
		1649,// Bio3 			99
		1650,// Bio3 			99
		1651,// Bio3 			99
		1708,//	Thanatos		99
		1751,//	Valkyrie Randgris	99
		1832,//	Ifrit			99
		1917,// Wounded Morroc		99
		2022,// Nidhoggr's Shadow	117
		2202,// Kraken			124
		2131,// Lost Dragon		135
		2475,// Root of Corruption	136
		2087,// Queen Scaraba		140
		2165,// Gold Queen Scaraba	140
		2253,// Daehyon			142
		2476,// Amdarias		143
		2255,// Kades			143
		2251,// Gioia			146
		2235,// Bio4 			160
		2236,// Bio4 			160
		2237,// Bio4 			160
		2238,// Bio4 			160
		2239,// Bio4 			160
		2240,// Bio4 			160
		2241;// Bio4 			160

	// Generate Menu
	for(.@i = 0; .@i < getarraysize(.mvpid); .@i++){
		set .Menu$[.@i], "["+strmobinfo(3,.mvpid[.@i])+"] ~ "+strmobinfo(1,.mvpid[.@i]);
	}
	// minimum GM level to reset the best record
	set .gmlvlreset, 99;

	// event map
	set .eventmap$, "guild_vs2-2";

	// mapflag configuration
	setarray .@mapflag,
		mf_nowarp,
		mf_nowarpto,
		mf_nosave,
		mf_nomemo,
		mf_noteleport,
		mf_nopenalty, // disable exp loss
		mf_noreturn,
		mf_nobranch,
		mf_nomobloot, // disable monster drop loots,
		mf_nomvploot, // 2 of these
		mf_partylock;

//	Config Ends --------------------------------------------------------------

	mapannounce .eventmap$, "An administrator has refreshed the server. Please re-register. We apologize for the inconvenience.", bc_map;
	getmapxy .map$, .x, .y, 1;
	mapwarp .eventmap$, .map$, .x, .y;
	killmonsterall .eventmap$;
	.@size = getarraysize( .@mapflag );
	for ( .@i = 0; .@i < .@size; .@i++ )
		setmapflag .eventmap$, .@mapflag[.@i];
	end;
}}

 

 

 


I figured it out






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users


This topic has been visited by 23 user(s)