Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- prontera,155,171,5 script Date Dungeon 757,{
- if( select( "Participate Date Dungeon","View Records" ) == 2 ){
- switch( select( "[ Easy ]","[ Normal ]","[ Hard ]" ) ){
- default:
- Case 1:
- mes "^0055FF[ Easy Mode ]^000000";
- mes "Time : ^777777"+( $date_easy_record / 60000 )+" min. "+( ( $date_easy_record % 60000 ) / 1000 )+" secs.^000000";
- mes "^0055FFPartner :^000000";
- mes " ~ ^777777"+$date_easy_1$+"^000000";
- mes " ~ ^777777"+$date_easy_2$+"^000000";
- break;
- Case 2:
- mes "^0055FF[ Normal Mode ]^000000";
- mes "Time : ^777777"+( $date_normal_record / 60000 )+" min. "+( ( $date_normal_record % 60000 ) / 1000 )+" secs.^000000";
- mes "^0055FFPartner :^000000";
- mes " ~ ^777777"+$date_normal_1$+"^000000";
- mes " ~ ^777777"+$date_normal_2$+"^000000";
- break;
- Case 3:
- mes "^0055FF[ Hard Mode ]^000000";
- mes "Time : ^777777"+( $date_hard_record / 60000 )+" min. "+( ( $date_hard_record % 60000 ) / 1000 )+" secs.^000000";
- mes "^0055FFPartner :^000000";
- mes " ~ ^777777"+$date_hard_1$+"^000000";
- mes " ~ ^777777"+$date_hard_2$+"^000000";
- break;
- }
- }else if( .npc_usage >= .max_npc_usage ){
- mes "Daily Limit ("+.max_npc_usage+" attempts) reached. You cant join anymore for today.";
- }else if( !ispartneron() ){
- mes "Your partner isnt online.";
- }else if( !instance_id(1) ){
- set .@party_id,getcharid(1);
- if( !.@party_id ){
- mes "You dont have a party.";
- close;
- }
- if( getpartyleader( .@party_id,2 ) != getcharid(0) ){
- mes "You are not party leader.";
- close;
- }
- getpartymember .@party_id,1;
- getpartymember .@party_id,2;
- for( set .@i,0; .@i < $@partymembercount; set .@i,.@i + 1 )
- if( isloggedin( $@partymemberaid[.@i],$@partymembercid[.@i] )
- set .@count,.@count + 1;
- if( $@partymembercount != 2 || .@count != 2 ) ){
- mes "Required 2 members in one party where both members must online ";
- close;
- }
- set .@getpartnerid,getpartnerid();
- for( set .@i,0; .@i < $@partymembercount; set .@i,.@i + 1 )
- if( $@partymembercid[.@i] == .@getpartnerid ){
- set @mode,select( "[ Easy ]","[ Normal ]","[ Hard ]" );
- set .@instance,instance_create( " Date Dungeon ",.@party_id );
- if( .@instance < 0 ){
- switch( .@instance ){
- Case -2: mes "Invalid Party ID"; break;
- Case -3: mes "Max Instances Exceed."; break;
- Case -4:
- Case -1:
- default:
- mes "Failed to Create an Instances.";
- }
- }else{
- instance_attachmap( .map$,.@instance );
- instance_set_timeout ( .dungeon_duration * 60 ),( .idle_duration * 60 ),.@instance;
- instance_init .@instance;
- instance_attach .@instance;
- set .npc_usage,.npc_usage + 1;
- warpparty has_instance( .map$ ),0,0,.@party_id;
- donpcevent instance_npcname( "Date Dungeon#main",instance_id() )+"::OnInstanceInit";
- end;
- }
- close;
- }
- mes "Your spouse isnt in the party.";
- }else{
- mes "You cant enter now.";
- }
- close;
- OnClock0001:
- set .npc_usage,0;
- end;
- OnInit:
- // dungeon map ( use instance mapname )
- set .map$,"1@room";
- // max entry every day
- set .max_npc_usage,10;
- // dungeon duration
- set .dungeon_duration,60;
- // dungeon ( out of room kick )
- set .idle_duration,1;
- setarray .mapflag,
- mf_nomemo,
- mf_noteleport,
- mf_nosave,
- mf_nobranch,
- mf_nowarp,
- mf_partylock,
- mf_nogo,
- mf_nomobloot,
- mf_nomvploot,
- mf_noreturn,
- mf_nowarpto,
- mf_monster_noteleport;
- set .mapflag_size,getarraysize( .mapflag );
- for( set .@i,0; .@i < .mapflag_size; set .@i,.@i + 1 )
- setmapflag .map$,.mapflag[.@i];
- end;
- }
- // mapname must match with above settings.
- 1@room,30,28,4 script Date Dungeon#main 757,{
- function DateDungeonMob;
- if( 'status == 2 ){
- npctalk "Kill all monster and survive.";
- }else if( getpartyleader( getcharid(1),2 ) != getcharid(0) ){
- npctalk "You are not party leader.";
- }else if( 'status ){
- set 'status,getcharid(1);
- set 'instance_id,instance_id(1);
- set 'round,0;
- set 'mode,@mode;
- switch( 'mode ){
- default:
- Case 1: set 'modename$,"[ Easy ]";
- Case 2: set 'modename$,"[ Normal ]";
- Case 3: set 'modename$,"[ Hard ]";
- }
- set 'party_id,getcharid(1);
- mes "Date Dungeon will be starting now..";
- close2;
- initnpctimer;
- instance_announce 0,"Welcome to Date Dungeon, and it's starting now...",0;
- donpcevent instance_npcname( "Date Dungeon#main",instance_id() )+"::OnInstanceStart";
- end;
- }else{
- npctalk "Please wait...";
- }
- end;
- OnPCLogoutEvent:
- if( strcharinfo(3) == has_instance( getvariableofnpc( .map$,"Date Dungeon" ) ) ){
- instance_announce 0,"Party Member logoff....Dungeon Terminated.",0;
- instance_destroy instance_id(1);
- }
- end;
- OnInstanceInit:
- sleep 2000;
- npctalk "Please get yourself ready...Kill all the monster and survive....Resurection Item disabled.";
- instance_announce 0,"Welcome to Date Dungeon",0;
- sleep 3000;
- npctalk "Dungeon will be terminate if party members logoff";
- sleep 3000;
- npctalk "Click me when you are ready.";
- set 'status,1;
- set 'mapname$,getvariableofnpc( .map$,"Date Dungeon" );
- end;
- OnNormal:
- set 'mobcount,'mobcount - 1;
- if( 'mobcount ){
- instance_announce 0,"Monster Left : "+'mobcount,0;
- end;
- }
- OnInstanceStart:
- set 'round,'round + 1;
- instance_announce 0,'modename$+" Round "+'round+" start in 5 seconds..",0;
- sleep 5000;
- switch( 'mode ){
- default:
- Case 1: // Easy Mode
- switch( 'round ){
- Case 1: DateDungeonMob( "OnNormal",1002,1,1002,1,1004,3 ); break;
- Case 2: DateDungeonMob( "OnNormal",1002,1,1002,1,1004,3 ); break;
- Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- default: // Boss Stage
- DateDungeonMob( "OnBoss",1002,2 );
- }
- break;
- Case 2: // Normal Mode
- switch( 'round ){
- Case 1: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- Case 2: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- default: // Boss Stage
- DateDungeonMob( "OnBoss",1002,2 );
- }
- break;
- Case 3: // Hard Mode
- switch( 'round ){
- Case 1: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- Case 2: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
- default: // Boss Stage
- DateDungeonMob( "OnBoss",1002,2 );
- }
- break;
- }
- end;
- OnBoss:
- set 'mobcount,'mobcount - 1;
- if( 'mobcount ){
- instance_announce 0,'modename$+" Boss Monster Left : "+'mobcount,0;
- }else{
- stopnpctimer;
- set .@timer,getnpctimer(0);
- instance_announce 0,'modename$+" Congratz ... Total Time Spent : "+( .@timer / 60000 )+" min. "+( ( .@timer % 60000 ) / 1000 )+" secs.",0;
- getpartymember 'status;
- switch( 'mode ){
- default:
- Case 1:
- if( $date_easy_record > .@timer || !$date_easy_record ){
- set $date_easy_record,.@timer;
- set $date_easy_1$,$@partymembername$[0];
- set $date_easy_2$,$@partymembername$[1];
- }
- break;
- Case 2:
- if( $date_normal_record > .@timer || !$date_normal_record ){
- set $date_normal_record,.@timer;
- set $date_normal_1$,$@partymembername$[0];
- set $date_normal_2$,$@partymembername$[1];
- }
- break;
- Case 3:
- if( $date_easy_record > .@timer || !$date_easy_record ){
- set $date_hard_record,.@timer;
- set $date_hard_1$,$@partymembername$[0];
- set $date_hard_2$,$@partymembername$[1];
- }
- break;
- }
- sleep 3000;
- instance_destroy 'instance_id;
- }
- end;
- function DateDungeonMob {
- set .@event$,getarg(0);
- set .@i,1;
- while( getarg( .@i,0 ) ){
- monster 'mapname$,0,0,"--ja--",getarg( .@i ),getarg( .@i+1 ),instance_npcname( "Date Dungeon#main", 'instance_id )+"::"+.@event$;
- set .@i,.@i + 2;
- }
- set 'mobcount,mobcount( 'mapname$,instance_npcname( "Date Dungeon#main",'instance_id )+"::"+.@event$ );
- instance_announce 0,'modename$+" Monster Left : "+'mobcount,0;
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment