Jump to content

  •  

Photo

MVP Ladder(rAthena event script)


  • Please log in to reply
2 replies to this topic

#1 Lambo

Lambo

    Member

  • Members
  • PipPip
  • 17 posts

Posted 25 February 2015 - 09:02 AM

can somebody make this script compatible for hercules please?

//===== rAthena Script =======================================//= MVP Ladder Game//===== By: ==================================================//= aftermath, AnnieRuru (rewrite)//===== Current Version: =====================================//= 1.0//===== Compatible With: =====================================//= rAthena Project//===== Description: =========================================//= Gather a party and kill every MVP in ascending order.//===== Additional Comments: =================================//= 1.0 First version, edited. [Euphy]//============================================================prontera,164,171,3	script	MvP Ladder Warper	56,{	mes "[MvP Ladder Warper]";	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 record.:No.")) {	case 1:		break;	case 2:		mes "[MvP Ladder Warper]";		mes "In this game, your party has to kill every single MvP monster in ascending order, from the weakest to strongest.";		if ( .finish_item_amount )			mes "If your party can finish the MVP ladder game, each member will earn "+ callfunc("F_InsertPlural", .finish_item_amount, getitemname( .finish_item_id )) +".";		if ( .register_cost )			mes "But the entrance fee is "+ callfunc( "F_InsertComma", .register_cost ) +" zeny.";		next;		mes "[MvP Ladder Warper]";		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:		mes "[MvP Ladder Warper]";		if ( !$mvpladdderparty_time ) {			mes "Nobody has finished this game yet.";			close;		}		mes "The best record is";		mes "[ "+( $mvpladdderparty_time / 60 )+" min "+( $mvpladdderparty_time % 60 )+" sec ]";		mes "By the party ^FF0000"+ $mvpladdderparty_name$ +"^000000.";		.@size = getarraysize( $mvpladderparty_member$ );		for ( .@i = 0; .@i < .@size; .@i++ )			mes "^000000"+ ( .@i +1 ) +". ^0000FF"+ $mvpladderparty_member$[.@i];		if ( getgmlevel() < .gmlvlreset ) close;		next;		if ( select( "Close.", "Reset the record." ) == 1 ) close;		if ( select( "Never mind.", "I really want to reset it." ) == 1 ) close;		$mvpladdderparty_time = 0;		$mvpladdderparty_name$ = "";		deletearray $mvpladderparty_member$[.@i];		mes "[MvP Ladder Warper]";		mes "Record reset successfully.";		close;	case 4:		mes "[MvP Ladder Warper]";		mes "When you are strong enough to complete the game, please come back.";		close;	}	if ( !getcharid(1) ) {		mes "[MvP Ladder Warper]";		mes "You have to form a party to play.";		close;	}	if ( getpartyleader( getcharid(1), 2 ) != getcharid(0) ) {		mes "[MvP Ladder Warper]";		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 Ladder Warper]";		mes "You have to form a party with exactly "+ .register_min +" members to play.";		close;	}	else if ( .@online != .register_min )  {		mes "[MvP Ladder Warper]";		mes "Your party must have "+ .register_min +" members online on map '"+ strnpcinfo(4) +"'.";		close;	}	else if ( .register_cost && Zeny < .register_cost ) {		mes "[MvP Ladder Warper]";		mes "You don't have enough zeny. Please come back when you do.";		close;	}	else if ( .party_id ) {		mes "[MvP Ladder Warper]";		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);	donpcevent strnpcinfo(0)+"::OnMvpDead";	sleep .timeout * 60000;	if ( .round == .totalround +1 ) {		getpartymember .party_id, 1;		getpartymember .party_id, 2;		mapannounce .eventmap$, "Congratulations... You were able to defeat all the MVPs!", bc_map;		for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {			if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {				attachrid $@partymemberaid[.@i];				if ( strcharinfo(3) == .eventmap$ )					getitem .finish_item_id, .finish_item_amount;			}		}		set .@timeused, gettimetick(2) - .@time_enter;		if ( .bonus_item_amount && .@timeused < .bonus_time * 60 ) {			mapannounce .eventmap$, "You are rewarded a bonus item for completing the ladder within "+ .bonus_time +" minutes.", bc_map;			for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {				if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {					attachrid $@partymemberaid[.@i];					if ( strcharinfo(3) == .eventmap$ )						getitem .bonus_item_id, .bonus_item_amount;				}			}		}		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 ladder game!", bc_all;	}	else		announce "The party ["+ getpartyname( .party_id ) +"] has failed to finish the MvP ladder game.", bc_all;	mapwarp .eventmap$, .map$, .x, .y;	killmonsterall .eventmap$;	.party_id = .round = 0;	end;OnMvpDead:	.round++;	if ( .round >= 2 && .round != .totalround +1 && .round_item_amount ) {		for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {			if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {				attachrid $@partymemberaid[.@i];				if ( strcharinfo(3) == .eventmap$ )					getitem .round_item_id, .round_item_amount;			}		}	}	if ( .round == .totalround +1 ) {		awake strnpcinfo(0);		end;	}	else if ( .round == .totalround )		mapannounce .eventmap$, "The final Round will begin in "+ .delay +" seconds...", bc_map;	else		mapannounce .eventmap$, "Starting round "+ .round +" in "+ .delay +" seconds...", bc_map;	sleep .delay * 1000;	if ( .mvpid[.round] == 1646 )  // pick random Bio3 MVP		.mvpid[.round] = rand(1646,1651);	monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead";	mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" has spawned!", bc_map|bc_blue;	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, 100000;	// exact amount of party members needed to start the game	set .register_min, 2;	// 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		1646,// Bio3 placeholder    99		1708,//	Thanatos			99		1751,//	Valkyrie Randgris	99		1832;//	Ifrit				99	// number of rounds (default: 39)	set .totalround, getarraysize(.mvpid) -1;	// item reward for completing each round	set .round_item_id, 512;	set .round_item_amount, 1;	// item reward for completing the entire ladder	set .finish_item_id, 501;	set .finish_item_amount, 10;	// bonus reward if ladder completed within a certain time (in minutes)	set .bonus_time, 45; // if completed within 45 minutes, this reward is given	set .bonus_item_id, 504;	set .bonus_item_amount, 10;	// time delay between rounds, in seconds (default: 3)	set .delay, 5;	// 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;}

 



