hi annie.. can you please help me about this script.. i just want the rednpc and blue npc waiting rooms not to disappear after warping the player on ba_a01.. the purpose is when the BG emp has started.. other players can still join the event until the BG has fisnished .. or is there any other way of doing it? so players can still join the BG emp and also a for the players inside the BG emp that logout should have like a 5min delay to enter again thankyou so much if you have time to spare thanks
@edit.
also the script is working fine at 1st.. but when i reloadnpc again and i entered the waiting rooms.. at rednpc2/2 and blueNPC 2/2 the npc disappeared but not warping the players on bat_a01
Question
celeron0134
- script bg_emp#control -1,{ OnInit: .minplayer2start = 1; // minimum player to start .winningscore = 2; // final score to win .eventlasting = 20 * 60; // abort the system if there's no progress, 20 mins * seconds setarray .rewarditem, 673, 5; // reward to the winning team end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; .red = waitingroom2bg( "bat_a01", 171,346, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, $@arenamembers, $@arenamembersnum; .team1count = .minplayer2start; .blue = waitingroom2bg( "bat_a01", 162,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, $@arenamembers, $@arenamembersnum; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; disablenpc .rednpcname$; disablenpc .bluenpcname$; bg_warp .red, "bat_a01", 171,346; bg_warp .blue, "bat_a01", 162,50; setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue"; setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red"; bg_updatescore "bat_a01", 0, 0; sleep 6000 * !.skip; mapannounce "bat_a01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0; sleep 3000 * !.skip; mapannounce "bat_a01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0; sleep 2000 * !.skip; while (1) { for ( .@i = 5; .@i > 0; .@i-- ) { mapannounce "bat_a01", "["+ .@i +"]", 0; sleep 1000 * !.skip; } if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 ) mapannounce "bat_a01", "Final Round start!", 0; else mapannounce "bat_a01", "Round "+ .round++ +" start!", 0; bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown"; bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown"; delwall "bg_emp_town_red"; delwall "bg_emp_town_blue"; sleep .eventlasting * 1000 * !.skip; bg_updatescore "bat_a01", .score[1], .score[2]; killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown"; killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown"; if ( getstrlen( .empkiller$ ) ) mapannounce "bat_a01", .empkiller$ +" has Destroy "+( ( .winside == 1 )? "Blue" : "Red" )+"'s side Emperium. "+( ( .winside == 1 )? "Red" : "Blue" )+" team score a point !", 0; if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break; sleep 5000 * !.skip; bg_warp .red, "bat_a01", 171,346; bg_warp .blue, "bat_a01", 162,50; setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue"; setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red"; sleep 1000 * !.skip; .winside = 0; } if ( .winside ) { mapannounce "bat_a01", " "+ ( ( .winside == 1 )? "Red" : "Blue" ) +" side wins !", 0; for ( .@i = 0; .@i < getd(".team"+ .winside +"count"); .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" ); } else mapannounce "bat_a01", "Time Out. Aborting the match.", 0; sleep 5000; bg_warp .red, "prontera", 155,182; bg_warp .blue, "prontera", 158,182; bg_destroy .red; bg_destroy .blue; delwall "bg_emp_town_red"; delwall "bg_emp_town_blue"; deletearray .team1aid; deletearray .team2aid; .round = .winside = .skip = .score[1] = .score[2] = .team1count = .team2count = 0; enablenpc .rednpcname$; enablenpc .bluenpcname$; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; OnRedDown: callsub L_EmpDown, 2; OnBlueDown: callsub L_EmpDown, 1; L_EmpDown: .empkiller$ = strcharinfo(0); .winside = getarg(0); .score[ .winside ]++; awake strnpcinfo(0); end; OnRedDead: callsub L_dead, 2; OnBlueDead: callsub L_dead, 1; L_dead: for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ ) getitem 608, 1, getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); // give a ygg leaf here sleep2 1250; percentheal 100,100; end; OnRedQuit: callsub L_quit, 1, "Red", 2; OnBlueQuit: callsub L_quit, 2, "Blue", 1; L_quit: percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( getd(".team"+ getarg(0) +"count") ) end; mapannounce "bat_a01", "All "+ getarg(1) +" team members has Quit !", 0, 0xff3333; // purposely use different color .score[ getarg(2) ] = .winningscore; .winside = getarg(2); .skip = 1; awake strnpcinfo(0); end; } prontera,155,182,5 script Red side#bg_emp 100,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0); OnStart: waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1; end; OnJoin: announce "The Red side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0; donpcevent "bg_emp#control::OnStart"; end; } prontera,158,182,5 script Blue side#bg_emp 100,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0); OnStart: waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1; end; OnJoin: announce "The Blue side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0; donpcevent "bg_emp#control::OnStart"; end; } bat_a01 mapflag battleground 2 bat_a01 mapflag nosave SavePoint bat_a01 mapflag nowarp bat_a01 mapflag nowarpto bat_a01 mapflag noteleport bat_a01 mapflag nomemo bat_a01 mapflag nopenalty bat_a01 mapflag nobranch bat_a01 mapflag noicewall
hi annie.. can you please help me about this script.. i just want the rednpc and blue npc waiting rooms not to disappear after warping the player on ba_a01.. the purpose is when the BG emp has started.. other players can still join the event until the BG has fisnished .. or is there any other way of doing it? so players can still join the BG emp and also a for the players inside the BG emp that logout should have like a 5min delay to enter again thankyou so much if you have time to spare thanks
@edit.
also the script is working fine at 1st.. but when i reloadnpc again and i entered the waiting rooms.. at rednpc2/2 and blueNPC 2/2 the npc disappeared but not warping the players on bat_a01
Link to comment
Share on other sites
13 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.