Jump to content
  • 0

Battleground ' script_rid2sd: player not attached!


Strand

Question


  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

I have this script for BG but what I want it to do is to add +1 point if Guillaume or Croix win at the end of the match.

 

	// =======================================================
	// Team Rewards
	// =======================================================
	if( .Guillaume_Score > .Croix_Score )
	{
		// Ganó Guillaume
		bg_item($@FlaviusCTF_id1, 1);
		bg_item($@FlaviusCTF_id2, 0);
		doevent "Flavius_CTF::OnGuillaumeWin";

	}
	else if( .Croix_Score > .Guillaume_Score )
	{
		// Ganó Croix
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 1);
		doevent "Flavius_CTF::OnCroixWin";

	}
	else
	{
		// Empate, perdida ambos por default
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 0);
		
	}

	mapannounce "bat_b02","Battle of Flavius CTF will start in 0 seconds!",1,0xA0522D;
	sleep 2000;
	bg_destroy $@FlaviusCTF_id1;
	bg_destroy $@FlaviusCTF_id2;
	set $@FlaviusCTF_id1, 0;
	set $@FlaviusCTF_id2, 0;
	mapwarp "bat_b02","arena_4",148,99;
	sleep 3000;
	initnpctimer;
	end;
	
	
	OnGuillaumeWin:
		query_sql "select rank_points from char_bg where char_id = "+ getcharid(0), .@points;
		query_sql "insert into `char_bg` value ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 , 0 ) on duplicate key update `rank_points` = CASE WHEN rank_points >= 1 THEN points + 1 ELSE 0 END";	
		dispbottom "[Your Lost Battleground Rank -1 Total Pts: .@points]";
		
	OnCroixWin:			
		query_sql "select rank_points from char_bg where char_id = "+ getcharid(4), .@points;
		query_sql "insert into `char_bg` value ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 , 0 ) on duplicate key update `rank_points` = CASE WHEN rank_points >= 1 THEN points + 1 ELSE 0 END";	
		dispbottom "[Your Lost Battleground Rank -1 Total Pts: .@points]";

But an error appears:

image.png.794f5dd4009ff73a1dd608ecaee3852c.png

What am I doing wrong? Can you please help?

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

I updated my post. Do anyone has an idea how to fix it?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

This part is not correct, If im not mistaken.

dispbottom "[Your Lost Battleground Rank -1 Total Pts: .@points]";

it should be:

dispbottom "[Your Lost Battleground Rank -1 Total Pts: " + .@points + "]";

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

Hello @Radian

Thanks for the observation. About the player not attached, do you know how to attach the player? It is a script not a NPC.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

The error says that this part

doevent "Flavius_CTF::OnGuillaumeWin";

or the npc is not active means its missing from your script. or maybe try putting the whole script here.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

Hello @Radian,

I tried something different. I want for the team winner to earn points through "addfame" command, but, when triggering the OnGuillaumeWin event, the system says the player is not attached.

  Is there any way to attach the player? I've tried so many times but I just simply can't...

Here is the full script:

// ==============================================================================
// BattleGround System - Flavius Capture the Flag
// ==============================================================================


// Battleground Flags
// *********************************************************************

bat_b02,328,150,0	script	Guillaume Crystal::Guillaume_Flag	1914,1,1,{
	end;

OnTouch:
	if( $@FlaviusCTF != 1 || HP < 1 )
		end;

	if( getcharid(4) == $@FlaviusCTF_id2 && .Flag_Status < 2 )
	{ // Flag Captured
		set .Flag_Status, 2; // Taken
		set .Flag_Carrier, getcharid(0);

		sc_end SC_HIDING;
		sc_end SC_CLOAKING;
		sc_end SC_CHASEWALK;
		// Renewal invisibility
		sc_end SC_CLOAKINGEXCEED;
		sc_end SC_CAMOUFLAGE;
		sc_end SC__INVISIBILITY;

		pcblock 1,1; // Block Skills/Items

		mapannounce "bat_b02","Guillaume Crystal Taken by [ " + strcharinfo(0) + " ]",1,0xFF0000;
		bg_rankpoints "ctf_taken",1;
		disablenpc "Guillaume_Flag";
		addtimer 2000, "Flavius_CTF::OnBlueFlash";
		stopnpctimer;
	}
	else if( getcharid(4) == $@FlaviusCTF_id1 )
	{
		if( .Flag_Status == 0 && getvariableofnpc(.Flag_Carrier,"Croix_Flag") == getcharid(0) )
		{
			set getvariableofnpc(.Flag_Carrier,"Croix_Flag"),0;
			set .Flag_Carrier, 0;
			mapannounce "bat_b02","Croix Crystal Captured by [ " + strcharinfo(0) + " ]!!",1,0x0000FF;
			bg_rankpoints "ctf_captured",1;
			pcblock 1,0; // UnBlock Skills/Items
			stopnpctimer;
			donpcevent "Flavius_CTF::OnGuillaumeScore";
		}
		else if( .Flag_Status == 1 )
		{
			mapannounce "bat_b02","Guillaume Crystal Returned by [ " + strcharinfo(0) + " ]!!",1,0x0000FF;
			bg_rankpoints "fame",1;
			disablenpc "Guillaume_Flag";
			sleep 2000;
			movenpc "Guillaume_Flag",328,150; // Back to Base
			set .Flag_Status, 0;
			initnpctimer;
			enablenpc "Guillaume_Flag";
		}
	}
	end;

OnTimer2000:
	stopnpctimer;
	if( .Flag_Status < 2 )
	{
		getmapxy .@m$, .@x, .@y, 1;
		viewpointmap "bat_b02",1, .@x, .@y, 1, 0x0000FF;
		specialeffect 223;
		initnpctimer;
	}
	end;

OnBase:
	movenpc "Guillaume_Flag",328,150;
	set .Flag_Status, 0;
	set .Flag_Carrier, 0;
	initnpctimer;
	enablenpc "Guillaume_Flag";
	end;
}

