Jump to content
  • 0

Disable @die in Battlegrounds


irvingsp

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  07/24/12
  • Last Seen:  

I would like to know how to disable @die in all maps of battleground, i understand that yo use mapflags, but i dont know how they work, this is an example of a script that im using for a BG:

// ==============================================================================
// BattleGround System - Flavius TD - Flavius Team Deathmatch
// ==============================================================================
// By Suke / s4zuk3
// ==============================================================================
// Registration NPC's
// *********************************************************************
bat_room,253,97,4 script Registration::Fl1R_Guillaume 418,{
end;
OnInit:
waitingroom "Battle Station 3 Players",3,"Flavius_BG1::OnGuillaumeJoin",1;
end;
OnEnterBG:
set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",390,10,"Flavius_BG1::OnGuillaumeQuit","");
end;
}
bat_room,253,74,0 script Registration::Fl1R_Croix 414,{
end;
OnInit:
waitingroom "Battle Station 3 Players",3,"Flavius_BG1::OnCroixJoin",1;
end;
OnEnterBG:
set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",10,290,"Flavius_BG1::OnCroixQuit","");
end;
}
// Battleground Engine
// *********************************************************************
- script Flavius_BG1 -1,{
end;
OnInit:
disablenpc "Guillaume Vintenar#fl1";
disablenpc "Croix Vintenar#fl1";
disablenpc "Therapist in battle#fl11";
disablenpc "Therapist in battle#fl12";
end;
OnGuillaumeQuit:
OnCroixQuit:
if($@FlaviusBG1 != 1) {end;}
if(Bat_Team == 2) {
for(set .@i,0; .@i < getarraysize($@bg_red$); set .@i,.@i+1){
if($@bg_red$[.@i] == strcharinfo(0)) {break;}
}
deletearray $@bg_red$[.@i],1;
set $@td_a,$@td_a-1;
end;
} else if(Bat_Team == 1) {
for(set .@i,0; .@i < getarraysize($@bg_blue$); set .@i,.@i+1){
if($@bg_blue$[.@i] == strcharinfo(0)) {break;}
}
deletearray $@bg_blue$[.@i],1;
set $@td_b,$@td_b-1;
end;
}
else { end; }
end;

OnGuillaumeJoin:
OnCroixJoin:
 if( $@FlaviusBG1 == 1 ){
if( $@Guill < 30 && $@Croi < 30){
set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume");
set .@Croix, getwaitingroomstate(0,"Fl1R_Croix");
if (.@Guillaume!=0 && .@Croix!=0){
set $@Guill, ($@Guill + 1);
set $@Croi, ($@Croi + 1);
waitingroom2bg_single($@FlaviusBG1_id1,"bat_b01",311,224,"Fl1R_Guillaume");
waitingroom2bg_single($@FlaviusBG1_id2,"bat_b01",87,75,"Fl1R_Croix");
mapannounce "bat_room","Battleground -- Flavius Team Deathmatch [80-99] G: " + $@Guill + "/30, C: " + $@Croi + "/30 in Progress!!",1,0x006400;
 end;
}
}
}
if( $@FlaviusBG1 == 0 ){
 donpcevent "Flavius_BG1::OnReadyCheck";
 end;
}
OnReadyCheck:
if( $@FlaviusBG1 )
 end;
set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume");
set .@Croix, getwaitingroomstate(0,"Fl1R_Croix");

 if( .@Guillaume < 3 || .@Croix < 3 ){

if( .@Guillaume >=4  && .@Croix >=4 && !agitcheck() && $@FLTD_Flood < gettimetick(2) )
{
announce "Battleground -- Flavius Team Deathmatch [80-99] G: " + .@Guillaume + "/3, C: " + .@Croix + "/3",bc_all,0x006400;
set $@FLTD_Flood, gettimetick(2) + 15;
end;
}
 mapannounce "bat_room","Battleground -- Flavius Team Deathmatch [80-99] G: " + .@Guillaume + "/3, C: " + .@Croix + "/3",1,0x006400;
 end;
}
//

 // BG Variables
set $@FlaviusBG1, 1;
set $@FlaviusBG1_Victory, 0;
set .Guillaume_Score, 99;
set .Croix_Score, 99;
// Prepare NPC
donpcevent "#gfl1_respawn::OnBGStart";
donpcevent "#cfl1_respawn::OnBGStart";
donpcevent "#fltd_regroup::OnBGStart";
enablenpc "Therapist in battle#fl11";
enablenpc "Therapist in battle#fl12";
disablenpc "Guillaume Vintenar#fl1";
disablenpc "Croix Vintenar#fl1";
// Build and Warp Teams
donpcevent "Fl1R_Guillaume::OnEnterBG";
donpcevent "Fl1R_Croix::OnEnterBG";
// Vamos contando :3
set $@Guill, 10;
set $@Croi, 10;
announce "Battleground -- Flavius Team Deathmatch [80-99] has started!",0,0x006400;
initnpctimer;
// Death!!
OnRoundStart:
if( $@FlaviusBG1 != 1 ) end;
bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
areapercentheal "bat_b01",382,2,397,17,100,100;
areapercentheal "bat_b01",2,282,17,297,100,100;
bg_warp $@FlaviusBG1_id1,"bat_b01",311,224;
bg_warp $@FlaviusBG1_id2,"bat_b01",87,75;
sleep 2000;
if( $@FlaviusBG1 != 1 ) end;
mapannounce "bat_b01","The Battle of Flavius Team Deathmatch has begun!!",1,0x006400;
bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
end;
OnPCDieEvent:
if( $@FlaviusBG1 == 1 )
{
 getmapxy (mapname$,.@mapx,.@mapy,0,strcharinfo(0));
 if ( mapname$ != "bat_b01") end;
  if( Bat_Team == 1) {
  set .Croix_Score, .Croix_Score -1;
  bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
  if (.Croix_Score < 1) donpcevent "Flavius_BG1::OnCroixTDWin";
  end;
  }
  if ( Bat_Team == 2) {
	 set .Guillaume_Score, .Guillaume_Score -1;
	 bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
	 if (.Guillaume_Score < 1) donpcevent "Flavius_BG1::OnGuillaumeTDWin";
	 end;
	 }
}
end;
OnGuillaumeTDWin:
set $@FlaviusBG1, 2;
set $@FlaviusBG1_Victory, 1;
mapannounce "bat_b01","The Guillaume Army has won the battle of Flavius Team Deathmatch",1,0x0000FF;
stopnpctimer;
sleep 2000;
donpcevent "Flavius_BG1::OnMatchEnd";
end;

OnCroixTDWin:
set $@FlaviusBG1, 2;
set $@FlaviusBG1_Victory, 2;
mapannounce "bat_b01","The Croix Army has won the battle of Flavius Team Deathmatch",1,0xFF0000;
stopnpctimer;
sleep 2000;
donpcevent "Flavius_BG1::OnMatchEnd";
end;

OnTimer900000:
if ($@FlaviusBG1 != 1) end;
mapannounce "bat_b01","Battle of Flavius Team Deathmatch will ends in 5 minutes",1,0x006400;
end;
OnTimer1140000:
if ($@FlaviusBG1 != 1) end;
mapannounce "bat_b01","Battle of Flavius Team Deathmatch will ends in 1 minute",1,0x006400;
end;
OnTimer1200000:
if ($@FlaviusBG1 != 1) end;
if( .Croix_Score > .Guillaume_Score )
{
 mapannounce "bat_b01","The Croix army has won the Battle of Flavius Team Deathmatch!",1,0xFF0000;
 donpcevent "Flavius_BG1::OnCroixTDWin";
}
else if( .Croix_Score < .Guillaume_Score )
{
 mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius Team Deathmatch!",1,0x0000FF;
 donpcevent "Flavius_BG1::OnGuillaumeTDWin";
}
else
{
 mapannounce "bat_b01","The Battle of Flavius Team Deathmatch is over. The time is out, this is a Tie",1,0x006400;
 set $@FlaviusBG1, 2;
 set $@FlaviusBG1_Victory, 3;
 stopnpctimer;
 sleep 2000;
}

OnMatchEnd:
donpcevent "#gfl1_respawn::OnBGStop";
donpcevent "#cfl1_respawn::OnBGStop";
donpcevent "#fltd_regroup::OnBGStop";
disablenpc "Therapist in battle#fl11";
disablenpc "Therapist in battle#fl12";
enablenpc "Guillaume Vintenar#fl1";
enablenpc "Croix Vintenar#fl1";
bg_warp $@FlaviusBG1_id1,"bat_b01",390,10;
bg_warp $@FlaviusBG1_id2,"bat_b01",10,290;
deletearray $@bg_red$;
deletearray $@bg_blue$;
set $@td_a,0;
set $@td_b,0;
sleep 3000;
mapannounce "bat_b01","Battle of Flavius Team Deathmatch will close in 1 minute!",1,0x006400;
initnpctimer;
end;
OnTimer30000:
if( $@FlaviusBG1 == 2 )
 mapannounce "bat_b01","Battle of Flavius Team Deathmatch will close in 30 seconds!",1,0x006400;
end;
OnTimer50000:
if( $@FlaviusBG1 == 2 )
 mapannounce "bat_b01","Battle of Flavius Team Deathmatch will close in 10 seconds!",1,0x006400;
end;
OnTimer60000:
if( $@FlaviusBG1 != 2 ) end;
OnReset:
stopnpctimer;
set .Guillaume_Score, 99;
set .Croix_Score, 99;
set $@FlaviusBG1_Victory, 0;
// NPC's
disablenpc "Guillaume Vintenar#fl1";
disablenpc "Croix Vintenar#fl1";
disablenpc "Therapist in battle#fl11";
disablenpc "Therapist in battle#fl12";
if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; }
if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; }
sleep 1000;
mapwarp "bat_b01","bat_room",155,150;
sleep 2000;
bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
set $@FlaviusBG1, 0;
donpcevent "Flavius_BG1::OnReadyCheck";
end;
}

