prontera,156,189,5 script Raid 100,{
mes "This is Raid Dungeon.";
mes "you need to make a party of MAXIMUM of 15Members and a MINIMUM of 10Members.. so i can allow you to dive inside.";
mes "Inside this raid dungeon, there would be 7 Levels of Mob.";
mes "Lever 1, Lever 2, Lever 3, and so on and so forth";
mes "as the Lvl increases the more the mobs gets stronger. so better be carefull";
mes "the next lever will appear after you finish the mobs of ( e.g. Lever 1 )";
mes "after Lever 1-7 which is normal mobs";
mes "the Lever for boss of this raid dungeon will appear";
mes "NOTE: this is a custom mob Boss Monster so u better be prepare what ever it happens";
mes "and oh i forgot (your party has only 15 lives)";
mes "you can ressurect them by using Yggdrasil leaf or Skill of priest";
mes "but remember just 15 Lives. if ur party exceed this limit you party will be automatically warped out";
mes "so are you ready?";
mes "here we go";
next;
if ( !getcharid(1) ) {
mes "You have to form a party to play.";
close;
}
if ( getpartyleader( getcharid(1), 2 ) != getcharid(0) ) {
mes "Only the party leader can register.";
close;
}
if ( !countitem( .register_item ) ) {
mes "you don't have "+ getitemname( .register_item );
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;
}
if ( ( .@ins = instance_create( "Raid Dungeon", getcharid(1), IOT_PARTY ) ) < 0 ) {
mes "error : "+ .@ins;
close;
}
if ( instance_attachmap( "guild_vs2", .@ins, 1, getcharid(1)+"RAID" ) == "" ) {
mes "error : 5";
instance_destroy .@ins;
close;
}
instance_set_timeout 0, 1, .@ins;
instance_init .@ins;
instance_attach .@ins;
delitem .register_item, 1;
warpparty has_instance("guild_vs2"), 0,0, getcharid(1), strnpcinfo(4);
'lives = .party_lives;
end;
OnInit:
.register_min = 2; // the exact amount of party members to have in the party to start
.register_item = 501; // this item is require to start the event
.party_lives = 15; // number of lives for the party members to lose their life, otherwise they'll fail at this event
setarray .round1[0], 1001,20, 1001,20;
setarray .round2[0], 1031,20, 1032,20;
setarray .round3[0], 1111,20, 1113,20;
.totalround = 3;
getmapxy .map$, .x, .y, 1;
end;
OnPCDieEvent:
debugmes "run OnPCDieEvent";
if ( strcharinfo(3) == has_instance("guild_vs2") ) {
debugmes "has_instance check on OnPCDieEvent pass";
instance_attach has_instance2( "guild_vs2" );
'lives--;
if ( !'lives ) {
instance_announce -1, "Your party has used up all the lives", bc_map;
.@map$ = strcharinfo(3);
killmonsterall .@map$;
sleep 5000;
mapwarp .@map$, .map$, .x, .y;
}
else {
debugmes "'lives instance variable from OnPCDieEvent get deducted correctly";
instance_announce -1, "Your party still has "+ 'lives +" lives left", bc_map;
}
}
end;
}
guild_vs2,0,0,0 script Raid_ins -1,{
OnInstanceInit:
debugmes "OnInstanceInit working correctly";
sleep 2000; // delay abit
Ondead:
if ( 'round ) 'killed++;
if ( 'killed < 'total ) end;
.@main$ = "Raid"; // main npc name
'round++;
'killed = 0;
if ( 'round == getvariableofnpc( .totalround, .@main$ ) +1 ) {
instance_announce -1, "Congratulations !", bc_all;
debugmes "The party can end this instance correctly";
sleep 2000;
instance_warpall getvariableofnpc( .map$, .@main$ ), getvariableofnpc( .x, .@main$ ), getvariableofnpc( .y, .@main$ );
end;
}
instance_announce -1, "Prepare for Level "+ 'round +" Mobs...", bc_all;
debugmes "round "+ 'round +" is able to start correctly";
sleep 2000;
.@size = getarraysize( getvariableofnpc( getd( ".round"+ 'round ), .@main$ ) );
'total = 0;
for ( .@j = 0; .@j < .@size; .@j += 2 ) {
debugmes "monster ID "+ getvariableofnpc( getelementofarray( getd( ".round"+ 'round ), .@j ), .@main$ ) +" can be spawn correctly";
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