How can i make capture zones with timer?
#1

Heey guys,
I want to make capture zones with pickup not with checkpoint.
You need to stay 20 seconds in pickup or in range to capure the zone but i dont know how.
I made the teams with gTeam[playerid].
Pls help me.
Reply
#2

I made this:
Code:
public OnPlayerPickUpPickup(playerid, pickupid)
{
	if(pickupid==areap&& gTeam[playerid]==TEAM_EUROPE && europecapture ==0)
	{
		areatimer=SetTimer("count1",1000,1);
		europetaken=1;
		ShowProgressBarForPlayer(playerid,capture);
	}
	if(pickupid==areap && gTeam[playerid]==TEAM_EUROPE && europecapture ==1)
	{
		SendClientMessage(playerid,red,"Your team already has Area51!");
		HideProgressBarForPlayer(playerid,capture);
	}
	if(pickupid==oldairportp && gTeam[playerid]==TEAM_EUROPE && europecapture ==0)
	{
		oldairporttimer=SetTimer("count2",1000,1);
		europetaken=1;
		ShowProgressBarForPlayer(playerid,capture);
	}
	if(pickupid==oldairportp && gTeam[playerid]==TEAM_EUROPE && europecapture ==1)
	{
		SendClientMessage(playerid,red,"Your team already has Old Airport!");
		HideProgressBarForPlayer(playerid,capture);
	}

	return 1;
}
And the Timers:
Code:
forward count1(playerid);
public count1(playerid)
{
//new string[56];
counter++;
SetProgressBarValue(capture, counter);
SetProgressBarMaxValue(capture, 20);
UpdateProgressBar(capture, playerid);
//format(string, sizeof(string),"~r~Wait %d seconds to capture Area51!!",counter);
//GameTextForAll(string,1000,5);
if(counter==20)
{
	if(europetaken==1)
	{
			GangZoneShowForAll( area, GZ_YELLOW);
   			SetPlayerScore(playerid,GetPlayerScore(playerid)+4);
   			GiveTeamScore(gTeam[playerid]=TEAM_EUROPE, 1);
			SendClientMessage(playerid,COLOR_WHITE,"You received 5 score and 6000 Dollar for capturing Area59!");
			if(playerid)
			{
			SendTeamMessage(COLOR_WHITE, "",TEAM_EUROPE);
			}
			SendTeamMessage(COLOR_WHITE, "You received 1 Score For a Capture!",TEAM_EUROPE);
			GivePlayerMoney(playerid,6000);
			europecapture=1;
   			usacapture=0;
   			//japancapture=0;
   			//russiacapture=0;
   			//afghancapture=0;
			capturedzones[playerid]++;
			HideProgressBarForPlayer(playerid,capture);
			KillTimer(areatimer);
	}
	if(usataken==1)
	{
			GangZoneShowForAll( area, GZ_LIGHTBLUE);
   			SetPlayerScore(playerid,GetPlayerScore(playerid)+4);
            GiveTeamScore(gTeam[playerid]=TEAM_EUROPE, 1);
			europecapture=0;
   			usacapture=1;
   			//japancapture=0;
   			//russiacapture=0;
   			//afghancapture=0;
			capturedzones[playerid]++;
			KillTimer(areatimer);
	}
	if(japantaken==1)
	{
			GangZoneShowForAll( area, GZ_DARKRED);
   			SetPlayerScore(playerid,GetPlayerScore(playerid)+4);
            GiveTeamScore(gTeam[playerid]=TEAM_JAPAN, 1);
			europecapture=0;
   			usacapture=0;
   			//japancapture=1;
   			//russiacapture=0;
   			//afghancapture=0;
			capturedzones[playerid]++;
			KillTimer(areatimer);
	}
	if(russiataken==1)
	{
			GangZoneShowForAll( area, GZ_PINK);
   			SetPlayerScore(playerid,GetPlayerScore(playerid)+4);
            GiveTeamScore(gTeam[playerid]=TEAM_RUSSIA, 1);
			europecapture=0;
   			usacapture=0;
   			//japancapture=0;
   			//russiacapture=1;
   			//afghancapture=0;
			capturedzones[playerid]++;
			KillTimer(areatimer);
	}
	if(afghantaken==1)
	{
			GangZoneShowForAll( area, GZ_WHITE);
   			SetPlayerScore(playerid,GetPlayerScore(playerid)+4);
            GiveTeamScore(gTeam[playerid]=TEAM_AFGHAN, 1);
   			//afghancapture=1;
			europecapture=0;
   			usacapture=0;
   			//japancapture=0;
   			//russiacapture=0;
			capturedzones[playerid]++;
			KillTimer(areatimer);
	}
	counter=20;
	HideProgressBarForPlayer(playerid, capture);
	if(counter>0 && counter<20)
	{
		if(europetaken==1&& !IsPlayerInRangeOfPoint(playerid,2.0,214.7506,1822.6283,6.4141))
		{
		    KillTimer(areatimer);
		    HideProgressBarForPlayer(playerid,capture);
		}
	}
}
The other timer is the same but only the range and the gangzones are dfferent.
Now if i capture one i cant take the other.
Pls can anyone help me making capture zones?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)