[AJUDA] OnPlayerStateChange nгo funciona em helicoptero?
#1

Pessoal, estou usando OnPlayerStateChange, para proibir tal player pegar tal veнculo, funcionou legal em carros, mas quando eu faзo o sistema para um helicoptero/aviхes, nгo funciona!

Estou usando essa funзгo:
pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
{
    if(CX == Heli[0] || CX == Heli[1] || CX == Heli[2]) // Variбvel que pega o veнculo em OnGame...
    {
    if(dini_Int(arquivo, "Variavel") == Variavel2) // Se nгo for tal coisa, ele nгo vai poder pilotar
    {
    }
    else
    {
    SendClientMessage(playerid, XX, "| ERRO | Vocк nгo pode pilotar esse veнculo.");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
Serб que alguйm poderia tirar essa dъvida? Agradeзo desde jб.
OBS: Quando eu entro no helicoptero, nгo acontece nada.
Reply
#2

The Knight, obrigado, mas ainda nгo funciona! :\
Alguйm poderia me ajudar?
Reply
#3

@ OFF

Ai The Knight como vc faz pra fazer as letras coloridas dentro de [pawn][/pawn*]
Reply
#4

@TOPIC

The Knight se vocк criou a variбvel kVeiculo por que colocou Veiculo lб ? :B

@OFF

nгo й [ pawn ] й [ php ]
Reply
#5

The knight, um exemplo:
pawn Код:
if(dini_Int(arquivo, "Gangue") == Macumbeiros_rairia)
{
Se o player nгo for da gangue Macumbeiros, ele nгo pode dirigir o veнculo e й ejetado, entendeu? xD
Reply
#6

Ainda nгo estб funcionando! (Ta difнcil de arrumar isso, funciona com carros, mas com helicopteros nгo!) #TENSO
Alguйm ai poderia me ajudar? :\
Reply
#7

Quote:
Originally Posted by ASDF
Посмотреть сообщение
Ainda nгo estб funcionando! (Ta difнcil de arrumar isso, funciona com carros, mas com helicopteros nгo!) #TENSO
Alguйm ai poderia me ajudar? :\
Aparentemente, o problema estб na variбvel Heli[x] (sendo 0 <= x < sizeof(Heli)) .



Bem, mas como vocк citou o termo "helicуpteros" junto com o termo "carros", entгo o primeiro foi utilizado de forma genйrica, ou seja, vale utilizar o seguinte cуdigo (crйditos б Calg00ne pelo mesmo) :



pawn Код:
//Coloque no Final do GM:

stock IsAHelicopter(vehicleid)
{
    new model = GetVehicleModel(vehicleid);
    if(model == 548 || model == 525 || model == 417 || model == 487 || model == 488 || model == 497 || model == 563 || model == 447 || model == 469)
    {
        return 1;
    }
    return 0;
}


E, por fim, aqui estб o seu cуdigo, agora, arrumado :



pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
    {
        if(IsAHelicopter(GetPlayerVehicleID(playerid))) // Variбvel que pega o veнculo em OnGame...
        {
            if(dini_Int(arquivo, "Variavel") != Variavel2) // Se nгo for tal coisa, ele nгo vai poder pilotar
            {
                SendClientMessage(playerid, XX, "| ERRO | Vocк nгo pode pilotar esse veнculo.");
                RemovePlayerFromVehicle(playerid);
            }
            else
            {
                SendClientMessage(playerid, XX, "| ERRO | Vocк nгo й do grupo que pode usar este veнculo.");
            }
        }
        else
        {
            SendClientMessage(playerid, XX, "| ERRO | Vocк nгo estб em um helicуptero.");
        }
    }


Qualquer problema, basta explicar o cуdigo com detalhes (se as variбveis sгo globais, o que cada sнmbolo significa, entre outros).




Espero ter ajudado .
Reply
#8

Mas na onde eu vou usar a variбvel do OnGame nesse cуdigo ai? Pq nesse cуdigo que vocк postou, se o player pegar qualquer helicoptero, vai dar a mensagem pra ele, e eu quero que sу dк a mensagem em 3 helicopteros que criei...

Explicando como fiz:

pawn Код:
// Topo
new Heli[3];

// OnGameModeInit
Heli[0] = AddStaticVehicle(...
Heli[1] = AddStaticVehicle(...
Heli[2] = AddStaticVehicle(...

if(newstate == PLAYER_STATE_DRIVER)
{
    new CX = GetPlayerVehicleID(playerid); // Como vocкs nгo deveriam saber oq era CX, acabei de adicionar.
    if(CX == Heli[0] || CX == Heli[1] || CX == Heli[2]) // Variбvel que pega o veнculo em OnGame...
    {
    if(dini_Int(arquivo, "Variavel") == Variavel2) // Se nгo for tal coisa, ele nгo vai poder pilotar
    {
    }
    else
    {
    SendClientMessage(playerid, XX, "| ERRO | Vocк nгo pode pilotar esse veнculo.");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
O problema й: Eu uso esse mesmo cуdigo em tal veнculo, e funciona normalmente, sу que, adicionei o cуdigo para funcionar em helicoptero, eu entro nele, e nгo acontece nada!
Reply
#9

Agora todo o cуdigo jб estб esclarecido ! .


E, acho que jб entendi o que estб acontecendo, use este cуdigo :


pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
    {
        new CX = GetPlayerVehicleID(playerid);
        if(CX == Heli[0] || CX == Heli[1] || CX == Heli[2]) // Variбvel que pega o veнculo em OnGame...
        {
            if(dini_Int(arquivo, "Variavel") != Variavel2) // Se nгo for tal coisa, ele nгo vai poder pilotar
            {
                SendClientMessage(playerid, XX, "| ERRO | Vocк nгo pode pilotar esse veнculo.");
                RemovePlayerFromVehicle(playerid);
            }
            else
            {
                SendClientMessage(playerid, XX, "| ERRO | Vocк й do grupo do qual pertence o helicуptero, entгo pode pilotб-lo normalmente.");
            }
        }
        else
        {
            SendClientMessage(playerid, XX, "| ERRO | Vocк nгo estб em um helicуptero.");
        }
    }


E repare nesta linha:


pawn Код:
if(dini_Int(arquivo, "Variavel") != Variavel2) // Se nгo for tal coisa, ele nгo vai poder pilotar


Vocк deverб indicar nessa linha, a condiзгo do jogador que faзa ele sair do veнculo, por exemplo, se ela for:



pawn Код:
if(IsPlayerConnected(playerid))

Entгo, o jogador terб que estб online para que ele seja ejetado .



Concluindo, basta usar o cуdigo que postei e adaptar o if para a condiзгo necessбria para que o jogador seja ejetado.



Qualquer problema, basta testar o cуdigo IN-GAME, pois coloquei alguns elses para "debug" que enviarгo uma mensagem ao jogador, com conteъdo relacionado ao que estб acontecendo de errado .



Espero ter ajudado .
Reply
#10

Nгo funcionou, estou achando que OnPlayerStateChange nгo funciona em helicopteros! Obrigado por ajudar Rjjj.
Alguйm por favor me ajuda! e_e
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)