[Ajuda] Ajuda com Veiculos
#1

Boa tarde, eu criei um sistema para quando o player entrar em um carro e ele nгo for de determinada profissгo, ele й removido, criei de 2 profissхes e deu certo, quando criei a terceira nгo deu. Alguйm me ajuda aew.

Codigos:

PHP код:
new CarroJornal[14];
forward IsJornalCar(playerid); 
PHP код:
CarroJornal[0] = CreateVehicle(5101673.2, -1720.720.20.09510400); // vehicle (Mountain Bike) (1)
    
CarroJornal[1] = CreateVehicle(5101670.9, -1720.820.20.09510400); // vehicle (Mountain Bike) (2)
    
CarroJornal[2] = CreateVehicle(5101668.6, -1720.920.20.09510400); // vehicle (Mountain Bike) (3)
    
CarroJornal[3] = CreateVehicle(5101666.3, -1721.020.20.09510400); // vehicle (Mountain Bike) (4)
    
CarroJornal[4] = CreateVehicle(5101663.9, -1721.120.20.09510400); // vehicle (Mountain Bike) (5)
    
CarroJornal[5] = CreateVehicle(5101661.9, -1721.220.20.09510400); // vehicle (Mountain Bike) (6)
    
CarroJornal[6] = CreateVehicle(5101659.5, -1721.320.20.09510400); // vehicle (Mountain Bike) (7)
    
CarroJornal[7] = CreateVehicle(5101657.1, -1721.420.20.09510400); // vehicle (Mountain Bike) (8)
    
CarroJornal[8] = CreateVehicle(5101654.9, -1721.420.20.09510400); // vehicle (Mountain Bike) (9)
    
CarroJornal[9] = CreateVehicle(5101652.8, -1721.420.20.09510400); // vehicle (Mountain Bike) (10)
    
CarroJornal[10] = CreateVehicle(5101650.7, -1721.520.20.09510400); // vehicle (Mountain Bike) (11)
    
CarroJornal[11] = CreateVehicle(5101648.4, -1721.520.20.09510400); // vehicle (Mountain Bike) (12)
    
CarroJornal[12] = CreateVehicle(5101646.1, -1721.620.20.09510400); // vehicle (Mountain Bike) (13)
    
CarroJornal[13] = CreateVehicle(5101644.1, -1721.520.20.09510400); // vehicle (Mountain Bike) (14) 
PHP код:
public IsJornalCar(playerid)
{
    for(new 
0<= 14c++)
    {
        if(
IsPlayerInVehicle(playeridCarroJornal[c]) && Player[playerid][pProf] != 2)
        {
            
SendClientMessage(playeridCorErro"|ERRO| Esse veiculo й exclusivo dos Entregadores de Jornal!");
            
RemovePlayerFromVehicle(playerid);
            return 
1;
        }
    }
    return 
1;

PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == PLAYER_STATE_DRIVERIsJornalCar(playerid);
    return 
1;

Reply
#2

Quote:
Originally Posted by y1
Посмотреть сообщение
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    for(new c = 0; c <= 14; c++)
    {
        if(IsPlayerInVehicle(playerid, CarroJornal[c]) && Player[playerid][pProf] != 2)
        {
            SendClientMessage(playerid, CorErro, "|ERRO| Esse veiculo й exclusivo dos Entregadores de Jornal!");
            RemovePlayerFromVehicle(playerid);
            return 1;
        }
    }
    return false;
}
Como eu disse, os outros funcionaram dessa maneira que eu postei, queria saber o que hб de errado com o meu Codigo, nгo quero um outro codigo pronto.
Reply
#3

Quote:
Originally Posted by y1
Посмотреть сообщение
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    for(new c = 0; c <= 14; c++)
    {
        if(IsPlayerInVehicle(playerid, CarroJornal[c]) && Player[playerid][pProf] != 2)
        {
            SendClientMessage(playerid, CorErro, "|ERRO| Esse veiculo й exclusivo dos Entregadores de Jornal!");
            RemovePlayerFromVehicle(playerid);
            return 1;
        }
    }
    return false;
}
eu vi o seu @edit.
caso queira transformar sua callback em um funзгo, remova a 'public' que no caso ficaria

Код:
IsJornalCar(playerid) {
    for(new c = 0; c <= 14; c++)
    {
        if(IsPlayerInVehicle(playerid, CarroJornal[c]) && Player[playerid][pProf] != 2)
        {
            SendClientMessage(playerid, CorErro, "|ERRO| Esse veiculo й exclusivo dos Entregadores de Jornal!");
            RemovePlayerFromVehicle(playerid);
        }
    }
    return true;
}
Nгo funcionou....
Reply
#4

Quote:
Originally Posted by y1
Посмотреть сообщение
qual й o erro?
Nгo tem erro. Quando eu entro no veiculo mesmo nгo sendo da Profissгo ID 2 eu consigo usar o carro.
Reply
#5

PHP код:
for(new 0<= 14c++) 
Toma cuidado ai pois se esse loop chegar a 14 ele vai tentar acessar a pos 15 do vetor CarroJornal[], isso vai ocasionar em um erro em tempo de execuзгo. o certo a se fazer й:
PHP код:
for(new 0sizeof(CarroJornal[]); c++) 
Sobre o bug, vocк tem certeza que a Player[playerid][pProf] do player esta diferente de 2, faзa um printf("profissao: %d",Player[playerid][pProf]) em IsJornalCar(playerid) й Ver se a profissгo do player й realmente diferente de 2.

OBS: Para chamar callbacks pode usar "CallLocalFunction", settimer e eu acho que pelo nome tambem funciona.

nesses casos e bom so fazer
PHP код:
IsJornalCar(playerid)
{
...

e chama pelo nome mesmo.
Reply
#6

Acho que ta errado e o sinal != tenta mudar pra ==

PHP код:
if(Player[playerid][pProf] == && IsPlayerInAnyVehicle(playeridCarroJornal[c]))
{
    
// ...
}
else
{
    
ClearAnimations(playerid);

Se não quiser usar ClearAnimations use RemoveVehicle mesmo! Teste e veja a diferença
Reply
#7

Quote:
Originally Posted by AutoMatic2
Посмотреть сообщение
Acho que ta errado e o sinal != tenta mudar pra ==

PHP код:
if(Player[playerid][pProf] == && IsPlayerInAnyVehicle(playeridCarroJornal[c]))
{
    
// ...
}
else
{
    
ClearAnimations(playerid);

Se nгo quiser usar ClearAnimations use RemoveVehicle mesmo! Teste e veja a diferenзa
Se eu colocar "==" vai comparar e nгo diferenciar
Reply
#8

IsPlayerInAnyVehicle й para verificar se ele estб em qualquer veнculo. Nгo hб parametros para verificar o id do veнculo. O correto seria GetPlayerVehicleID(playerid, CarroJornal[c]))
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)