Hi, i'm trying to remove the manual activation by the GM but i'm getting an error chat_createnpcchat: npc 'BG Red Side#bg_emp' already has a chatroom, cannot create new one!
- script bg_emp#control -1,{
OnInit:
setarray .rewarditem, 31003, 1; // reward to the winning team
set .winningscore, 3; // final score to win
set .eventlasting, 30 * 60; // abort the system if there's no progress, 20 mins * seconds
set .register_lasting, 10 * 60; // 10 minutes to joins, else abort registration, 10 mins * seconds
set $requiredBGLevel, 150; // required level to enter
set $requiredBGZeny, 0;
set $requiredBGPlayer, 4;
sleep 1;
end;
OnStart:
if ( getwaitingroomstate( 0, .rednpcname$ ) < $requiredBGPlayer || getwaitingroomstate( 0, .bluenpcname$ ) < $requiredBGPlayer ) end;
set .red, waitingroom2bg( "bat_c01", 53,128, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
copyarray .team1aid, $@arenamembers, $@arenamembersnum;
set .blue, waitingroom2bg( "bat_c01", 146,55, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
copyarray .team2aid, $@arenamembers, $@arenamembersnum;
delwaitingroom .rednpcname$;
delwaitingroom .bluenpcname$;
disablenpc .rednpcname$;
disablenpc .bluenpcname$;
.inprogress = 2;
awake strnpcinfo(0);
bg_warp .red, "bat_c01", 53,128;
bg_warp .blue, "bat_c01", 146,55;
setwall "bat_c01", 145,61, 6, 2, 0, "bg_emp_town_blue1";
setwall "bat_c01", 140,56, 6, 0, 0, "bg_emp_town_blue2";
setwall "bat_c01", 59,127, 6, 4, 0, "bg_emp_town_red1";
setwall "bat_c01", 54,122, 6, 6, 0, "bg_emp_town_red2";
bg_updatescore "bat_c01", 0, 0;
sleep 6000; if ( .inprogress == 0 ) goto L_Abort;
mapannounce "bat_c01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0;
sleep 3000; if ( .inprogress == 0 ) goto L_Abort;
mapannounce "bat_c01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0;
sleep 2000; if ( .inprogress == 0 ) goto L_Abort;
while (1) {
for ( .@i = 5; .@i > 0; .@i-- ) {
mapannounce "bat_c01", .@i +"", 0;
sleep 1000; if ( .inprogress == 0 ) goto L_Abort;
}
if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
mapannounce "bat_c01", "Final Round start!", 0;
else
mapannounce "bat_c01", "Round "+ .round++ +" start!", 0;
bg_monster .red,"bat_c01",53,128, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
bg_monster .blue,"bat_c01",146,55, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
delwall "bg_emp_town_red1";
delwall "bg_emp_town_red2";
delwall "bg_emp_town_blue1";
delwall "bg_emp_town_blue2";
sleep .eventlasting * 1000; if ( .inprogress == 0 ) goto L_Abort;
.score[ .winside ]++;
bg_updatescore "bat_c01", .score[1], .score[2];
killmonster "bat_c01", strnpcinfo(3)+"::OnRedDown";
killmonster "bat_c01", strnpcinfo(3)+"::OnBlueDown";
if ( .winside )
mapannounce "bat_c01", .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; if ( .inprogress == 0 ) goto L_Abort;
bg_warp .red, "bat_c01", 53,128;
bg_warp .blue, "bat_c01", 146,55;
setwall "bat_c01", 143,61, 6, 2, 0, "bg_emp_town_blue1";
setwall "bat_c01", 140,58, 6, 0, 0, "bg_emp_town_blue2";
setwall "bat_c01", 59,125, 6, 0, 0, "bg_emp_town_red1";
setwall "bat_c01", 57,122, 6, 2, 0, "bg_emp_town_red2";
.winside = 0;
}
if ( .winside ) {
mapannounce "bat_c01", ( ( .winside == 1 )?"Red":"Blue" )+" side wins !", 0;
.@size = getarraysize( getd(".team"+ .winside +"aid") );
for ( .@i = 0; .@i < .@size; .@i++ )
getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
} else
mapannounce "bat_c01", "Time Out. Aborting the match.", 0;
sleep 5000;
L_Abort:
bg_warp .red, "heiron", 100,37;
bg_warp .blue, "heiron", 100,37;
bg_destroy .red;
bg_destroy .blue;
delwall "bg_emp_town_red1";
delwall "bg_emp_town_red2";
delwall "bg_emp_town_blue1";
delwall "bg_emp_town_blue2";
deletearray .team1aid;
deletearray .team2aid;
.round = .winside = .score[2] = .score[1] = .inprogress = 0;
enablenpc .rednpcname$;
enablenpc .bluenpcname$;
end;
OnRedDown: callsub L_EmpDown, 2;
OnBlueDown: callsub L_EmpDown, 1;
L_EmpDown:
.empkiller$ = strcharinfo(0);
.winside = getarg(0);
awake strnpcinfo(3);
OnRedDead:
OnBlueDead:
end;
OnRedQuit: callsub L_quit, .red, "Red", "Blue", 2;
OnBlueQuit: callsub L_quit, .blue, "Blue", "Red", 1;
L_quit:
if ( bg_get_data( getarg(0), 0 ) ) end;
mapannounce "bat_c01", "All "+ getarg(1) +" team members has Quit ! "+ getarg(2) +" side wins !", 0;
.@size = getarraysize( getd(".team"+ getarg(3) +"aid") );
for ( .@i = 0; .@i < .@size; .@i++ )
getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(3) +"aid["+ .@i +"]" );
goto L_Abort;
OnAutoAbort:
sleep .register_lasting * 1000;
delwaitingroom .rednpcname$;
delwaitingroom .bluenpcname$;
disablenpc .rednpcname$;
disablenpc .bluenpcname$;
if ( .inprogress == 1 ) {
.inprogress = 0;
announce "battleground has self-aborted because not enough members", 0;
}
end;
}[/b][/i]
[i][b]- script bg_start -1,{
OnInit:
bindatcmd("bgemp", "bg_start::OnAtcommand", 90, 90);
donpcevent getvariableofnpc( .rednpcname$, "bg_emp#control" ) +"::OnStart";
donpcevent getvariableofnpc( .bluenpcname$, "bg_emp#control" ) +"::OnStart";
set getvariableofnpc( .inprogress, "bg_emp#control" ), 1;
//donpcevent "bg_emp#control::OnAutoAbort";
end;
OnAtcommand:
if ( getgmlevel() < 99 ) {
mes "I only talk to gm";
close;
}
if ( getvariableofnpc( .inprogress, "bg_emp#control" ) ) {
mes "abort ?";
next;
if ( select ( "Yes", "No" ) == 2 ) close;
set getvariableofnpc( .inprogress, "bg_emp#control" ), 0;
awake "bg_emp#control";
killmonster "bat_c01", "bg_emp#control::OnRedDown";
killmonster "bat_c01", "bg_emp#control::OnBlueDown";
announce strcharinfo(0) +" has abort the battleground", 0;
close;
}
end;
}[/b][/i]
[i][b]prontera,151,181,4 script BG Red Side#bg_emp 100,{
end;
OnStart:
waitingroom "BG Red Side", $requiredBGPlayer+1, "bg_emp#control::OnStart", $requiredBGPlayer, $requiredBGZeny, $requiredBGLevel, $requiredBGLevel;
end;
OnInit:
set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
end;
}[/b][/i]
[i][b]prontera,160,181,4 script BG Blue Side#bg_emp 100,{
end;
OnStart:
waitingroom "BG Blue Side", $requiredBGPlayer+1, "bg_emp#control::OnStart", $requiredBGPlayer, $requiredBGZeny, $requiredBGLevel, $requiredBGLevel;
end;
OnInit:
set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
end;
}[/b][/i]
[i][b]06guild_01,50,6,0 warp toheiron 2,2,heiron,99,35[/b][/i]
[i][b]bat_c01 mapflag battleground 2
bat_c01 mapflag nosave SavePoint
bat_c01 mapflag nowarp
bat_c01 mapflag nowarpto
bat_c01 mapflag noteleport
bat_c01 mapflag nomemo
bat_c01 mapflag nopenalty
bat_c01 mapflag nobranch
bat_c01 mapflag noicewall
bat_c01 mapflag nocommand 5
Question
Feefty
Hi, i'm trying to remove the manual activation by the GM but i'm getting an error chat_createnpcchat: npc 'BG Red Side#bg_emp' already has a chatroom, cannot create new one!
Thanks.
Link to comment
Share on other sites
5 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.