Variбvel nгo estб dando efeito -
lokos45 - 02.09.2013
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:
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.
Re: Variбvel nгo estб dando efeito -
luckvice - 02.09.2013
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
Re: Variбvel nгo estб dando efeito -
Juniiro3 - 02.09.2013
PHP код:
//Topo do GM
new Apreendido [ MAX_VEHICLES ] ;
//OnPlayerEnterVehicle
if ( Apreendido [ vehicleid ] ) {
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!");
}
Re: Variбvel nгo estб dando efeito -
DannielCooper - 02.09.2013
Poderia ser usando
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.
Re: Variбvel nгo estб dando efeito -
lokos45 - 02.09.2013
Entгo eu boto
vehicleid = GetPlayerVehicleID(playerid);
E no comando de apreender:
apreendido = true
Comando liberar
apreendido = false
Assim?
Re: Variбvel nгo estб dando efeito -
Juniiro3 - 02.09.2013
Nгo, nesse caso seria:
Apreendido [ vehicleid ] = 1 ;
Apreendido [ vehicleid ] = 0 ;
Re: Variбvel nгo estб dando efeito -
lokos45 - 02.09.2013
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?
Re: Variбvel nгo estб dando efeito -
Juniiro3 - 02.09.2013
Linhas ?
Re: Variбvel nгo estб dando efeito -
lokos45 - 02.09.2013
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;
}
Re: Variбvel nгo estб dando efeito -
lokos45 - 02.09.2013
Quote:
Originally Posted by Juniiro3
Linhas ?
|
6671 - if(apreendido[vehicleid] = 1)
26996 - if(apreendido[vehicleid] = 1)
27029 - if(apreendido[vehicleid] = 0)