[Ajuda] Variбvel nгo estб dando efeito
#1

Olб pessoal, estou com um problema que й o seguinte:
Ao criar os comandos /apreender e /liberarveiculo para a org D.E.T.R.A.N, tentei criar uma variбvel no topo do GM com nome de apreendido, porйm essa variбvel nгo estб causando nenhum efeito nos comandos, poderiam me ajudar por favor?
Cуdigo:

Topo do GM:
Код:
new apreendido;
Callback OnPlayerStateChange:

Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
        if(apreendido == 1)
	{
		RemovePlayerFromVehicle(playerid);
 		SendClientMessage(playerid, COR_DETRAN, "Este veнculo foi apreendido pelo D.E.T.R.A.N, portanto vocк nгo pode dirigi-lo!");
	}
}
Comandos:

Код:
if(strcmp(cmd, "/apreender", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
		new carid = GetPlayerVehicleID(playerid);
		if(IsAnOwnableCar(carid) && CarInfo[carid][cOwned] == 1)
		{
		new vehicleid = GetPlayerVehicleID(playerid);
		if(IsPlayerInVehicle(playerid, vehicleid))
 		{
 		        new newcar = GetPlayerVehicleID(playerid);
			new Float:x,Float:y,Float:z;
			new Float:a;
			GetPlayerName(playerid, playername, sizeof(playername));
			GetVehiclePos(carid, x, y, z);
			GetVehicleZAngle(carid, a);
                        if(OnDuty[playerid] != 1)
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo Bateu o cartгo!");
			    return true;
			}
			if(apreendido == 1)
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Este Carro ja foi apreendido!");
			    return true;
			}
   			if(GetPlayerOrg(playerid) == 25)
			{
					CarInfo[carid][cLocationx] = x;
					CarInfo[carid][cLocationy] = y;
					CarInfo[carid][cLocationz] = z;
					CarInfo[carid][cAngle] = a;
					format(string, sizeof(string), "~n~ Voce estacionou o veiculo nesta posicao. ~n~");
					GameTextForPlayer(playerid, "Voce apreendeu o veiculo nesta posicao. Ele ira respawnar aqui.", 10000, 3);
					format(string, sizeof(string), "O Funcionбrio do D.E.T.R.A.N %s Apreendeu o veнculo de %s .", PlayerName(playerid), CarInfo[newcar][cOwner]);
					OOCNews(COR_DETRAN,string);
					apreendido == 1;
					OnPropUpdate(); SavePlayerData(playerid);
	    			        DestroyVehicle(carid);
	    			        new thiscar = CreateVehicle(CarInfo[carid][cModel],CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid][cColorOne],CarInfo[carid][cColorTwo],60000);
	    			        LoadComponents(thiscar);
     				        return 1;
					}
				}
			}
		}
		return 1;
	}

	if(strcmp(cmd, "/liberarveiculo", true) == 0)
	{
	    if(GetPlayerOrg(playerid) == 25)
	    {
	        if(apreendido == 0)
	        {
	    	    SendClientMessage(playerid, COLOR_GREY, "   Este veнculo Nгo estб apreendido!");
		    return true;
		}
	        new newcar = GetPlayerVehicleID(playerid);
		format(string, sizeof(string), "O Funcionбrio do D.E.T.R.A.N %s Liberou o veнculo de %s .", PlayerName(playerid), CarInfo[newcar][cOwner]);
		OOCNews(COR_DETRAN,string);
		apreendido == 0;
		}
		return 1;
	}
marquei de vermelho a variбvel para vocкs verem.
Me ajudem por favor.
Reply
#2

vc deve inicializar esta variavel pois ela nao vale nem 0 nem 1 й null

new apreendido = 0;

outra coisa

format(string, sizeof(string), "O Funcionбrio do D.E.T.R.A.N %s Liberou o veнculo de %s .", PlayerName(playerid), CarInfo[newcar][cOwner]);
OOCNews(COR_DETRAN,string);
apreendido == 0;


se vc quer que a variavel fique valendo 0 ou 1 para passar o valor vc deve usar assim

apreendido = 0
apreendido = 1

== й comparaзгo de valores
Reply
#3

PHP код:
//Topo do GM
new Apreendido MAX_VEHICLES ] ;


