Jump to content
  • 0

BG Emperium by annie


Feefty

Question


  • Group:  Members
  • Topic Count:  47
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   14
  • Joined:  11/21/11
  • Last Seen:  

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

Thanks.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

onstart:
delwaitingroom;    <---------- add this..

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  47
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   14
  • Joined:  11/21/11
  • Last Seen:  

onstart:
delwaitingroom;	<---------- add this..

doesn't work. im still getting the error.

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  47
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   14
  • Joined:  11/21/11
  • Last Seen:  

the errors is gone but looks like all my OnStart event is rerunning.

http://prntscr.com/l2pd1

Edited: nvm. i edited the OnStart in the script and changed to something else.

Thanks!

i got a new problem.

the waitingroom is not showing after its finished doing an even and some of the event is not working properly like OnBlueDead and OnRedQuit etc

Edited by Feefty
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  47
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   14
  • Joined:  11/21/11
  • Last Seen:  

help

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...