// View oponentes en el mapa <3
- script viewtd -,{
end;
OnPCLoadMapEvent:
if($@FlaviusBG1 != 1) {end;}
if(Bat_Team == 2) {
getmapxy .@MAPNAME$,.@X,.@Y,0,strcharinfo(0);
while(.@MAPNAME$ == "bat_b01"){
if($@FlaviusBG1 != 1) {end;}
getmapxy .@MAPNAME$,.@X,.@Y,0,strcharinfo(0);
if(.@MAPNAME$ != "bat_b01") { end;}
for(set .@i,0; .@i < getarraysize($@bg_red$); set .@i,.@i+1){
if($@bg_red$[.@i] == strcharinfo(0)) { set .@ontd,1; break;}
}
if(.@ontd != 1) {
setarray $@bg_red$[$@td_a],strcharinfo(0);
set $@td_a,$@td_a+1; }
set .@j,0;
for (set .@i,0; .@i < getarraysize($@bg_blue$); set .@i,.@i+1){
	set .@j,.@j+1;
	getmapxy(.mapES$, .xI, .yI,0,$@bg_blue$[.@i]);
	viewpoint 1,.xI,.yI,.@j,0x0000ff;
} // cierre for
sleep2 1000;
} // cierre while
} else if(Bat_Team == 1) {
getmapxy .@MAPNAME$,.@X,.@Y,0,strcharinfo(0);
while(.@MAPNAME$ == "bat_b01"){
if($@FlaviusBG1 != 1) {end;}
getmapxy .@MAPNAME$,.@X,.@Y,0,strcharinfo(0);
if(.@MAPNAME$ != "bat_b01") { end;}
for(set .@i,0; .@i < getarraysize($@bg_blue$); set .@i,.@i+1){
if($@bg_blue$[.@i] == strcharinfo(0)) { set .@ontd,1; break;}
}
if(.@ontd != 1) {
setarray $@bg_blue$[$@td_b],strcharinfo(0);
set $@td_b,$@td_b+1; }
set .@j,0;
for (set .@i,0; .@i < getarraysize($@bg_red$); set .@i,.@i+1){
	set .@j,.@j+1;
	getmapxy(.mapES$, .xE, .yE,0,$@bg_red$[.@i]);
	viewpoint 1,.xE,.yE,.@j,0xff0000;
} // cierre for
sleep2 1000;
} // cierre while
}
else { end; }
}
// Battleground rewards
// *********************************************************************
bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{
if( $@FlaviusBG1_Victory )
{
 if( $@FlaviusBG1_Victory == Bat_Team )
 { // Victory
  mes "[swandery]";
  mes "Blessed Guillaume!!";
  mes "Let's enjoy our glorious victory!";
  mes "" + strcharinfo(0) + ", its a sign reflecting victory";
  close2;
  set .@Reward,18;
 }
 else
 { // Derrota
  mes "[swandery]";
  mes "You lost, but you're dedicated to this battle.";
  mes "This is a reward for your great dedication by Guillaume Marollo!";
  mes "Just take this defeat a lesson, and later you would definitely learn.";
  close2;
  set .@Reward,6;
 }
 set Flavius_BG_Tick, gettimetick(2) + 300;  //setquest 2070;
 getitem 7829, .@Reward;
 set .@ontd,0;
 bg_leave;
 warp "bat_room",155,150;
 end;
}
end;
}
bat_b01,10,293,5 script Croix Vintenar#fl1 415,{
if( $@FlaviusBG1_Victory )
{
 if( $@FlaviusBG1_Victory == Bat_Team )
 { // Victory
  mes "[swandery]";
  mes "Blessed Croax!!";
  mes "Let's enjoy our glorious victory!";
  mes "" + strcharinfo(0) + ", its a sign reflecting victory";
  close2;
  set .@Reward, 18;
 }
 else
 { // Derrota
  mes "[swandery]";
  mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
  mes "Even though we didn't win, we did our best.";
  mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next.";
  close2;
  set .@Reward, 6;
 }
 set Flavius_BG_Tick, gettimetick(2) + 300; //setquest 2070;
 getitem 7829, .@Reward;
 set .@ontd,0;
 bg_leave;
 warp "bat_room",155,150;
 end;
}
end;
}
// Battleground Therapist
// *********************************************************************
bat_b01,390,13,5 script Therapist in battle#fl12 95,{
mes "[Therapist in battle]";
mes "Just close your eyes, and take a deep breathe.";
mes "You can be free from pain.";
specialeffect2 312;
if (select("Close:Repairman")==1){
  close;
  }