//OnPlayerEnterVehicle
if ( Apreendido vehicleid ] ) {

    
RemovePlayerFromVehicle(playerid);
    
SendClientMessage(playeridCOR_DETRAN"Este veнculo foi apreendido pelo D.E.T.R.A.N, portanto vocк nгo pode dirigi-lo!");


Reply
#4

Poderia ser usando
pawn Код:
new apreendido = 0;
e no seu code comparando o valor a 1. Mais vocк nгo definiu que ela estava em false, e depois foi chamada para true sem definiзхes. Mais a opзгo que o Juniiro3 foi melhor, vai ser mais bem organizado.
Reply
#5

Entгo eu boto
vehicleid = GetPlayerVehicleID(playerid);

E no comando de apreender:
apreendido = true

Comando liberar
apreendido = false

Assim?
Reply
#6

Nгo, nesse caso seria:

Apreendido [ vehicleid ] = 1 ;
Apreendido [ vehicleid ] = 0 ;
Reply
#7

Deu essas warnings:
Код:
C:\DOCUME~1\Conta\Desktop\EDITAD~1\GAMEMO~1\ILSB.pwn(26998) : warning 211: possibly unintended assignment
C:\DOCUME~1\Conta\Desktop\EDITAD~1\GAMEMO~1\ILSB.pwn(27031) : warning 211: possibly unintended assignment
C:\DOCUME~1\Conta\Desktop\EDITAD~1\GAMEMO~1\ILSB.pwn(26998) : warning 211: possibly unintended assignment
Tem algum problema?
Reply
#8

Linhas ?
Reply
#9

nгo funcionou, olha como ficou:

Код:
new apreendido[MAX_VEHICLES];
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	if(apreendido[vehicleid] = 1)
	{
	RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COR_DETRAN, "Este veнculo foi apreendido pelo D.E.T.R.A.N, portanto vocк nгo pode dirigi-lo!");
     }
}
Код:
if(strcmp(cmd, "/apreender", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
		new carid = GetPlayerVehicleID(playerid);
		if(IsAnOwnableCar(carid) && CarInfo[carid][cOwned] == 1)
		{
		new vehicleid = GetPlayerVehicleID(playerid);
		if(IsPlayerInVehicle(playerid, vehicleid))
 		{
 		    new newcar = GetPlayerVehicleID(playerid);
			new Float:x,Float:y,Float:z;
			new Float:a;
			GetPlayerName(playerid, playername, sizeof(playername));
			GetVehiclePos(carid, x, y, z);
			GetVehicleZAngle(carid, a);
            if(OnDuty[playerid] != 1)
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo Bateu o cartгo!");
			    return true;
			}
			if(apreendido[vehicleid] = 1)
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Este Carro ja foi apreendido!");
			    return true;
			}
   			if(GetPlayerOrg(playerid) == 25)
			{
					CarInfo[carid][cLocationx] = x;
					CarInfo[carid][cLocationy] = y;
					CarInfo[carid][cLocationz] = z;
					CarInfo[carid][cAngle] = a;
					format(string, sizeof(string), "~n~ Voce estacionou o veiculo nesta posicao. ~n~");
					GameTextForPlayer(playerid, "Voce apreendeu o veiculo nesta posicao. Ele ira respawnar aqui.", 10000, 3);
					format(string, sizeof(string), "O Funcionбrio do D.E.T.R.A.N %s Apreendeu o veнculo de %s .", PlayerName(playerid), CarInfo[newcar][cOwner]);
					OOCNews(COR_DETRAN,string);
					apreendido[vehicleid] = 1;
					OnPropUpdate(); SavePlayerData(playerid);
	    			DestroyVehicle(carid);
	    			new thiscar = CreateVehicle(CarInfo[carid][cModel],CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid][cColorOne],CarInfo[carid][cColorTwo],60000);
	    			LoadComponents(thiscar);
     				return 1;
					}
				}
			}
		}
		return 1;
	}

	if(strcmp(cmd, "/liberarveiculo", true) == 0)
	{
	    if(GetPlayerOrg(playerid) == 25)
	    {
	    new vehicleid = GetPlayerVehicleID(playerid);
	    if(apreendido[vehicleid] = 0)
	    {
	    	SendClientMessage(playerid, COLOR_GREY, "   Este veнculo Nгo estб apreendido!");
		    return true;
		}
	    new newcar = GetPlayerVehicleID(playerid);
		format(string, sizeof(string), "O Funcionбrio do D.E.T.R.A.N %s Liberou o veнculo de %s .", PlayerName(playerid), CarInfo[newcar][cOwner]);
		OOCNews(COR_DETRAN,string);
		apreendido[vehicleid] = 0;
		}
		return 1;
	}
Reply
#10

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
Linhas ?
6671 - if(apreendido[vehicleid] = 1)
26996 - if(apreendido[vehicleid] = 1)
27029 - if(apreendido[vehicleid] = 0)
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)