SA-MP Forums Archive
[Ajuda] Mesma Tecla 2 Funзхes. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Mesma Tecla 2 Funзхes. (/showthread.php?tid=397444)



Mesma Tecla 2 Funзхes. - Lucas-Fc - 04.12.2012

Entгo galera, estou diante de um problema.
Seguinte, quero que o carro Ligue / Desligue o Motor com a mesma Tecla ( CTRL )
E, que Ligue / Desligue o Farol coma mesma tecla ( Q )

Em Fim, Eu Fiz Assim :

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if ((newkeys == 256)) // Q para ligar o carro.
    {
        if (IsPlayerInAnyVehicle(playerid))
        {
            new mot, lu, alar, por, cap, porma, ob;
            new carro = GetPlayerVehicleID(playerid);
            if (carro != INVALID_VEHICLE_ID)

            GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
            SetVehicleParamsEx(carro, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob);
            motor[playerid] = 1;
            SendClientMessage(playerid, Branco, "Veiculo {2F991A}Ligado!");
        }
    }

    if ((newkeys == 256)) // Q para desligar o carro.
    {
        if (IsPlayerInAnyVehicle(playerid))
        {
            new mot, lu, alar, por, cap, porma, ob;
            new carro = GetPlayerVehicleID(playerid);
            if (carro != INVALID_VEHICLE_ID)

            GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
            SetVehicleParamsEx(carro, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob);
            motor[playerid] = 0;
            SendClientMessage(playerid, Branco, "Veiculo {E31919}Desligado!");
        }
    }

    if ((newkeys == 132)) // Ctrl para Ligar o Farol.
    {
        if (IsPlayerInAnyVehicle(playerid))
        {
            new mot, lu, alar, por, cap, porma, ob;
            new carro = GetPlayerVehicleID(playerid);
            if (carro != INVALID_VEHICLE_ID)

            GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
            SetVehicleParamsEx(carro, mot, VEHICLE_PARAMS_ON, alar, por, cap, porma, ob);
            luz[playerid] = 1;
            SendClientMessage(playerid, Branco, "Farol {2F991A}Ligado!");
        }
    }

    if ((newkeys == 132)) // Ctrl para Desligar o Farol.
    {
        if (IsPlayerInAnyVehicle(playerid))
        {
            new mot, lu, alar, por, cap, porma, ob;
            new carro = GetPlayerVehicleID(playerid);
            if (carro != INVALID_VEHICLE_ID)

            GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
            SetVehicleParamsEx(carro, mot, VEHICLE_PARAMS_OFF, alar, por, cap, porma, ob);
            luz[playerid] = 0;
            SendClientMessage(playerid, Branco, "Farol {E31919}Desligado!");
        }
    }
    return 1;
}
Acontece, que quando fui testar, ao tentar ligar o carro, ele Ligava e desligava '-'

Tipo, aparecia:

Veнculo Ligado !
Veнculo Desligado !

Entendeu ?

Como eu posso tipo, ligar o carro, com o CTRL, dai depois se eu apertar de novo CTRL o carro desligar ?
E a mesma coisa com os farуis, com a tecla Q ?


Re: Mesma Tecla 2 Funзхes. - Schocc - 04.12.2012

Й sу usar Uma variavel

Exemplo
PHP код:

      
if ((newkeys == 256 )) // Q para ligar o carro.
    
{
        if (
IsPlayerInAnyVehicle(playerid) & motor[playerid] == 0)
        {
            new 
motlualarporcappormaob;
            new 
carro GetPlayerVehicleID(playerid);
            if (
carro != INVALID_VEHICLE_ID)
            
GetVehicleParamsEx(carromotlualarporcappormaob);
            
SetVehicleParamsEx(carro1lualarporcappormaob);
            
motor[playerid] = 1;
            
SendClientMessage(playerid, -1"Veiculo {2F991A}Ligado!");
            return 
true;
        }
    }
      if ((
newkeys == 256 )) // Q para ligar o carro.
    
