prontera,158,183,4 script dungeon event 100,{
mes "dungeon event blahblah";
next;
if ( !getcharid(1) ) {
mes "you don't have a party";
close;
}
getpartymember getcharid(1), 1;
getpartymember getcharid(1), 2;
if ( $@partymembercount != .register_count ) {
mes "you need to form a party of "+ .register_count;
close;
}
.@today = gettimestr("%Y%m%d", 9);
.@origin = getcharid(3);
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if ( isloggedin( $@partymemberaid[.@i] , $@partymembercid[.@i] ) ) {
attachrid $@partymemberaid[.@i];
if ( strcharinfo(3) == strnpcinfo(4) )
.@online++;
if ( dungeon_ev_deny[ .@today ] >= .enterperday ) {
.@denyname$[.@denycount] = strcharinfo(0);
.@denycount++;
}
}
}
attachrid .@origin;
if ( .@online != .register_count ) {
mes "your party needs "+ .register_count +" party members online on "+ strnpcinfo(4) +" map";
close;
}
if ( .@denycount ) {
mes "There are a few party members that just enter this dungeon "+ .enterperday +" times today";
for ( .@i = 0; .@i < .@denycount; .@i++ )
mes ( .@i +1 ) +". "+ .@denyname$[.@i];
close;
}
if ( ( .@ins = instance_create( "Dungeon event", getcharid(1), IOT_PARTY ) ) < 0 ) {
mes "error : "+ .@ins;
close;
}
if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, 1, getcharid(1)+"Dun_ev" ) ) ) {
mes "error : 5";
instance_destroy .@ins;
close;
}
instance_set_timeout 0, 1, .@ins;
instance_init .@ins;
instance_attach .@ins;
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
attachrid $@partymemberaid[.@i];
if ( strcharinfo(3) == strnpcinfo(4) ) {
warp has_instance("guild_vs2"), 0,0;
if ( !dungeon_ev_deny[ .@today ] )
deletearray dungeon_ev_deny;
dungeon_ev_deny[ .@today ]++;
}
}
}
end;
OnInit:
setarray .round1, 1002,30, 1090,1; // 30 poring , 1 mastering
setarray .round2, 1002,40, 1090,2; // 40 poring , 2 mastering
setarray .round3, 1002,50, 1090,2; // 50 poring , 2 mastering
setarray .round4, 1002,60, 1090,2; // 60 poring , 2 mastering
setarray .round5, 1090,3; // 3 mastering
.totalround = 5;
.register_count = 5; // how many party members needed
.enterperday = 3; // how many times can enter per day
getmapxy .map$, .x, .y, 1;
end;
}
guild_vs2,0,0,0 script dun_ev -1,{
OnInstanceInit:
sleep 2000; // delay abit
Ondead:
if ( 'round ) 'killed++;
if ( 'killed < 'total ) end;
.@main$ = "dungeon event"; // main npc name
'round++;
'killed = 0;
if ( 'round == getvariableofnpc( .totalround, .@main$ ) +1 ) {
instance_announce -1, "Congratulations !", bc_all;
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) == has_instance("guild_vs2") )
getitem 7227,30; // reward here
}
}
sleep 2000;
instance_warpall getvariableofnpc( .map$, .@main$ ), getvariableofnpc( .x, .@main$ ), getvariableofnpc( .y, .@main$ );
end;
}
instance_announce -1, "Prepare for Level "+ 'round +" Mobs...", bc_all;
sleep 2000;
.@size = getarraysize( getvariableofnpc( getd( ".round"+ 'round ), .@main$ ) );
'total = 0;
for ( .@j = 0; .@j < .@size; .@j += 2 ) {
monster has_instance( "guild_vs2" ), 49,49, "--ja--", getvariableofnpc( getelementofarray( getd( ".round"+ 'round ), .@j ), .@main$ ), getvariableofnpc( getelementofarray( getd( ".round"+ 'round ), .@j +1 ), .@main$ ), instance_npcname( strnpcinfo(0) )+"::Ondead";
'total = 'total + getvariableofnpc( getelementofarray( getd( ".round"+ 'round ), .@j +1 ), .@main$ );
}
end;
}
guild_vs2 mapflag nowarp
guild_vs2 mapflag nowarpto
guild_vs2 mapflag nomemo
guild_vs2 mapflag nosave SavePoint
guild_vs2 mapflag partylock
guild_vs2 mapflag src4instance