next;
callfunc "repairmain","Repairman";
end;
}
bat_b01,10,293,5 script Therapist in battle#fl11 95,{
mes "[Therapist in battle]";
mes "Just close your eyes, and take a deep breathe.";
mes "You can be free from pain.";
specialeffect2 312;
if (select("Close:Repairman")==1){
  close;
  }
next;
callfunc "repairmain","Repairman";
end;
}
// Battleground Respawn and Regroup
// *********************************************************************
- script #fltd_regroup -1,{
end;
OnBGStart:
initnpctimer;
end;
OnBGStop:
stopnpctimer;
end;
OnTimer150000:
mapannounce "bat_b01","Regroup Team in 30 Seconds...",1,0x006400;
end;
OnTimer175000:
mapannounce "bat_b01","Regroup Team in 5 Seconds...",1,0x006400;
end;
OnTimer180000:
mapannounce "bat_b01","Regroup Team!!",1,0x006400;
bg_warp $@FlaviusBG1_id1,"bat_b01",328,150;
bg_warp $@FlaviusBG1_id2,"bat_b01",62,150;
initnpctimer;
end;
}
bat_b01,390,10,0 script #gfl1_respawn 139,{
end;
OnBGStart:
initnpctimer;
end;
OnBGStop:
stopnpctimer;
end;
OnTimer9000:
misceffect 83;
end;
OnTimer10000:
areapercentheal "bat_b01",382,2,397,17,100,100;
set .@mapx,rand(309,327);
set .@mapy,rand(141,159);
areawarp "bat_b01",382,2,397,17,"bat_b01",.@mapx,.@mapy;
initnpctimer;
end;
}
bat_b01,10,290,0 script #cfl1_respawn 139,{
end;
OnBGStart:
initnpctimer;
end;
OnBGStop:
stopnpctimer;
end;
OnTimer9000:
misceffect 83;
end;
OnTimer10000:
areapercentheal "bat_b01",2,282,17,297,100,100;
set .@mapx,rand(72,91);
set .@mapy,rand(141,159);
areawarp "bat_b01",2,282,17,297,"bat_b01",.@mapx,.@mapy;
initnpctimer;
end;
}
// Flags
// *********************************************************************
bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 973
bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 973
bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 973
bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 973
bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 973
bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 973
bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 973
bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 973
bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 973
bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 973
bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 973
bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 973
bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 973
bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 974
bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 974
bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 974
bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 974
bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 974
bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 974
bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 974
bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 974
bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 974
bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974
bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974
bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974
bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974
// MapFlags
// *********************************************************************
bat_b01 mapflag battleground 2
bat_b01 mapflag nomemo
bat_b01 mapflag nosave SavePoint
bat_b01 mapflag noteleport
bat_b01 mapflag nowarp
bat_b01 mapflag nowarpto
bat_b01 mapflag noreturn
bat_b01 mapflag nobranch
bat_b01 mapflag nopenalty
bat_b01 mapflag loadevent
// ***********************************************************************