bat_b02,62,150,0	script	Croix Crystal::Croix_Flag	1915,1,1,{
	end;

OnTouch:
	if( $@FlaviusCTF != 1 || HP < 1 )
		end;

	if( getcharid(4) == $@FlaviusCTF_id1 && .Flag_Status < 2 )
	{ // Flag Captured
		set .Flag_Status, 2; // Taken
		set .Flag_Carrier, getcharid(0);

		sc_end SC_HIDING;
		sc_end SC_CLOAKING;
		sc_end SC_CHASEWALK;
		// Renewal invisibility
		sc_end SC_CLOAKINGEXCEED;
		sc_end SC_CAMOUFLAGE;
		sc_end SC__INVISIBILITY;

		pcblock 1,1; // Block Skills/Items

		mapannounce "bat_b02","Croix Crystal Taken by [ " + strcharinfo(0) + " ]",1,0x0000FF;
		bg_rankpoints "ctf_taken",1;
		disablenpc "Croix_Flag";
		addtimer 2000, "Flavius_CTF::OnRedFlash";
		stopnpctimer;
	}
	else if( getcharid(4) == $@FlaviusCTF_id2 )
	{
		if( .Flag_Status == 0 && getvariableofnpc(.Flag_Carrier,"Guillaume_Flag") == getcharid(0) )
		{
			set getvariableofnpc(.Flag_Carrier,"Guillaume_Flag"),0;
			set .Flag_Carrier, 0;
			mapannounce "bat_b02","Guillaume Crystal Captured by [ " + strcharinfo(0) + " ]!!",1,0xFF0000;
			bg_rankpoints "ctf_captured",1;
			pcblock 1,0; // UnBlock Skills/Items
			stopnpctimer;
			donpcevent "Flavius_CTF::OnCroixScore";
		}
		else if( .Flag_Status == 1 )
		{
			mapannounce "bat_b02","Croix Crystal Returned by [ " + strcharinfo(0) + " ]!!",1,0xFF0000;
			bg_rankpoints "fame",1;
			disablenpc "Croix_Flag";
			sleep 2000;
			movenpc "Croix_Flag",62,150; // Back to Base
			set .Flag_Status, 0;
			initnpctimer;
			enablenpc "Croix_Flag";
		}
	}
	end;

OnTimer2000:
	stopnpctimer;
	if( .Flag_Status < 2 )
	{
		getmapxy .@m$, .@x, .@y, 1;
		viewpointmap "bat_b02",1, .@x, .@y, 2, 0xFF0000;
		specialeffect 223;
		initnpctimer;
	}
	end;

OnBase:
	movenpc "Croix_Flag",62,150;
	set .Flag_Status, 0;
	set .Flag_Carrier, 0;
	initnpctimer;
	enablenpc "Croix_Flag";
	end;
}

// Battleground Engine
// *********************************************************************

-	script	Flavius_CTF	-1,{
	end;

OnBlueFlash:
	if( getvariableofnpc(.Flag_Carrier,"Guillaume_Flag") == getcharid(0) && $@FlaviusCTF == 1 )
	{
		getmapxy .@m$, .@x, .@y, 0;
		viewpointmap "bat_b02",1, .@x, .@y, 1, 0x0000FF;
		specialeffect2 73;
		emotion e_hlp,1;
		addtimer 2000, "Flavius_CTF::OnBlueFlash";
		percentheal -5,-5;
	}
	end;

OnRedFlash:
	if( getvariableofnpc(.Flag_Carrier,"Croix_Flag") == getcharid(0) && $@FlaviusCTF == 1 )
	{
		getmapxy .@m$, .@x, .@y, 0;
		viewpointmap "bat_b02",1, .@x, .@y, 2, 0xFF0000;
		specialeffect2 73;
		emotion e_hlp,1;
		addtimer 2000, "Flavius_CTF::OnRedFlash";
		percentheal -5,-5;
	}
	end;

OnInit:
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	end;

OnGuillaumeQuit:
OnCroixQuit:
	callfunc("bgsetwaittime","CTF",180);
	set @killer_bg_src, 0;
	if( $@FlaviusCTF != 0 )
		donpcevent "Flavius_CTF::OnDoBalance";
OnGuillaumeDie:
	if( $@FlaviusCTF == 1 && getvariableofnpc(.Flag_Carrier,"Croix_Flag") == getcharid(0) )
	{ // Drop Flag
		set getvariableofnpc(.Flag_Carrier,"Croix_Flag"), 0;
		pcblock 1,0; // UnBlock Skills/Items
		getmapxy .@m$, .@x, .@y, 0;
		movenpc "Croix_Flag", .@x, .@y;
		mapannounce "bat_b02","Croix Flag Droped by [ " + strcharinfo(0) + " ]",1,0xFF0000;
		bg_rankpoints "ctf_droped",1;
		bg_rankpoints "fame",1,@killer_bg_src;
		set getvariableofnpc(.Flag_Status,"Croix_Flag"), 1; // OnFloor
		initnpctimer "Croix_Flag";
		enablenpc "Croix_Flag";
	}
	end;
	
OnCroixDie:
	if( $@FlaviusCTF == 1 && getvariableofnpc(.Flag_Carrier,"Guillaume_Flag") == getcharid(0) )
	{ // Drop Flag
		set getvariableofnpc(.Flag_Carrier,"Guillaume_Flag"), 0;
		pcblock 1,0; // UnBlock Skills/Items
		getmapxy .@m$, .@x, .@y, 0;
		movenpc "Guillaume_Flag", .@x, .@y;
		mapannounce "bat_b02","Guillaume Flag Droped by [ " + strcharinfo(0) + " ]",1,0x0000FF;
		bg_rankpoints "ctf_droped",1;
		bg_rankpoints "fame",1,@killer_bg_src;
		set getvariableofnpc(.Flag_Status,"Guillaume_Flag"), 1; // OnFloor
		initnpctimer "Guillaume_Flag";
		enablenpc "Guillaume_Flag";
	}
	end;

OnGuillaumeJoin:
OnCroixJoin:
	if( $@FlaviusCTF == 0 )
		donpcevent "Flavius_CTF::OnReadyCheck";
	else
		donpcevent "Flavius_CTF::OnDoBalance";
	end;

OnDoBalance:
	if( $@FlaviusCTF != 1 )
		end;

	set .@Guillaume, bg_get_data($@FlaviusCTF_id1, 0);
	set .@Croix, bg_get_data($@FlaviusCTF_id2, 0);

	if( .@Guillaume < .@Croix )
		waitingroom2bg_single $@FlaviusCTF_id1,"bat_b02",311,224,"BGAZUL";
	else if( .@Guillaume > .@Croix )
		waitingroom2bg_single $@FlaviusCTF_id2,"bat_b02",87,75,"BGROJO";
	else
	{
		set .@GuillaumeR, getwaitingroomstate(0,"BGAZUL");
		set .@CroixR, getwaitingroomstate(0,"BGROJO");

		if( .@GuillaumeR <= .@CroixR )
			set .@Limit, .@GuillaumeR;
		else
			set .@Limit, .@CroixR;

		if( .@Limit + .@Guillaume > 35 )
			set .@Limit, 35 - .@Guillaume;
		if( .@Limit <= 0 ) end;

		for( set .@i, 0; .@i < .@Limit; set .@i, .@i + 1 )
		{
			waitingroom2bg_single $@FlaviusCTF_id1,"bat_b02",311,224,"BGAZUL";
			waitingroom2bg_single $@FlaviusCTF_id2,"bat_b02",87,75,"BGROJO";
		}

		set .@Guillaume, .@Guillaume + .@Limit;
		set .@Croix, .@Croix + .@Limit;
		mapannounce "arena_4","Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/35, C: " + .@Croix + "/35 (Playing)",1,0xA0522D;
	}
	end;

OnReadyCheck:
	if( $@FlaviusCTF || $CURRENTBG != 5 )
		end;
	set .@Guillaume, getwaitingroomstate(0,"BGAZUL");
	set .@Croix, getwaitingroomstate(0,"BGROJO");
	
	if( .@Guillaume < ($MINBGLIMIT - 1) || .@Croix < ($MINBGLIMIT - 1) )
	{
		if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && $@FlaviusCTF_Flood < gettimetick(2) )
		{
			announce "Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/"+($MINBGLIMIT - 1)+", C: " + .@Croix + "/"+($MINBGLIMIT - 1),0,0xA0522D;
			set $@FlaviusCTF_Flood, gettimetick(2) + 15;
		}
		else
			mapannounce "arena_4","Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/"+($MINBGLIMIT - 1)+", C: " + .@Croix + "/"+($MINBGLIMIT - 1),1,0xA0522D;
		end;
	}

	set $@FlaviusCTF, 1;
	initnpctimer;

	donpcevent "BGROJO::OnEnterBG";
	donpcevent "BGAZUL::OnEnterBG";
	// BG Variables
	set .Guillaume_Score, 0;
	set .Croix_Score, 0;
	announce "Battleground -- Flavius CTF [80-99] has started!",0,0xA0522D;
	sleep 2000;
	bg_warp $@FlaviusCTF_id1,"bat_b02",311,224;
	bg_warp $@FlaviusCTF_id2,"bat_b02",87,75;
	sleep 3000;
	// Respawn NPC's
	donpcevent "#guictf_respawn::OnBGStart";
	donpcevent "#croctf_respawn::OnBGStart";
	// Start Match!!
	donpcevent "Flavius_CTF::OnMatchStart";
	end;