{
        if (
IsPlayerInAnyVehicle(playerid) & motor[playerid] == 1)
        {
            new 
motlualarporcappormaob;
            new 
carro GetPlayerVehicleID(playerid);
            if (
carro != INVALID_VEHICLE_ID)
            
GetVehicleParamsEx(carromotlualarporcappormaob);
            
SetVehicleParamsEx(carro0lualarporcappormaob);
            
motor[playerid] = 0;
            
SendClientMessage(playerid, -1"Veiculo {E31919}Desligado!");
            return 
true;
        }
    }
      if ((
newkeys == 132 )) // Ctrl para Ligar o Farol.
    
{
        if (
IsPlayerInAnyVehicle(playerid) & luz[playerid] == 0)
        {
            new 
motlualarporcappormaob;
            new 
carro GetPlayerVehicleID(playerid);
            if (
carro != INVALID_VEHICLE_ID)
            
GetVehicleParamsEx(carromotlualarporcappormaob);
            
SetVehicleParamsEx(carromot1alarporcappormaob);
            
luz[playerid] = 1;
            
SendClientMessage(playerid, -1"Farol {2F991A}Ligado!");
            return 
true;
        }
    }
      if ((
newkeys == 132 )) // Ctrl para Ligar o Farol.
    
{
        if (
IsPlayerInAnyVehicle(playerid) & luz[playerid] == 1)
        {
            new 
motlualarporcappormaob;
            new 
carro GetPlayerVehicleID(playerid);
            if (
carro != INVALID_VEHICLE_ID)
            
GetVehicleParamsEx(carromotlualarporcappormaob);
            
SetVehicleParamsEx(carromot0alarporcappormaob);
            
luz[playerid] = 0;
            
SendClientMessage(playerid, -1"Farol {E31919}Desligado!");
            return 
true;
        }
    } 



Re: Mesma Tecla 2 Funзхes. - Lucas-Fc - 04.12.2012

Nгo entendi Schocc.


Re: Mesma Tecla 2 Funзхes. - Dolby - 04.12.2012

pawn Код:
if ((newkeys == 256)) // Q para ligar o carro.
    {
        if (IsPlayerInAnyVehicle(playerid) && motor[playerid] == 0)
        {
            new mot, lu, alar, por, cap, porma, ob;
            new carro = GetPlayerVehicleID(playerid);
            if (carro != INVALID_VEHICLE_ID)

            GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
            SetVehicleParamsEx(carro, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob);
            motor[playerid] = 1;
            SendClientMessage(playerid, Branco, "Veiculo {2F991A}Ligado!");
            return 1;
        }
        if (IsPlayerInAnyVehicle(playerid) && motor[playerid] == 1)
        {
            new mot, lu, alar, por, cap, porma, ob;
            new carro = GetPlayerVehicleID(playerid);
            if (carro != INVALID_VEHICLE_ID)

            GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
            SetVehicleParamsEx(carro, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob);
            motor[playerid] = 0;
            SendClientMessage(playerid, Branco, "Veiculo {E31919}Desligado!");
            return 1;  
        }
   }



Re: Mesma Tecla 2 Funзхes. - Schocc - 04.12.2012

editei o topico acima

Sу foi usado o Operador &

e as variaveis do seu gm
luz[playerid] e motor[playerid]

qual parte vc nгo entendeu?


Re: Mesma Tecla 2 Funзхes. - Dolby - 04.12.2012

Quote:
Originally Posted by Schocc
Посмотреть сообщение
editei o topico acima

Sу foi usado o Operador &

e as variaveis do seu gm
luz[playerid] e motor[playerid]

qual parte vc nгo entendeu?
A Parte que em seu cуdigo, o veiculo irб ligar e desligar , devido a vocк nгo ter retornado nada , olhe bem meu cуdigo e saberб porque isto irб acontecer...


Re: Mesma Tecla 2 Funзхes. - Lucas-Fc - 04.12.2012

Entendi galera .



Re: Mesma Tecla 2 Funзхes. - Schocc - 04.12.2012

@gustavo verdade esqueзi por que tava mechendo no sistema que te falei no msn ai de tando eu pensar em return false acabei fazendo errado ali tbm
kkkk

editei la agora deve estar correto


Re: Mesma Tecla 2 Funзхes. - Lucas-Fc - 04.12.2012

Qual o ID da tecla CTRL para Veнculos ?


Re: Mesma Tecla 2 Funзхes. - ViniBorn - 05.12.2012

Acho que KEY_ACTION ( 1 )