prontera,156,189,5 script kjdshfkjsf 100,{ setoption Option_Xmas, 1; sleep2 5000; setoption Option_Xmas, 0; end; } - script bg_emp_1vs1#main -1,{ OnInit: .minplayer2start = 1; // minimum player to start .eventlasting = 30 * 60; // abort the system if there's no progress, 30 mins * seconds setarray .rewardwin, 501,10, 502,5, 503,3; // reward to winning team setarray .rewardlose, 501,5, 502,3, 503,1; // reward to losing team setarray .rewarddraw, 501,3, 502,1; // reward to both teams when draw .rewardwinsize = getarraysize( .rewardwin ); .rewardlosesize = getarraysize( .rewardlose ); .rewarddrawsize = getarraysize( .rewarddraw ); setarray .guardian_xy, 168,266, 168,202, 168,137, 148,266, 148,202, 148,137; mapwarp "event_01", "prontera", 157,182; end; OnStart: .@redcount = getwaitingroomstate( 0, .rednpcname$ ); .@bluecount = getwaitingroomstate( 0, .bluenpcname$ ); if ( .@redcount < .minplayer2start || .@bluecount < .minplayer2start ) { announce "Battleground Emperium : Red ["+ .@redcount +"/"+ .minplayer2start +"] | Blue ["+ .@bluecount +"/"+ .minplayer2start +"]", bc_all; end; } .red = waitingroom2bg( "event_01", 157,352, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray getd(".team"+ .red +"aid"), $@arenamembers, $@arenamembersnum; .blue = waitingroom2bg( "event_01", 157,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray getd(".team"+ .blue +"aid"), $@arenamembers, $@arenamembersnum; .teamcount[.red] = .teamcount[.blue] = .minplayer2start; .teamname$[.red] = "Red"; .teamname$[.blue] = "Blue"; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; disablenpc .rednpcname$; disablenpc .bluenpcname$; bg_warp .red, "event_01",157,352; bg_warp .blue, "event_01",157,50; bg_monster .red,"event_01", 157,338, "--ja--",1915, strnpcinfo(0)+"::OnRedDown"; bg_monster .blue,"event_01", 157,64, "--ja--",1914, strnpcinfo(0)+"::OnBlueDown"; for ( .@i = 0; .@i < 6; .@i++ ) bg_monster 0, "event_01", .guardian_xy[ .@i *2 ], .guardian_xy[ .@i *2 +1 ], "--ja--", 2901, strnpcinfo(0) +"::Onguard"+ .@i +"down"; sleep .eventlasting * 1000; killmonsterall "event_01", strnpcinfo(0)+"::OnRedDown"; if ( .winside == .red ) { mapannounce "event_01", " Red side wins !", bc_map; callsub L_reward, .red, .rewardwin, .rewardwinsize; callsub L_reward, .blue, .rewardlose, .rewardlosesize; } else if ( .winside == .blue ) { mapannounce "event_01", " Blue side wins !", bc_map; callsub L_reward, .blue, .rewardwin, .rewardwinsize; callsub L_reward, .red, .rewardlose, .rewardlosesize; } else { mapannounce "event_01", "Time Out. Aborting the match.", bc_map; callsub L_reward, .red, .rewarddraw, .rewarddrawsize; callsub L_reward, .blue, .rewarddraw, .rewarddrawsize; } sleep 5000; mapwarp "event_01", "prontera", 157,182; bg_destroy .red; bg_destroy .blue; deletearray getd(".team"+ .red +"aid"); deletearray getd(".team"+ .blue +"aid"); .winside = .teamcount[.red] = .teamcount[.blue] = 0; .teamname$[.red] = .teamname$[.blue] = ""; enablenpc .rednpcname$; enablenpc .bluenpcname$; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; L_reward: for ( .@i = 0; .@i < .teamcount[ getarg(0) ]; .@i++ ) for ( .@j = 0; .@j < getarg(2); .@j += 2 ) getitem getelementofarray( getarg(1), .@j ), getelementofarray( getarg(1), .@j +1 ), getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ); return; Onguard0down: callsub L_guard_down, 0; Onguard1down: callsub L_guard_down, 1; Onguard2down: callsub L_guard_down, 2; Onguard3down: callsub L_guard_down, 3; Onguard4down: callsub L_guard_down, 4; Onguard5down: callsub L_guard_down, 5; L_guard_down: if ( getcharid(4) == .red ) .@killed_bg = .red; else if ( getcharid(4) == .blue ) .@killed_bg = .blue; sleep 8000; bg_monster .@killed_bg, "event_01", .guardian_xy[ getarg(0) *2 ], .guardian_xy[ getarg(0) *2 +1 ], "--ja--", 2901, strnpcinfo(0) +"::Onguard"+ getarg(0) +"down"; end; OnRedDown: callsub L_EmpDown, .red, .blue; OnBlueDown: callsub L_EmpDown, .blue, .red; L_EmpDown: mapannounce "event_01", strcharinfo(0) +" has Destroy "+ .teamname$[ getarg(0) ] +"'s side Emperium.", bc_map; .winside = getarg(1); awake strnpcinfo(0); end; OnRedDead: OnBlueDead: sleep2 1250; percentheal 100,100; if ( !getcharid(4) ) end; pcblockmove getcharid(3), 1; setoption Option_Invisible, 1; sleep2 5000; setoption Option_Invisible, 0; pcblockmove getcharid(3), 0; end; OnRedQuit: callsub L_quit, .red, .blue; OnBlueQuit: callsub L_quit, .blue, .red; L_quit: percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < .teamcount[ getarg(0) ] ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; .teamcount[ getarg(0) ]--; if ( .teamcount[ getarg(0) ] ) end; mapannounce "event_01", "All "+ .teamname$[ getarg(0) ] +" team members has Quit !", bc_map, 0xff3333; // purposely use different color .winside = getarg(1); awake strnpcinfo(0); end; } prontera,155,182,5 script Red side#bg_emp 733,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_emp_1vs1#main" ), strnpcinfo(0); OnStart: waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_emp_1vs1#main" ) +1, "bg_emp_1vs1#main::OnStart", 1; end; } prontera,159,182,5 script Blue side#bg_emp 734,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_emp_1vs1#main" ), strnpcinfo(0); OnStart: waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_emp_1vs1#main" ) +1, "bg_emp_1vs1#main::OnStart", 1; end; } event_01 mapflag battleground event_01 mapflag nosave SavePoint event_01 mapflag nowarp event_01 mapflag nowarpto event_01 mapflag noreturn event_01 mapflag nomemo event_01 mapflag noteleport event_01 mapflag nopenalty event_01 mapflag nobranch event_01 mapflag noicewall