OnMatchStart:
	if( $@FlaviusCTF != 1 )
		end;

	// Flags2Base
	donpcevent "Guillaume_Flag::OnBase";
	donpcevent "Croix_Flag::OnBase";
	mapannounce "bat_b02","The Flags have been set to their Bases!!",8;
	end;

OnGuillaumeScore:
	set .Guillaume_Score, .Guillaume_Score + 1;
	donpcevent "Flavius_CTF::OnMatchStop";
	end;

OnCroixScore:
	set .Croix_Score, .Croix_Score + 1;
	donpcevent "Flavius_CTF::OnMatchStop";
	end;

OnMatchStop:
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score;

	viewpointmap "bat_b02",2, 0, 0, 1, 0x0000FF;
	viewpointmap "bat_b02",2, 0, 0, 2, 0xFF0000;
	
	if( .Guillaume_Score > 2 )
	{ // Guillaume Won
		mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius CTF!",1,0x0000FF;
		donpcevent "Flavius_CTF::OnMatchEnd";
	}
	else if( .Croix_Score > 2 )
	{ // Croix Won
		mapannounce "bat_b02","The Croix army has won the Battle of Flavius CTF!",1,0xFF0000;
		donpcevent "Flavius_CTF::OnMatchEnd";
	}
	else
	{ // Keep Playing
		sleep 8000;
		donpcevent "Flavius_CTF::OnMatchStart";
	}
	end;

OnTimer600000:
	mapannounce "bat_b02","The Battle will ends in 5 minutes!!",1,0xA0522D;
	end;

OnTimer840000:
	mapannounce "bat_b02","The Battle will ends in 1 minute!!",1,0xA0522D;
	end;

OnTimer900000:
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";

	viewpointmap "bat_b02",2, 0, 0, 1, 0x0000FF;
	viewpointmap "bat_b02",2, 0, 0, 2, 0xFF0000;

	if( .Guillaume_Score > .Croix_Score )
		mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius CTF!",1,0x0000FF;
	else if( .Guillaume_Score < .Croix_Score )
		mapannounce "bat_b02","The Croix army has won the Battle of Flavius CTF!",1,0xFF0000;
	else
		mapannounce "bat_b02","The battle is over. This is a Tie...!",1,0xA0522D;
	donpcevent "Flavius_CTF::OnMatchEnd";
	end;

OnMatchEnd:
	stopnpctimer;
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	donpcevent "#guictf_respawn::OnBGStop";
	donpcevent "#croctf_respawn::OnBGStop";
	set $@FlaviusCTF, 2; //bg_status
	
	//[Oboro] Rotacion de BG
	ChangeBG();
	
	// =======================================================
	// Team Rewards
	// =======================================================
	if( .Guillaume_Score > .Croix_Score )
	{
		// Ganó Guillaume
		bg_item($@FlaviusCTF_id1, 1);
		bg_item($@FlaviusCTF_id2, 0);
		donpcevent "Flavius_CTF::OnGuillaumeWin";
	}
	else if( .Croix_Score > .Guillaume_Score )
	{
		// Ganó Croix
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 1);
	}
	else
	{
		// Empate, perdida ambos por default
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 0);
	}

	mapannounce "bat_b02","Battle of Flavius CTF will start in 0 seconds!",1,0xA0522D;
	sleep 2000;
	bg_destroy $@FlaviusCTF_id1;
	bg_destroy $@FlaviusCTF_id2;
	set $@FlaviusCTF_id1, 0;
	set $@FlaviusCTF_id2, 0;
	mapwarp "bat_b02","arena_4",148,99;
	sleep 3000;
	initnpctimer;
	end;

OnGuillaumeWin:
atcommand "#addfame "+strcharinfo(0)" 2 100";
// atcommand "@addfame 2 100";
end;

OnTimer10000:
	if( $@FlaviusCTF == 2 )
		mapannounce "bat_b02","Battle of Flavius CTF will start in 5 seconds!",1,0xA0522D;
	end;

OnTimer15000:
	if( $@FlaviusCTF != 2 )
		end;
OnReset:
	stopnpctimer;
	set .Guillaume_Score, 0;
	set .Croix_Score, 0;
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	sleep 1000;
	mapwarp "bat_b02","arena_4",148,99;
	sleep 1000;
	maprespawnguildid "bat_b02",0,3; // Just in case someone else
	bg_updatescore "bat_b02",0,0;
	set $@FlaviusCTF, 0;
	donpcevent "Flavius_CTF::OnReadyCheck";
	end;
}

// Battleground Therapist
// *********************************************************************

bat_b02,390,13,5	script	Therapist in battle#ctf1	95,{
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
OnTouch:
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
}

bat_b02,10,293,5	script	Therapist in battle#ctf2	95,{
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
OnTouch:
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
}

// Battleground Respawn
// *********************************************************************

bat_b02,390,10,0	script	#guictf_respawn	139,{
	end;

OnBGStart:
	initnpctimer;
	end;

OnBGStop:
	stopnpctimer;
	end;

OnTimer24000:
	misceffect 83;
	end;

OnTimer25000:
	areapercentheal "bat_b02",382,2,397,17,100,100;
	areawarp "bat_b02",382,2,397,17,"bat_b02",311,224;
	initnpctimer;
	end;
}

