Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- prontera,155,181,5 script Special MVP Room 757,{
- .@party_id = getcharid(1);
- .@size = getarraysize( .queue_party );
- if( !.@party_id ){
- mes "You dont have any Party.";
- }else if( getcharid(0) != getpartyleader( .@party_id,2 ) ){
- mes "You're not Party Leader.";
- }else{
- mes "I need these.";
- for( .@i = 0; .@i < .required_item_size; .@i++ ){
- mes "^FF0000"+getitemname( .required_item[.@i] )+" x "+.required_item_qty[.@i];
- if( countitem( .required_item[.@i] ) < .required_item_qty[.@i] ) .@failed++;
- }
- if( !.@failed ){
- next;
- if( select( "Pay and Enter","Close" ) ){
- if( getmapusers( .map$ ) ){
- mes "There are another Party inside. Please try again later.";
- mes "There are currently "+.@size+" Queued Party.";
- if( select( "Add Party to Queue","Close" ) ){
- for( .@i = 0; .@i < .@size; .@i++ )
- if( .queue_party[.@i] == .@party_id ){
- mes "Your party are now in the queue no. "+( .@i+1 );
- close;
- }
- .queue_party[ .@size ] = .@party_id;
- mes "Done added to Queue.";
- }
- }else{
- stopnpctimer;
- for( .@i = 0; .@i < .required_item_size; .@i++ )
- delitem .required_item[.@i],.required_item_qty[.@i];
- .party_id = .@party_id;
- if( .party_id == .queue_party[0] ) deletearray .queue_party[0],1;
- warpparty .map$,0,0,.party_id;
- killmonsterall .map$;
- .round = 0;
- donpcevent "::OnStageStart";
- }
- }
- }
- }
- close;
- OnInit:
- .map$ = "guild_vs1-4";
- // stage boss
- .stage_boss = 3;
- // round pause
- .pause = 6;
- // required item to enter
- setarray .required_item,501,502,503;
- setarray .required_item_qty,1,2,3;
- // reward for all party member
- setarray .reward_item,501,502,503;
- setarray .reward_item_qty,1,2,3;
- .required_item_size = getarraysize( .required_item );
- .reward_item_size = getarraysize( .reward_item );
- .npcname$ = strnpcinfo(0);
- getmapxy( .npc_map$,.npc_x,.npc_y,1 );
- end;
- // round delay
- OnStageStart:
- .pause_wait = gettimetick(1) + .pause;
- .round++;
- mapannounce .map$,"Round "+.round+" starting..within "+.pause+" seconds",0;
- end;
- // round start
- OnStageStart2:
- if( .mob_count ) end;
- if( .party_id ){
- mapannounce .map$,"Round "+.round+" start...kill all monsters and survive...",0;
- switch( .round ){
- // add other cases if you need more...
- Case 1:
- setarray .@monster,1002,1001;
- setarray .@mob_amount,10,30;
- break;
- Case 2:
- setarray .@monster,1002,1001;
- setarray .@mob_amount,10,30;
- break;
- default: // boss stage
- setarray .@monster,1002,1001;
- setarray .@mob_amount,10,30;
- break;
- }
- .@size = getarraysize( .@monster );
- for( .@i = 0; .@i < .@size; .@i++ )
- monster .map$,50,50,"MONSTER",.@monster[.@i],.@mob_amount[.@i],.npcname$+"::"+( ( .round == .stage_boss )?"OnBossKill":"OnMobKill" );
- .mob_count = mobcount( .map$,.npcname$+"::"+( ( .round == .stage_boss )?"OnBossKill":"OnMobKill" ) );
- }
- end;
- OnMobKill:
- .mob_count--;
- if( .mob_count ){
- mapannounce .map$,"Left "+.mob_count+" mobs.",0;
- }else{
- donpcevent "::OnStageStart";
- }
- end;
- OnBossKill:
- .mob_count--;
- if( .mob_count ){
- mapannounce .map$,"Left "+.mob_count+" mobs.",0;
- }else{
- mapannounce .map$,"Congratulations to all survivor...",0;
- sleep2 3000;
- .@size = getarraysize( .queue_party );
- .party_id = 0;
- if( .@size )
- initnpctimer;
- addrid( 1 );
- for( .@i = 0; .@i < .reward_item_size; .@i++ )
- getitem .reward_item[.@i],.reward_item_qty[.@i];
- message strcharinfo(0),"Gained Rewards.";
- warp "prontera",155,181;
- }
- end;
- OnTimer3000:
- awake .npcname$;
- awake "#tick";
- warpparty .npc_map$,.npc_x,.npc_y,.queue_party[0];
- announce "Next party ( "+getpartyname( .queue_party[0] )+" ) have 2 minutes to register.",0;
- end;
- OnTimer60000:
- announce "Next party ( "+getpartyname( .queue_party[0] )+" ) have 1 minutes to register.",0;
- end;
- OnTimer120000:
- deletearray .queue_party[0],1;
- if( .queue_party[0] ) initnpctimer;
- end;
- OnPCLogoutEvent:
- .@party_id = getcharid(1);
- if( getcharid(0) == getpartyleader( .party_id,2 ) && .@party_id ){
- mapannounce .map$,"Party Leader disconnected, everyone will be kicked out.",0;
- sleep 1000;
- mapwarp .map$,"prontera",155,181;
- .party_id = 0;
- if( getarraysize( .queue_party ) ) initnpctimer;
- }
- end;
- }
- guild_vs1-4,50,50,5 script #tick 858,{
- end;
- OnStageStart:
- hideoffnpc strnpcinfo(0);
- while( 1 ){
- .@time = ( getvariableofnpc(.pause_wait,"Special MVP Room") - gettimetick(1) );
- if( .@time > 0 ){
- delwaitingroom;
- waitingroom " "+.@time+" seconds.",0;
- }else{
- break;
- }
- sleep 1000;
- }
- delwaitingroom;
- hideonnpc strnpcinfo(0);
- donpcevent "::OnStageStart2";
- end;
- }
- guild_vs1-4 mapflag nosave Savepoint
- guild_vs1-4 mapflag nocommand 90
Advertisement
Add Comment
Please, Sign In to add comment