I found a script someone uploaded to this forum, and is like this:

*bindatcmd "command","<NPC object name>::<event label>"{,<atcommand level>,<charcommand level>};
*bindatcmd("command","<NPC object name>::<event label>"{,<atcommand level>,<charcommand level>});
This command will bind a NPC event label to an atcommand. Upon execution of
the atcommand, the user will invoke the NPC event label.
Example:
When a user types the command "@test", an angel effect will be shown.
- script atcmd_example -1,{
OnInit:
bindatcmd("test","atcmd_example::OnAtcommand");
end;
OnAtcommand:
specialeffect2 338;
end;
}

Im using eathena not rathena, unfortunately when i started my server I didn't knew of the existence of rathena, my question now is, will it work for eathena, and how it works, i mean how do i modify it to disable @die.

I see that already has the mapflag of battleground, but it doesn't disable @die.

Edited by Emistry
Please use [CODEBOX] or Attachments.
Link to comment
Share on other sites

6 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:  

we dont have a specific mapflag to disable certain command...

but i think you still can use

mapname     mapflag    nocommand

to disable all command in that map...

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  07/24/12
  • Last Seen:  

I added

bat_b01 mapflag nocommand

with the rest of the mapflags in the last part of the script, do i have to do any other modifications?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  155
  • Topics Per Day:  0.03
  • Content Count:  647
  • Reputation:   16
  • Joined:  11/21/11
  • Last Seen:  

did you set @die command for normal players?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  07/24/12
  • Last Seen:  

Yes Rage, @die is enabled, why?

Edited by irvingsp
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:  

I added

bat_b01	mapflag	nocommand

with the rest of the mapflags in the last part of the script, do i have to do any other modifications?

no need other modification....the mapflag above is enough to disable the usage of commands...

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  155
  • Topics Per Day:  0.03
  • Content Count:  647
  • Reputation:   16
  • Joined:  11/21/11
  • Last Seen:  

if you set @die for players.. obviously they will spam it. so i will suggest that you disabled that command for normal players.

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...