[HELP] Cant figure out how to fix tag filterscript :(
#1

Hi there, I'm kinda new to the scene. Basically I've been developing a tag/it plugin for my server. I think I've almost cracked it, had it working at one point but now I'm stuck. ATM the script will spawn playerid 0 as the itter, all other players are not it (team 1 is it and team 2 is not it).

It knows when two players meet by using IsPlayerInRangeOfPoint and will spawn there team and vehicle perfectly, the thing it doesn't do it make the person you've just it, it. I cant work out how to do it so im here asking you guys here's my code:

Код:
#include <a_samp>

new Float:x, Float:y, Float:z, Float:angle;
new Float:itx, Float:ity, Float:itz, Float:itangle;
new Float:px, Float:py, Float:pz;
new SpawnedVehicle[MAX_PLAYERS];
new SpawnedVehicleit[MAX_PLAYERS];
new vehicleidit;
new playercaritter;
new playercardelit;
new playercardelnit;
new justit;

public OnFilterScriptInit()
{
	justit = 0;
	SetTeamCount(2);
   	SetPlayerTeam(0, 1);
   	SetPlayerTeam(1, 2);
   	SetPlayerTeam(2, 2);
   	SetPlayerTeam(3, 2);
   	SetPlayerTeam(4, 2);
   	SetPlayerTeam(5, 2);
	return 1;
}

public OnPlayerUpdate(playerid)
{
    if(GetPlayerTeam(playerid) == 2)
 		{
  			if(IsPlayerInAnyVehicle(playerid)) // it detection
    		{
 	    		new vehicleid = GetPlayerVehicleID(playerid);
        		GetVehiclePos(vehicleid, Float:x, Float:y, Float:z);
        		GetVehiclePos(vehicleidit, Float:itx, Float:ity, Float:itz);
       			if(IsPlayerInRangeOfPoint(playerid,3.5,Float:itx, Float:ity, Float:itz))
           		{
           		    if (justit == 0)
           		    {
           				new name[MAX_PLAYER_NAME], string[23 + MAX_PLAYER_NAME];
   						GetPlayerName(playerid, name, sizeof(name));
   						format(string, sizeof(string), "%s is now it!", name);
   						SendClientMessageToAll(0xFFFF00FF, string);
						SetPlayerTeam(playerid, 1);
						GetPlayerFacingAngle(playerid, Float:itangle);
						playercardelnit = GetPlayerVehicleID(playerid);
						DestroyVehicle(playercardelnit);
						SpawnedVehicleit[playerid] = CreateVehicle(522, Float:itx, Float:ity, Float:itz, Float:itangle, -1, -1, 600);
						SetVehicleVirtualWorld(SpawnedVehicleit[playerid], GetPlayerVirtualWorld(playerid));
						LinkVehicleToInterior(SpawnedVehicleit[playerid], GetPlayerInterior(playerid));
						PutPlayerInVehicle(playerid, SpawnedVehicleit[playerid], 0);
						GameTextForPlayer(playerid, "~r~YOU'RE IT!", 50000, 5);
						playercaritter = GetPlayerVehicleID(playerid);
						GetPlayerPos(playerid, Float:px, Float:py, Float:pz);
						SetVehiclePos(playercaritter, Float:px, Float:py, Float:pz+1000);
						SetTimerEx("JustItWait", 5000, false, "i", playerid);
						SetTimerEx("IterWait", 5000, false, "i", playerid);
						justit = 1;
						return 1;
					}
           		    else if (justit == 1)
           		    {
           		        return 1;
           		    }
				}
			}
			else if(IsPlayerInAnyVehicle(playerid) == 0)
			{
			GetPlayerPos(playerid, Float:x, Float:y, Float:z);
			GetPlayerFacingAngle(playerid, Float:angle);
			DestroyVehicle(SpawnedVehicle[playerid]);
			SpawnedVehicle[playerid] = CreateVehicle(451, Float:x, Float:y, Float:z, Float:angle, -1, -1, 600);
			SetVehicleVirtualWorld(SpawnedVehicle[playerid], GetPlayerVirtualWorld(playerid));
			LinkVehicleToInterior(SpawnedVehicle[playerid], GetPlayerInterior(playerid));
			PutPlayerInVehicle(playerid, SpawnedVehicle[playerid], 0);
			return 1;
			}
 		}
 	if(GetPlayerTeam(playerid) == 1)
 	{
  		if(IsPlayerInAnyVehicle(playerid))  //iter position
    	{
   			vehicleidit = GetPlayerVehicleID(playerid);
      		GetVehiclePos(vehicleidit, Float:itx, Float:ity, Float:itz);
      		if(IsPlayerInRangeOfPoint(playerid,3.5,Float:x, Float:y, Float:z))
      		{
      		    if (justit == 0)
				{
      				GameTextForPlayer(playerid, "~w~YOU'RE NO LONGER IT!", 50000, 5);
      				SetPlayerTeam(playerid, 2);
      				GetPlayerPos(playerid, Float:x, Float:y, Float:z);
					GetPlayerFacingAngle(playerid, Float:angle);
					playercardelit = GetPlayerVehicleID(playerid);
					DestroyVehicle(playercardelit);
					SpawnedVehicle[playerid] = CreateVehicle(451, Float:x, Float:y, Float:z, Float:angle, -1, -1, 600);
					SetVehicleVirtualWorld(SpawnedVehicle[playerid], GetPlayerVirtualWorld(playerid));
					LinkVehicleToInterior(SpawnedVehicle[playerid], GetPlayerInterior(playerid));
					PutPlayerInVehicle(playerid, SpawnedVehicle[playerid], 0);
					SetTimerEx("JustItWait", 5000, false, "i", playerid);
					justit = 1;
					return 1;
				}
      		    else if (justit == 1)
      		    {
      		        return 1;
				}
			}
	   	}
	   	else if(IsPlayerInAnyVehicle(playerid) == 0)
 	   	{
   			GetPlayerPos(playerid, Float:itx, Float:ity, Float:itz);
			GetPlayerFacingAngle(playerid, Float:itangle);
			DestroyVehicle(SpawnedVehicleit[playerid]);
			SpawnedVehicleit[playerid] = CreateVehicle(522, Float:itx, Float:ity, Float:itz, Float:itangle, -1, -1, 600);
			SetVehicleVirtualWorld(SpawnedVehicleit[playerid], GetPlayerVirtualWorld(playerid));
			LinkVehicleToInterior(SpawnedVehicleit[playerid], GetPlayerInterior(playerid));
			PutPlayerInVehicle(playerid, SpawnedVehicleit[playerid], 0);
			return 1;
   		}
	}
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_NO)
	{
		RepairVehicle(GetPlayerVehicleID(playerid));
    	new vehicleid = GetPlayerVehicleID(playerid);
    	SetVehicleHealth(vehicleid, 1000.0);
    	AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
	}
    if(GetPlayerTeam(playerid) == 2)
    {
		if(newkeys & KEY_FIRE)
    	{
	    	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
     		{
				new vehicleidboost = GetPlayerVehicleID(playerid);
          		GetVehiclePos(vehicleidboost, Float:x, Float:y, Float:z);
	        	GetVehiclePos(vehicleidit, Float:itx, Float:ity, Float:itz);
	       		if(IsPlayerInRangeOfPoint(playerid,400.0,Float:itx, Float:ity, Float:itz))
	       		{
	       		    return 1;
	       		}
	       		else
	       		{
	            	new Float:angleboost;
	            	GetVehicleZAngle(vehicleidboost, angleboost);
	            	
		            new Float:velox, Float:veloy, Float:veloz;
	    	        GetVehicleVelocity(vehicleidboost, velox, veloy, veloz);

    	        	velox += floatsin(-angleboost, degrees);
        	    	veloy += floatcos(-angleboost, degrees);
            		SetVehicleVelocity(vehicleidboost, velox, veloy, veloz);
            		return 1;
				}
			}
		}
	}
	if(GetPlayerTeam(playerid) == 1)
	{
		if(newkeys & KEY_FIRE)
	   	{
	    	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	   		{
				new vehicleidboost = GetPlayerVehicleID(playerid);
	        	GetVehiclePos(vehicleidit, Float:itx, Float:ity, Float:itz);
	       		if(IsPlayerInRangeOfPoint(playerid,400.0,Float:x, Float:y, Float:z))
	       		{
	       		    return 1;
	       		}
	       		else
	       		{
		           	new Float:angleboost;
	            	GetVehicleZAngle(vehicleidboost, angleboost);

		            new Float:velox, Float:veloy, Float:veloz;
	    	        GetVehicleVelocity(vehicleidboost, velox, veloy, veloz);

    	        	velox += floatsin(-angleboost, degrees);
        	    	veloy += floatcos(-angleboost, degrees);
            		SetVehicleVelocity(vehicleidboost, velox, veloy, veloz);
            		return 1;
				}
			}
		}
	}
	return 1;
}
forward IterWait(playerid);
forward JustItWait(playerid);

public JustItWait(playerid)
{
	justit = 0;
	return 1;
}

public IterWait(playerid)
{
	SetVehiclePos(playercaritter, Float:px, Float:py, Float:pz);
	return 1;
}
If anyone can see a better way of doing this please share
cheers.

EDIT: I've still got lots more to sort out and put in so don't judge all I'm asking of you is to help me change the new itters team if you get what I mean.
Reply
#2

Not even a little help?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)