bat_b02,10,290,0	script	#croctf_respawn	139,{
	end;

OnBGStart:
	initnpctimer;
	end;

OnBGStop:
	stopnpctimer;
	end;

OnTimer24000:
	misceffect 83;
	end;

OnTimer25000:
	areapercentheal "bat_b02",2,282,17,297,100,100;
	areawarp "bat_b02",2,282,17,297,"bat_b02",87,75;
	initnpctimer;
	end;
}

// Flags
// *********************************************************************

bat_b02,304,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat23	973
bat_b02,319,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat24	973
bat_b02,304,218,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat25	973
bat_b02,319,218,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat26	973
bat_b02,304,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat27	973
bat_b02,304,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat28	973
bat_b02,335,142,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat29	973
bat_b02,335,157,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat30	973
bat_b02,390,16,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat31	973
bat_b02,292,163,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat32	973
bat_b02,292,136,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat33	973
bat_b02,241,185,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat34	973
bat_b02,247,179,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat35	973

bat_b02,96,81,1	duplicate(Croix camp#bat)	Croix camp#bat22	974
bat_b02,96,68,1	duplicate(Croix camp#bat)	Croix camp#bat23	974
bat_b02,79,81,1	duplicate(Croix camp#bat)	Croix camp#bat24	974
bat_b02,79,68,1	duplicate(Croix camp#bat)	Croix camp#bat25	974
bat_b02,96,81,1	duplicate(Croix camp#bat)	Croix camp#bat26	974
bat_b02,96,81,1	duplicate(Croix camp#bat)	Croix camp#bat27	974
bat_b02,59,164,1	duplicate(Croix camp#bat)	Croix camp#bat28	974
bat_b02,59,137,1	duplicate(Croix camp#bat)	Croix camp#bat29	974
bat_b02,10,296,1	duplicate(Croix camp#bat)	Croix camp#bat30	974
bat_b02,110,162,1	duplicate(Croix camp#bat)	Croix camp#bat31	974
bat_b02,110,137,1	duplicate(Croix camp#bat)	Croix camp#bat32	974
bat_b02,152,120,1	duplicate(Croix camp#bat)	Croix camp#bat33	974
bat_b02,158,114,1	duplicate(Croix camp#bat)	Croix camp#bat34	974

// MapFlags
// *********************************************************************

bat_b02	mapflag	battleground	2
bat_b02	mapflag	nomemo
bat_b02	mapflag	nosave	SavePoint
bat_b02	mapflag	noteleport
bat_b02	mapflag	nowarp
bat_b02	mapflag	nowarpto
bat_b02	mapflag	noreturn
bat_b02	mapflag	nobranch
bat_b02	mapflag	nopenalty
bat_b02	mapflag	noemergencycall

 

Hello community,

Is there anyone that could possibly help me on this?

Thanks a lot in advance.

Link to comment
Share on other sites

  • 0

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

	// =======================================================
	// Team Rewards
	// =======================================================
	if( .Guillaume_Score > .Croix_Score )
	{
		// Ganó Guillaume
		bg_item($@FlaviusCTF_id1, 1);
		bg_item($@FlaviusCTF_id2, 0);
	}
	else if( .Croix_Score > .Guillaume_Score )
	{
		// Ganó Croix
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 1);
	}
	else
	{
		// Empate, perdida ambos por default
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 0);
	}
	donpcevent strnpcinfo(3)+"::OnAddPoint";   // <------ ADD THIS

and add this part

OnAddPoint:
	if( .Guillaume_Score > .Croix_Score )
		.@bg_id = $@FlaviusCTF_id1;
	else if( .Croix_Score > .Guillaume_Score )
		.@bg_id = $@FlaviusCTF_id2;
	
	if (.@bg_id) {
		.@size = bg_get_data(.@bg_id, 1);
		copyarray .@arenamembers, $@arenamembers, .@size;
		for (.@i = 0; .@i < .@size; .@i++) {
			if (attachrid(.@arenamembers[.@i])) {
				atcommand "@addfame 2 100";
				dispbottom "You gained 100 Fame for winning.";
				detachrid;
			}
		}
	}
	end;

 

Edited by Emistry
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

Thanks @Emistry, you are such a monster!

I have another question, how do I do to also recognize the team loser and lose points? atcommand "@addfame 2 -100";

Link to comment
Share on other sites

  • 0

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

6 minutes ago, Strand said:

Thanks @Emistry, you are such a monster!

I have another question, how do I do to also recognize the team loser and lose points? atcommand "@addfame 2 -100";

OnAddPoint:
	if( .Guillaume_Score > .Croix_Score ) {
		.@win_bg_id = $@FlaviusCTF_id1;
		.@lose_bg_id = $@FlaviusCTF_id2;
	}
	else if( .Croix_Score > .Guillaume_Score ) {
		.@win_bg_id = $@FlaviusCTF_id2;
		.@lose_bg_id = $@FlaviusCTF_id1;
	}
	
	if (.@win_bg_id) {
		.@size = bg_get_data(.@win_bg_id, 1);
		copyarray .@arenamembers, $@arenamembers, .@size;
		for (.@i = 0; .@i < .@size; .@i++) {
			if (attachrid(.@arenamembers[.@i])) {
				atcommand "@addfame 2 100";
				dispbottom "You gained 100 Fame for winning.";
				detachrid;
			}
		}
	}
	if (.@lose_bg_id) {
		.@size = bg_get_data(.@lose_bg_id, 1);
		copyarray .@arenamembers, $@arenamembers, .@size;
		for (.@i = 0; .@i < .@size; .@i++) {
			if (attachrid(.@arenamembers[.@i])) {
				atcommand "@addfame 2 -100";
				dispbottom "You lose 100 Fame for losing.";
				detachrid;
			}
		}
	}
	end;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

Thanks @Emistry,

  Apparently, it is considering the same team as the loser. The team who lose does not get their points removed:

image.png.ebf4434b0232a9489609661c0948db22.png

I tried so many different ways as I could but the only one who receives and loses points is just one team. The team loser is not losing points at all.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

@Strand

Maybe try changing

atcommand "@addfame 2 -100";

into this?

charcommand "#addfame 2 -100";

 

Edited by Radian
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

@Radian,

The thing is: Player in team winner is receiving both commands for winner and loser:

image.png.3cae05f7558631f117112671edb4a492.png

And Player in team loser is receiving none:

image.png.bd804738b3aa3ec68f7bb274e4f57de7.png

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

9 minutes ago, Strand said:

@Radian,

The thing is: Player in team winner is receiving both commands for winner and loser:

image.png.3cae05f7558631f117112671edb4a492.png

And Player in team loser is receiving none:

image.png.bd804738b3aa3ec68f7bb274e4f57de7.png

Put end after this

detachrid;
end; // < like this

and then revert the suggestion i made.

Edited by Radian
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

@Radian,

Yes, you are right. Now, the player in the losing team is not losing points. Like if the script is wrong or something.

Link to comment
Share on other sites

  • 0

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

try

OnAddPoint:
	if( .Guillaume_Score > .Croix_Score ) {
		.@win_bg_id = $@FlaviusCTF_id1;
		.@lose_bg_id = $@FlaviusCTF_id2;
	}
	else if( .Croix_Score > .Guillaume_Score ) {
		.@win_bg_id = $@FlaviusCTF_id2;
		.@lose_bg_id = $@FlaviusCTF_id1;
	}
	else end;
	
	.@size1 = bg_get_data(.@win_bg_id, 1);
	copyarray .@arenamembers1, $@arenamembers, .@size1;
	.@size2 = bg_get_data(.@lose_bg_id, 1);
	copyarray .@arenamembers2, $@arenamembers, .@size2;
	
	for (.@i = 0; .@i < .@size1; .@i++) {
		if (attachrid(.@arenamembers1[.@i])) {
			atcommand "@addfame 2 100";
			dispbottom "You gained 100 Fame for winning.";
			detachrid;
		}
	}
	
	for (.@i = 0; .@i < .@size2; .@i++) {
		if (attachrid(.@arenamembers2[.@i])) {
			atcommand "@addfame 2 -100";
			dispbottom "You lose 100 Fame for losing.";
			detachrid;
		}
	}
	end;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

@Emistry,

The player in the team winner is still receiving and losing points. The other player in team loser is not losing anything like if the script is not recognizing him.

image.png.0d8d99ccc598ec5cd3145a08af1e38c4.png

Whole script:

// ==============================================================================
// BattleGround System - Flavius Capture the Flag
// ==============================================================================


// Battleground Flags
// *********************************************************************

bat_b02,328,150,0	script	Guillaume Crystal::Guillaume_Flag	1914,1,1,{
	end;

OnTouch:
	if( $@FlaviusCTF != 1 || HP < 1 )
		end;

	if( getcharid(4) == $@FlaviusCTF_id2 && .Flag_Status < 2 )
	{ // Flag Captured
		set .Flag_Status, 2; // Taken
		set .Flag_Carrier, getcharid(0);

		sc_end SC_HIDING;
		sc_end SC_CLOAKING;
		sc_end SC_CHASEWALK;
		// Renewal invisibility
		sc_end SC_CLOAKINGEXCEED;
		sc_end SC_CAMOUFLAGE;
		sc_end SC__INVISIBILITY;

		pcblock 1,1; // Block Skills/Items

		mapannounce "bat_b02","Guillaume Crystal Taken by [ " + strcharinfo(0) + " ]",1,0xFF0000;
//		bg_rankpoints "ctf_taken",1;
		disablenpc "Guillaume_Flag";
		addtimer 2000, "Flavius_CTF::OnBlueFlash";
		stopnpctimer;
	}
	else if( getcharid(4) == $@FlaviusCTF_id1 )
	{
		if( .Flag_Status == 0 && getvariableofnpc(.Flag_Carrier,"Croix_Flag") == getcharid(0) )
		{
			set getvariableofnpc(.Flag_Carrier,"Croix_Flag"),0;
			set .Flag_Carrier, 0;
			mapannounce "bat_b02","Croix Crystal Captured by [ " + strcharinfo(0) + " ]!!",1,0x0000FF;
//			bg_rankpoints "ctf_captured",1;
			pcblock 1,0; // UnBlock Skills/Items
			stopnpctimer;
			donpcevent "Flavius_CTF::OnGuillaumeScore";
		}
		else if( .Flag_Status == 1 )
		{
			mapannounce "bat_b02","Guillaume Crystal Returned by [ " + strcharinfo(0) + " ]!!",1,0x0000FF;
//			bg_rankpoints "fame",1;
			disablenpc "Guillaume_Flag";
			sleep 2000;
			movenpc "Guillaume_Flag",328,150; // Back to Base
			set .Flag_Status, 0;
			initnpctimer;
			enablenpc "Guillaume_Flag";
		}
	}
	end;

OnTimer2000:
	stopnpctimer;
	if( .Flag_Status < 2 )
	{
		getmapxy .@m$, .@x, .@y, 1;
		viewpointmap "bat_b02",1, .@x, .@y, 1, 0x0000FF;
		specialeffect 223;
		initnpctimer;
	}
	end;

OnBase:
	movenpc "Guillaume_Flag",328,150;
	set .Flag_Status, 0;
	set .Flag_Carrier, 0;
	initnpctimer;
	enablenpc "Guillaume_Flag";
	end;
}

bat_b02,62,150,0	script	Croix Crystal::Croix_Flag	1915,1,1,{
	end;

OnTouch:
	if( $@FlaviusCTF != 1 || HP < 1 )
		end;

	if( getcharid(4) == $@FlaviusCTF_id1 && .Flag_Status < 2 )
	{ // Flag Captured
		set .Flag_Status, 2; // Taken
		set .Flag_Carrier, getcharid(0);

		sc_end SC_HIDING;
		sc_end SC_CLOAKING;
		sc_end SC_CHASEWALK;
		// Renewal invisibility
		sc_end SC_CLOAKINGEXCEED;
		sc_end SC_CAMOUFLAGE;
		sc_end SC__INVISIBILITY;

		pcblock 1,1; // Block Skills/Items

		mapannounce "bat_b02","Croix Crystal Taken by [ " + strcharinfo(0) + " ]",1,0x0000FF;
//		bg_rankpoints "ctf_taken",1;
		disablenpc "Croix_Flag";
		addtimer 2000, "Flavius_CTF::OnRedFlash";
		stopnpctimer;
	}
	else if( getcharid(4) == $@FlaviusCTF_id2 )
	{
		if( .Flag_Status == 0 && getvariableofnpc(.Flag_Carrier,"Guillaume_Flag") == getcharid(0) )
		{
			set getvariableofnpc(.Flag_Carrier,"Guillaume_Flag"),0;
			set .Flag_Carrier, 0;
			mapannounce "bat_b02","Guillaume Crystal Captured by [ " + strcharinfo(0) + " ]!!",1,0xFF0000;
//			bg_rankpoints "ctf_captured",1;
			pcblock 1,0; // UnBlock Skills/Items
			stopnpctimer;
			donpcevent "Flavius_CTF::OnCroixScore";
		}
		else if( .Flag_Status == 1 )
		{
			mapannounce "bat_b02","Croix Crystal Returned by [ " + strcharinfo(0) + " ]!!",1,0xFF0000;
//			bg_rankpoints "fame",1;
			disablenpc "Croix_Flag";
			sleep 2000;
			movenpc "Croix_Flag",62,150; // Back to Base
			set .Flag_Status, 0;
			initnpctimer;
			enablenpc "Croix_Flag";
		}
	}
	end;

OnTimer2000:
	stopnpctimer;
	if( .Flag_Status < 2 )
	{
		getmapxy .@m$, .@x, .@y, 1;
		viewpointmap "bat_b02",1, .@x, .@y, 2, 0xFF0000;
		specialeffect 223;
		initnpctimer;
	}
	end;

OnBase:
	movenpc "Croix_Flag",62,150;
	set .Flag_Status, 0;
	set .Flag_Carrier, 0;
	initnpctimer;
	enablenpc "Croix_Flag";
	end;
}

// Battleground Engine
// *********************************************************************

-	script	Flavius_CTF	-1,{

OnPCLoadMapEvent:
//if (strcharinfo(3) == "pvp_arena2"):
set .@name$, strcharinfo(0);
end;

OnBlueFlash:
	if( getvariableofnpc(.Flag_Carrier,"Guillaume_Flag") == getcharid(0) && $@FlaviusCTF == 1 )
	{
		getmapxy .@m$, .@x, .@y, 0;
		viewpointmap "bat_b02",1, .@x, .@y, 1, 0x0000FF;
		specialeffect2 73;
		emotion e_hlp,1;
		addtimer 2000, "Flavius_CTF::OnBlueFlash";
		percentheal -5,-5;
	}
	end;

OnRedFlash:
	if( getvariableofnpc(.Flag_Carrier,"Croix_Flag") == getcharid(0) && $@FlaviusCTF == 1 )
	{
		getmapxy .@m$, .@x, .@y, 0;
		viewpointmap "bat_b02",1, .@x, .@y, 2, 0xFF0000;
		specialeffect2 73;
		emotion e_hlp,1;
		addtimer 2000, "Flavius_CTF::OnRedFlash";
		percentheal -5,-5;
	}
	end;

OnInit:
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	end;

OnGuillaumeQuit:
OnCroixQuit:
	callfunc("bgsetwaittime","CTF",180);
	set @killer_bg_src, 0;
	if( $@FlaviusCTF != 0 )
		donpcevent "Flavius_CTF::OnDoBalance";
OnGuillaumeDie:
	if( $@FlaviusCTF == 1 && getvariableofnpc(.Flag_Carrier,"Croix_Flag") == getcharid(0) )
	{ // Drop Flag
		set getvariableofnpc(.Flag_Carrier,"Croix_Flag"), 0;
		pcblock 1,0; // UnBlock Skills/Items
		getmapxy .@m$, .@x, .@y, 0;
		movenpc "Croix_Flag", .@x, .@y;
		mapannounce "bat_b02","Croix Flag Droped by [ " + strcharinfo(0) + " ]",1,0xFF0000;
//		bg_rankpoints "ctf_droped",1;
//		bg_rankpoints "fame",1,@killer_bg_src;
		set getvariableofnpc(.Flag_Status,"Croix_Flag"), 1; // OnFloor
		initnpctimer "Croix_Flag";
		enablenpc "Croix_Flag";
	}
	end;
	
OnCroixDie:
	if( $@FlaviusCTF == 1 && getvariableofnpc(.Flag_Carrier,"Guillaume_Flag") == getcharid(0) )
	{ // Drop Flag
		set getvariableofnpc(.Flag_Carrier,"Guillaume_Flag"), 0;
		pcblock 1,0; // UnBlock Skills/Items
		getmapxy .@m$, .@x, .@y, 0;
		movenpc "Guillaume_Flag", .@x, .@y;
		mapannounce "bat_b02","Guillaume Flag Droped by [ " + strcharinfo(0) + " ]",1,0x0000FF;
//		bg_rankpoints "ctf_droped",1;
//		bg_rankpoints "fame",1,@killer_bg_src;
		set getvariableofnpc(.Flag_Status,"Guillaume_Flag"), 1; // OnFloor
		initnpctimer "Guillaume_Flag";
		enablenpc "Guillaume_Flag";
	}
	end;

OnGuillaumeJoin:
OnCroixJoin:
	if( $@FlaviusCTF == 0 )
		donpcevent "Flavius_CTF::OnReadyCheck";
	else
		donpcevent "Flavius_CTF::OnDoBalance";
		
	end;

OnDoBalance:
	if( $@FlaviusCTF != 1 )
		end;
	
	set .@Guillaume, bg_get_data($@FlaviusCTF_id1, 0);
	set .@Croix, bg_get_data($@FlaviusCTF_id2, 0);

	if( .@Guillaume < .@Croix )
		waitingroom2bg_single $@FlaviusCTF_id1,"bat_b02",311,224,"BGAZUL";
	else if( .@Guillaume > .@Croix )
		waitingroom2bg_single $@FlaviusCTF_id2,"bat_b02",87,75,"BGROJO";
	else
	{
		set .@GuillaumeR, getwaitingroomstate(0,"BGAZUL");
		set .@CroixR, getwaitingroomstate(0,"BGROJO");

		if( .@GuillaumeR <= .@CroixR )
			set .@Limit, .@GuillaumeR;
		else
			set .@Limit, .@CroixR;

		if( .@Limit + .@Guillaume > 35 )
			set .@Limit, 35 - .@Guillaume;
		if( .@Limit <= 0 ) end;

		for( set .@i, 0; .@i < .@Limit; set .@i, .@i + 1 )
		{
			waitingroom2bg_single $@FlaviusCTF_id1,"bat_b02",311,224,"BGAZUL";
			waitingroom2bg_single $@FlaviusCTF_id2,"bat_b02",87,75,"BGROJO";
		}

		set .@Guillaume, .@Guillaume + .@Limit;
		set .@Croix, .@Croix + .@Limit;
		mapannounce "arena_4","Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/35, C: " + .@Croix + "/35 (Playing)",1,0xA0522D;
	}
	end;

OnReadyCheck:
	if( $@FlaviusCTF || $CURRENTBG != 5 )
		end;
	set .@Guillaume, getwaitingroomstate(0,"BGAZUL");
	set .@Croix, getwaitingroomstate(0,"BGROJO");
	
	if( .@Guillaume < ($MINBGLIMIT - 1) || .@Croix < ($MINBGLIMIT - 1) )
	{
		if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && $@FlaviusCTF_Flood < gettimetick(2) )
		{
			announce "Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/"+($MINBGLIMIT - 1)+", C: " + .@Croix + "/"+($MINBGLIMIT - 1),0,0xA0522D;
			set $@FlaviusCTF_Flood, gettimetick(2) + 15;
		}
		else
			mapannounce "arena_4","Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/"+($MINBGLIMIT - 1)+", C: " + .@Croix + "/"+($MINBGLIMIT - 1),1,0xA0522D;
		end;
	}

	set $@FlaviusCTF, 1;
	initnpctimer;

	donpcevent "BGROJO::OnEnterBG";
	donpcevent "BGAZUL::OnEnterBG";
	// BG Variables
	set .Guillaume_Score, 0;
	set .Croix_Score, 0;
	announce "Battleground -- Flavius CTF [80-99] has started!",0,0xA0522D;
	sleep 2000;
	bg_warp $@FlaviusCTF_id1,"bat_b02",311,224;
	bg_warp $@FlaviusCTF_id2,"bat_b02",87,75;
	sleep 3000;
	// Respawn NPC's
	donpcevent "#guictf_respawn::OnBGStart";
	donpcevent "#croctf_respawn::OnBGStart";
	// Start Match!!
	donpcevent "Flavius_CTF::OnMatchStart";
	end;

OnMatchStart:
	if( $@FlaviusCTF != 1 )
		end;

	// Flags2Base
	donpcevent "Guillaume_Flag::OnBase";
	donpcevent "Croix_Flag::OnBase";
	mapannounce "bat_b02","The Flags have been set to their Bases!!",8;
	end;

OnGuillaumeScore:
	set .Guillaume_Score, .Guillaume_Score + 1;
	donpcevent "Flavius_CTF::OnMatchStop";
	end;

OnCroixScore:
	set .Croix_Score, .Croix_Score + 1;
	donpcevent "Flavius_CTF::OnMatchStop";
	end;

OnMatchStop:
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score;

	viewpointmap "bat_b02",2, 0, 0, 1, 0x0000FF;
	viewpointmap "bat_b02",2, 0, 0, 2, 0xFF0000;
	
	if( .Guillaume_Score > 2 )
	{ // Guillaume Won
		mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius CTF!",1,0x0000FF;
		donpcevent "Flavius_CTF::OnMatchEnd";
	}
	else if( .Croix_Score > 2 )
	{ // Croix Won
		mapannounce "bat_b02","The Croix army has won the Battle of Flavius CTF!",1,0xFF0000;
		donpcevent "Flavius_CTF::OnMatchEnd";
	}
	else
	{ // Keep Playing
		sleep 8000;
		donpcevent "Flavius_CTF::OnMatchStart";
	}
	end;

OnTimer600000:
	mapannounce "bat_b02","The Battle will ends in 5 minutes!!",1,0xA0522D;
	end;

OnTimer840000:
	mapannounce "bat_b02","The Battle will ends in 1 minute!!",1,0xA0522D;
	end;

OnTimer900000:
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";

	viewpointmap "bat_b02",2, 0, 0, 1, 0x0000FF;
	viewpointmap "bat_b02",2, 0, 0, 2, 0xFF0000;

	if( .Guillaume_Score > .Croix_Score )
		mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius CTF!",1,0x0000FF;
	else if( .Guillaume_Score < .Croix_Score )
		mapannounce "bat_b02","The Croix army has won the Battle of Flavius CTF!",1,0xFF0000;
	else
		mapannounce "bat_b02","The battle is over. This is a Tie...!",1,0xA0522D;
	donpcevent "Flavius_CTF::OnMatchEnd";
	end;

OnMatchEnd:
	stopnpctimer;
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	donpcevent "#guictf_respawn::OnBGStop";
	donpcevent "#croctf_respawn::OnBGStop";
	set $@FlaviusCTF, 2; //bg_status
	
	//[Oboro] Rotacion de BG
//	ChangeBG();
	atcommand "@changebg";
	
	// =======================================================
	// Team Rewards
	// =======================================================
	if( .Guillaume_Score > .Croix_Score )
	{
		// Ganó Guillaume
		bg_item($@FlaviusCTF_id1, 1);
		bg_item($@FlaviusCTF_id2, 0);
		
	}
	else if( .Croix_Score > .Guillaume_Score )
	{
		// Ganó Croix
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 1);


	}
	
	else
	{
		// Empate, perdida ambos por default
		bg_item($@FlaviusCTF_id1, 0);
		bg_item($@FlaviusCTF_id2, 0);
		
	}
	donpcevent strnpcinfo(3)+"::OnAddPoint";
	mapannounce "bat_b02","Battle of Flavius CTF will start in 0 seconds!",1,0xA0522D;
	sleep 2000;
	bg_destroy $@FlaviusCTF_id1;
	bg_destroy $@FlaviusCTF_id2;
	set $@FlaviusCTF_id1, 0;
	set $@FlaviusCTF_id2, 0;
	mapwarp "bat_b02","arena_4",148,99;
	sleep 3000;
	initnpctimer;
	end;
	
OnAddPoint:
	if( .Guillaume_Score > .Croix_Score ) {
		.@win_bg_id = $@FlaviusCTF_id1;
		.@lose_bg_id = $@FlaviusCTF_id2;
	}
	else if( .Croix_Score > .Guillaume_Score ) {
		.@win_bg_id = $@FlaviusCTF_id2;
		.@lose_bg_id = $@FlaviusCTF_id1;
	}
	else end;
	
	.@size1 = bg_get_data(.@win_bg_id, 1);
	copyarray .@arenamembers1, $@arenamembers, .@size1;
	.@size2 = bg_get_data(.@lose_bg_id, 1);
	copyarray .@arenamembers2, $@arenamembers, .@size2;
	
	for (.@i = 0; .@i < .@size1; .@i++) {
		if (attachrid(.@arenamembers1[.@i])) {
			atcommand "@addfame 2 100";
			dispbottom "You gained 100 Fame for winning.";
			detachrid;
		}
	}
	
	for (.@i = 0; .@i < .@size2; .@i++) {
		if (attachrid(.@arenamembers2[.@i])) {
			atcommand "@addfame 2 -100";
			dispbottom "You lose 100 Fame for losing.";
			detachrid;
		}
	}
	end;

OnTimer10000:
	if( $@FlaviusCTF == 2 )
		mapannounce "bat_b02","Battle of Flavius CTF will start in 5 seconds!",1,0xA0522D;
	end;

OnTimer15000:
	if( $@FlaviusCTF != 2 )
		end;
OnReset:
	stopnpctimer;
	set .Guillaume_Score, 0;
	set .Croix_Score, 0;
	disablenpc "Guillaume_Flag";
	disablenpc "Croix_Flag";
	sleep 1000;
	mapwarp "bat_b02","arena_4",148,99;
	sleep 1000;
	maprespawnguildid "bat_b02",0,3; // Just in case someone else
	bg_updatescore "bat_b02",0,0;
	set $@FlaviusCTF, 0;
	donpcevent "Flavius_CTF::OnReadyCheck";
	end;
	
}

// Battleground Therapist
// *********************************************************************

bat_b02,390,13,5	script	Therapist in battle#ctf1	95,{
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
OnTouch:
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
}

bat_b02,10,293,5	script	Therapist in battle#ctf2	95,{
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
OnTouch:
	percentheal 100,100;
	sc_start 32,  250000, 10;  // Increase Agi
	sc_start 30,  250000, 10;  // Blessing
	repairall;
	end;
}

// Battleground Respawn
// *********************************************************************

bat_b02,390,10,0	script	#guictf_respawn	139,{
	end;

OnBGStart:
	initnpctimer;
	end;

OnBGStop:
	stopnpctimer;
	end;

OnTimer24000:
	misceffect 83;
	end;

OnTimer25000:
	areapercentheal "bat_b02",382,2,397,17,100,100;
	areawarp "bat_b02",382,2,397,17,"bat_b02",311,224;
	initnpctimer;
	end;
}

bat_b02,10,290,0	script	#croctf_respawn	139,{
	end;

OnBGStart:
	initnpctimer;
	end;

OnBGStop:
	stopnpctimer;
	end;

OnTimer24000:
	misceffect 83;
	end;

OnTimer25000:
	areapercentheal "bat_b02",2,282,17,297,100,100;
	areawarp "bat_b02",2,282,17,297,"bat_b02",87,75;
	initnpctimer;
	end;
}

// Flags
// *********************************************************************

bat_b02,304,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat23	973
bat_b02,319,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat24	973
bat_b02,304,218,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat25	973
bat_b02,319,218,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat26	973
bat_b02,304,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat27	973
bat_b02,304,231,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat28	973
bat_b02,335,142,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat29	973
bat_b02,335,157,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat30	973
bat_b02,390,16,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat31	973
bat_b02,292,163,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat32	973
bat_b02,292,136,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat33	973
bat_b02,241,185,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat34	973
bat_b02,247,179,1	duplicate(Guillaume camp#bat)	Guillaume camp#bat35	973

bat_b02,96,81,1	duplicate(Croix camp#bat)	Croix camp#bat22	974
bat_b02,96,68,1	duplicate(Croix camp#bat)	Croix camp#bat23	974
bat_b02,79,81,1	duplicate(Croix camp#bat)	Croix camp#bat24	974
bat_b02,79,68,1	duplicate(Croix camp#bat)	Croix camp#bat25	974
bat_b02,96,81,1	duplicate(Croix camp#bat)	Croix camp#bat26	974
bat_b02,96,81,1	duplicate(Croix camp#bat)	Croix camp#bat27	974
bat_b02,59,164,1	duplicate(Croix camp#bat)	Croix camp#bat28	974
bat_b02,59,137,1	duplicate(Croix camp#bat)	Croix camp#bat29	974
bat_b02,10,296,1	duplicate(Croix camp#bat)	Croix camp#bat30	974
bat_b02,110,162,1	duplicate(Croix camp#bat)	Croix camp#bat31	974
bat_b02,110,137,1	duplicate(Croix camp#bat)	Croix camp#bat32	974
bat_b02,152,120,1	duplicate(Croix camp#bat)	Croix camp#bat33	974
bat_b02,158,114,1	duplicate(Croix camp#bat)	Croix camp#bat34	974

// MapFlags
// *********************************************************************

bat_b02	mapflag	battleground	2
bat_b02	mapflag	nomemo
bat_b02	mapflag	nosave	SavePoint
bat_b02	mapflag	noteleport
bat_b02	mapflag	nowarp
bat_b02	mapflag	nowarpto
bat_b02	mapflag	noreturn
bat_b02	mapflag	nobranch
bat_b02	mapflag	nopenalty
bat_b02	mapflag	noemergencycall

 

Edited by Strand
Link to comment
Share on other sites

  • 0

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

try 

OnAddPoint:
	if (.Guillaume_Score > .Croix_Score)
		.@win_bg = $@FlaviusCTF_id1;
	else if (.Croix_Score > .Guillaume_Score)
		.@win_bg = $@FlaviusCTF_id2;
	
	.@bg_id = getcharid(4);
	if (.@win_bg) {
		addrid(5, 1, "bat_b02");
		if (.@bg_id == .@win_bg) {
				atcommand "@addfame 2 -100";
				dispbottom "You lose 100 Fame for losing.";
		}
		else {
			atcommand "@addfame 2 -100";
			dispbottom "You lose -100 Fame for losing.";
		}
	}
	end;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

@Emistry,

  There is an error showing up:

image.png.5e80f2e9e1d3f9c606881b595f389ab8.png

 

Link to comment
Share on other sites

  • 0

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

OnAddPoint:
	if (.Guillaume_Score > .Croix_Score)
		.@win_bg = $@FlaviusCTF_id1;
	else if (.Croix_Score > .Guillaume_Score)
		.@win_bg = $@FlaviusCTF_id2;
	
	if (.@win_bg) {
		addrid(5, 1, "bat_b02");
		if (getcharid(4) == .@win_bg) {
				atcommand "@addfame 2 -100";
				dispbottom "You lose 100 Fame for losing.";
		}
		else {
			atcommand "@addfame 2 -100";
			dispbottom "You lose -100 Fame for losing.";
		}
	}
	end;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

Hello @Emistry,

Now it is working but, the player in the losing team is actually losing points but the player in the winner team is not receiving anything.

Team loser:

image.png.e281f067643ca36f475567bc26ab3f91.png

Team winner:

image.png.515863d4990bfe34fcce8007264c5059.png

Link to comment
Share on other sites

  • 0

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

OnAddPoint:
	$@win_bg = 0;
	if (.Guillaume_Score > .Croix_Score)
		$@win_bg = $@FlaviusCTF_id1;
	else if (.Croix_Score > .Guillaume_Score)
		$@win_bg = $@FlaviusCTF_id2;
	
	if ($@win_bg) {
		addrid(5, 1, "bat_b02");
		if (getcharid(4) == $@win_bg) {
				atcommand "@addfame 2 -100";
				dispbottom "You lose 100 Fame for losing.";
		}
		else {
			atcommand "@addfame 2 -100";
			dispbottom "You lose -100 Fame for losing.";
		}
		$@win_bg = 0;
	}
	end;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

@Emistry,

I know I might be so annoying at this point and I´m sorry, but, I just tested it and the player in the losing team is losing point but the winner is not earning points. Like if the script is not recognizing him.

I really appreciate your help at this point.

Edited by Strand
Link to comment
Share on other sites

  • 0

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

OnAddPoint:
	$@win_bg = 0;
	if (.Guillaume_Score > .Croix_Score)
		$@win_bg = $@FlaviusCTF_id1;
	else if (.Croix_Score > .Guillaume_Score)
		$@win_bg = $@FlaviusCTF_id2;
	
	if ($@win_bg) {
		addrid(5, 1, "bat_b02");
		if (getcharid(4) == $@win_bg) {
				atcommand "@addfame 2 -100";
				dispbottom "You lose 100 Fame for losing.";
		}
		else {
			atcommand "@addfame 2 -100";
			dispbottom "You lose -100 Fame for losing.";
		}
	}
	end;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  39
  • Topics Per Day:  0.01
  • Content Count:  102
  • Reputation:   2
  • Joined:  07/01/13
  • Last Seen:  

@Emistry, Still not working. Just the losing team.  Do you have idea what it could be?

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