#2 Methbad

Methbad

    Newbie

  • Members
  • Pip
  • 4 posts

Posted 25 February 2015 - 09:13 AM

Try this :D

 

//===== rAthena Script =======================================//= MVP Ladder Game//===== By: ==================================================//= aftermath, AnnieRuru (rewrite)//===== Current Version: =====================================//= 1.0//===== Compatible With: =====================================//= rAthena Project//===== Description: =========================================//= Gather a party and kill every MVP in ascending order.//===== Additional Comments: =================================//= 1.0 First version, edited. [Euphy]//============================================================prontera,164,171,3	script	MvP Ladder Warper	56,{// if ((agitcheck() == 1) || (agitcheck2() == 1)){	// mes .npc$;	// mes "I'm sorry, during ^0000FFWar of Emperium^000000, You are not Allowed to use my services.";	// close;	// }    mes "[MvP Ladder Warper]";    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 record.:No.")) {    case 1:        break;    case 2:        mes "[MvP Ladder Warper]";        mes "In this game, your party has to kill every single MvP monster in ascending order, from the weakest to strongest.";        if ( .finish_item_amount )            mes "If your party can finish the MVP ladder game, each member will earn "+ callfunc("F_InsertPlural", .finish_item_amount, getitemname( .finish_item_id )) +".";        if ( .register_cost )            mes "But the entrance fee is "+ callfunc( "F_InsertComma", .register_cost ) +" zeny.";        next;        mes "[MvP Ladder Warper]";        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:        mes "[MvP Ladder Warper]";        if ( !$mvpladdderparty_time ) {            mes "Nobody has finished this game yet.";            close;        }        mes "The best record is";        mes "[ "+( $mvpladdderparty_time / 60 )+" min "+( $mvpladdderparty_time % 60 )+" sec ]";        mes "By the party ^FF0000"+ $mvpladdderparty_name$ +"^000000.";        .@size = getarraysize( $mvpladderparty_member$ );        for ( .@i = 0; .@i < .@size; .@i++ )            mes "^000000"+ ( .@i +1 ) +". ^0000FF"+ $mvpladderparty_member$[.@i];        if ( getgmlevel() < .gmlvlreset ) close;        next;        if ( select( "Close.", "Reset the record." ) == 1 ) close;        if ( select( "Never mind.", "I really want to reset it." ) == 1 ) close;        $mvpladdderparty_time = 0;        $mvpladdderparty_name$ = "";        deletearray $mvpladderparty_member$[.@i];        mes "[MvP Ladder Warper]";        mes "Record reset successfully.";        close;    case 4:        mes "[MvP Ladder Warper]";        mes "When you are strong enough to complete the game, please come back.";        close;    }    if ( !getcharid(1) ) {        mes "[MvP Ladder Warper]";        mes "You have to form a party to play.";        close;    }    if ( getpartyleader( getcharid(1), 2 ) != getcharid(0) ) {        mes "[MvP Ladder Warper]";        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 Ladder Warper]";        mes "You have to form a party with exactly "+ .register_min +" members to play.";        close;    }    else if ( .@online != .register_min )  {        mes "[MvP Ladder Warper]";        mes "Your party must have "+ .register_min +" members online on map '"+ strnpcinfo(4) +"'.";        close;    }    else if ( .register_cost && Zeny < .register_cost ) {        mes "[MvP Ladder Warper]";        mes "You don't have enough zeny. Please come back when you do.";        close;    }    else if ( .party_id ) {        mes "[MvP Ladder Warper]";        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);    donpcevent strnpcinfo(0)+"::OnMvpDead";    sleep .timeout * 60000;    if ( .round == .totalround +1 ) {        getpartymember .party_id, 1;        getpartymember .party_id, 2;        mapannounce .eventmap$, "Congratulations... You were able to defeat all the MVPs!", bc_map;        for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {            if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {                attachrid $@partymemberaid[.@i];                if ( strcharinfo(3) == .eventmap$ )                    getitem .finish_item_id, .finish_item_amount;            }        }        set .@timeused, gettimetick(2) - .@time_enter;        if ( .bonus_item_amount && .@timeused < .bonus_time * 60 ) {            mapannounce .eventmap$, "You are rewarded a bonus item for completing the ladder within "+ .bonus_time +" minutes.", bc_map;            for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {                if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {                    attachrid $@partymemberaid[.@i];                    if ( strcharinfo(3) == .eventmap$ )                        getitem .bonus_item_id, .bonus_item_amount;                }            }        }        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 ladder game!", bc_all;    }    else        announce "The party ["+ getpartyname( .party_id ) +"] has failed to finish the MvP ladder game.", bc_all;    mapwarp .eventmap$, .map$, .x, .y;    killmonsterall .eventmap$;    .party_id = .round = 0;    end;OnMvpDead:    .round++;    if ( .round >= 2 && .round != .totalround +1 && .round_item_amount ) {        for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {            if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {                attachrid $@partymemberaid[.@i];                if ( strcharinfo(3) == .eventmap$ )                    getitem .round_item_id, .round_item_amount;            }        }    }    if ( .round == .totalround +1 ) {        awake strnpcinfo(0);        end;    }    else if ( .round == .totalround )        mapannounce .eventmap$, "The final Round will begin in "+ .delay +" seconds...", bc_map;    else        mapannounce .eventmap$, "Starting round "+ .round +" in "+ .delay +" seconds...", bc_map;    sleep .delay * 1000;    if ( .mvpid[.round] == 1646 )  // pick random Bio3 MVP        .mvpid[.round] = rand(1646,1651);    monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead";    mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" has spawned!", bc_map|bc_blue;    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, 40;    // entrance fee (in Zeny)    set .register_cost, 10000000;    // exact amount of party members needed to start the game    set .register_min, 5;    // 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        1646,//    Bio3 placeholder    99        1708,//    Thanatos            99        1751,//    Valkyrie Randgris    99        1832;//    Ifrit                99    // number of rounds (default: 39)    set .totalround, getarraysize(.mvpid) -1;    // item reward for completing each round    set .round_item_id, 30002;    set .round_item_amount, 1;    // item reward for completing the entire ladder    set .finish_item_id, 30001;    set .finish_item_amount, 5;    // bonus reward if ladder completed within a certain time (in minutes)    set .bonus_time, 30; // if completed within 45 minutes, this reward is given    set .bonus_item_id, 30002;    set .bonus_item_amount, 30;    // time delay between rounds, in seconds (default: 3)    set .delay, 7;    // 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];waitingroom "  Ladder Game",0;    end;}function	script	F_GetPlural	{	set .@str$, getarg(0);	if (countstr(.@str$," ")) {  // multiple words		explode(.@tmp$,.@str$," ");		set .@size, getarraysize(.@tmp$);		// if format is "... of|in|on ...", pluralize preceding word; else pluralize last word		if (compare(.@str$," of ") || compare(.@str$," in ") || compare(.@str$," on ")) {			for (set .@i,1; .@i<.@size; set .@i,.@i+1) {				if (getstrlen(.@tmp$[.@i]) == 2 && compare("of|in|on",.@tmp$[.@i]))					break;				set .@index, .@index + 1;			}		} else			set .@index, .@size - 1;		set .@str$, .@tmp$[.@index];		set .@tmp$[.@index],"%s";		set .@format$, implode(.@tmp$," ");	} else		set .@format$, "%s";	set .@strlen, getstrlen(.@str$);	if (.@strlen < 3)  // prevent errors		return ((getarg(1,0)) ? strtoupper(sprintf(.@format$,.@str$)) : sprintf(.@format$,.@str$));	setarray .@suffix$[0], charat(.@str$,.@strlen - 1), substr(.@str$,.@strlen - 2,.@strlen - 1);	if (!compare("abcdefghijklmnopqrstuvwxyz",.@suffix$[0])) {  // last character is not a letter		set .@result$, .@str$;	}	// common exceptions --> singular form == plural form	else if (compare("fish|glasses|sunglasses|clothes|boots|shoes|greaves|sandals|wings|ears",.@str$)) {		set .@result$, .@str$;	}	// ends in -s, -x, -z, -ch, -sh --> add -es	else if (.@suffix$[0] == "s" || .@suffix$[0] == "x" || .@suffix$[0] == "z" ||	    .@suffix$[1] == "ch" || .@suffix$[1] == "sh") {		set .@result$, .@str$ + "es";	}	// ends in -f, -fe --> remove -f, -fe --> add -ves	else if ((.@suffix$[0] == "f" || .@suffix$[1] == "fe") && .@suffix$[1] != "ff") {		if (compare("belief|cliff|chief|dwarf|grief|gulf|proof|roof",.@str$))			set .@result$, .@str$ + "s";  // exceptions --> add -s		else			set .@result$, substr(.@str$,0,.@strlen - 2 - (.@suffix$[1] == "fe")) + "ves";	}	// ends in consonant + -y --> remove -y --> add -ies	else if (.@suffix$[0] == "y" && !compare("aeiou",charat(.@suffix$[1],0))) {		set .@result$, delchar(.@str$,.@strlen - 1) + "ies";	}	// ends in -o --> exceptions --> add -es	else if (.@suffix$[0] == "o" &&	         compare("buffalo|domino|echo|grotto|halo|hero|mango|mosquito|potato|tomato|tornado|torpedo|veto|volcano",.@str$)) {		set .@result$, .@str$ + "es";	}	// default --> add -s	else {		set .@result$, .@str$ + "s";	}	return ((getarg(1,0)) ? strtoupper(sprintf(.@format$,.@result$)) : sprintf(.@format$,.@result$));}function	script	F_InsertPlural	{	return sprintf(getarg(3,"%d %s"), getarg(0), ((getarg(0) == 1) ? getarg(1) : callfunc("F_GetPlural",getarg(1),getarg(2,0))));}function	script	F_InsertComma	{	set .@str$, getarg(0);	for (set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)		set .@str$, insertchar(.@str$,",",.@i);	return .@str$;}

Edited by zackrich, 25 February 2015 - 09:14 AM.


#3 Lambo

Lambo

    Member

  • Members
  • PipPip
  • 17 posts

Posted 25 February 2015 - 10:09 AM

tried this one but the npc does not reset after the party has been wiped out






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users


This topic has been visited by 84 user(s)