SA-MP Forums Archive
[Ajuda] Onplayerkeystatechange - 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] Onplayerkeystatechange (/showthread.php?tid=674784)



Onplayerkeystatechange - HelderPT - 27.04.2020

Olб,

Estou a ter problemas pois as vezes quando aperto Y nгo estб indo tem vezes que vai outras nгo poderia me dizer porque?

OBS: a callback tem mais que isso.

PHP Code:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
newkeys == KEY_YES)
    {
        if(
IsPlayerInRangeOfPoint(playerid3.01363.65234, -1749.9694813.05720) || IsPlayerInRangeOfPoint(playerid3.01418.08093, -1486.9149220.01770))
        {
            
ShowPlayerDialog(playeridDIALOG_MENU_ATMDIALOG_STYLE_LIST"{F4FA58}Caixa ATM""SALDO\nSACAR""Selecionar""Cancelar");
        }
    }
    if(
newkeys == KEY_YES)
    {
        if(
IsPlayerInRangeOfPoint(playerid2.01215.4077, -1640.122911.7969))
        {
            
ShowPlayerDialog(playeridDIALOG_INFOBASEDIALOG_STYLE_LIST"{FE2E2E}Armazйm do Comando Vermelho:""DROGAS""Selecionar""Cancelar");
            return 
1;
        }
    }
    return 
1;

Serб que tenho que usar else?

Obrigado desde jб


Re: Onplayerkeystatechange - Ermanhaut - 27.04.2020

https://sampwiki.blast.hk/wiki/OnPlayer...heck_for_a_key


Re: Onplayerkeystatechange - mau.tito - 27.04.2020

Ja tentou utilizar dentro da mesma newkeys ?
Eu tive um problema parecido com um sistema que eu estava usando eu tive que utilizar uma variavel, porem neste caso nгo sera possivel.

Mas tente usar assim
pawn Code:
if ( (oldkeys & KEY_YES) && !(newkeys & KEY_YES))
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, 1363.65234, -1749.96948, 13.05720) || IsPlayerInRangeOfPoint(playerid, 3.0, 1418.08093, -1486.91492, 20.01770))
        {
            ShowPlayerDialog(playerid, DIALOG_MENU_ATM, DIALOG_STYLE_LIST, "{F4FA58}Caixa ATM", "SALDO\nSACAR", "Selecionar", "Cancelar");
        }
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 1215.4077, -1640.1229, 11.7969))
        {
            ShowPlayerDialog(playerid, DIALOG_INFOBASE, DIALOG_STYLE_LIST, "{FE2E2E}Armazйm do Comando Vermelho:", "DROGAS", "Selecionar", "Cancelar");
        }
    }



Re: Onplayerkeystatechange - HelderPT - 27.04.2020

Estгo funcionando pуrem o que estava dando problema estб dando na mesma :/


Re: Onplayerkeystatechange - HelderPT - 27.04.2020

Quote:
Originally Posted by mau.tito
View Post
Ja tentou utilizar dentro da mesma newkeys ?
Eu tive um problema parecido com um sistema que eu estava usando eu tive que utilizar uma variavel, porem neste caso nгo sera possivel.

Mas tente usar assim
pawn Code:
if ( (oldkeys & KEY_YES) && !(newkeys & KEY_YES))
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, 1363.65234, -1749.96948, 13.05720) || IsPlayerInRangeOfPoint(playerid, 3.0, 1418.08093, -1486.91492, 20.01770))
        {
            ShowPlayerDialog(playerid, DIALOG_MENU_ATM, DIALOG_STYLE_LIST, "{F4FA58}Caixa ATM", "SALDO\nSACAR", "Selecionar", "Cancelar");
        }
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 1215.4077, -1640.1229, 11.7969))
        {
            ShowPlayerDialog(playerid, DIALOG_INFOBASE, DIALOG_STYLE_LIST, "{FE2E2E}Armazйm do Comando Vermelho:", "DROGAS", "Selecionar", "Cancelar");
        }
    }
Impossivel!! estб indo, pуrem sу testei com 2 players mais antes nгo estava indo. serб que vai?


Re: Onplayerkeystatechange - RiqueP - 28.04.2020

Use & ao invés de ==.
PHP Code:
if(newkeys KEY_YES



Re: Onplayerkeystatechange - Vithinn - 28.04.2020

PHP Code:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if((
newkeys KEY_YES) && !(oldkeys KEY_YES))
    {
        if(
IsPlayerInRangeOfPoint(playerid3.01363.65234, -1749.9694813.05720) || IsPlayerInRangeOfPoint(playerid3.01418.08093, -1486.9149220.01770))
        {
            
ShowPlayerDialog(playeridDIALOG_MENU_ATMDIALOG_STYLE_LIST"{F4FA58}Caixa ATM""SALDO\nSACAR""Selecionar""Cancelar");
        }
        else if(
IsPlayerInRangeOfPoint(playerid2.01215.4077, -1640.122911.7969))
        {
            
ShowPlayerDialog(playeridDIALOG_INFOBASEDIALOG_STYLE_LIST"{FE2E2E}Armazйm do Comando Vermelho:""DROGAS""Selecionar""Cancelar");
        }
    }
    return 
1;

Testa aн, nгo compilei nem nada, mas deve estar certo.

@edit Se nгo for, testa com return 1; nos dois if's. Nгo lembro se era necessбrio, fazem uns meses que nгo programo.


Re: Onplayerkeystatechange - HelderPT - 28.04.2020

Obrigado a todos.

Sу mais uma dъvida, essa callback 'OnPlayerStateChange'

Й preciso seguir o mesmo esquemma?

PHP Code:
    if(newstate == PLAYER_STATE_DRIVER)
    {
        new 
vidvid GetPlayerVehicleID(playerid);
        if(
vid == vCaminhoneiro[0] || vid == vCaminhoneiro[1] || vid == vCaminhoneiro[2] || vid == vCaminhoneiro[3] || vid == vCaminhoneiro[4] || vid == vCaminhoneiro[5// Caminhхes da Profissгo Caminhoneiro
        
|| vid == vCaminhoneiro[6] || vid == vCaminhoneiro[7] || vid == vCaminhoneiro[8] || vid == vCaminhoneiro[9] || vid == vCaminhoneiro[10])
        {
            if(
PlayerInfo[playerid][pProfissao] != Caminhoneiro)
            { 
                
RemovePlayerFromVehicle(playerid);
            }
        } 



Re: Onplayerkeystatechange - MateGPlay - 28.04.2020

Quote:
Originally Posted by HelderPT
View Post
Obrigado a todos.

Sу mais uma dъvida, essa callback 'OnPlayerStateChange'

Й preciso seguir o mesmo esquemma?

PHP Code:
    if(newstate == PLAYER_STATE_DRIVER)
    {
        new 
vidvid GetPlayerVehicleID(playerid);
        if(
vid == vCaminhoneiro[0] || vid == vCaminhoneiro[1] || vid == vCaminhoneiro[2] || vid == vCaminhoneiro[3] || vid == vCaminhoneiro[4] || vid == vCaminhoneiro[5// Caminhхes da Profissгo Caminhoneiro
        
|| vid == vCaminhoneiro[6] || vid == vCaminhoneiro[7] || vid == vCaminhoneiro[8] || vid == vCaminhoneiro[9] || vid == vCaminhoneiro[10])
        {
            if(
PlayerInfo[playerid][pProfissao] != Caminhoneiro)
            { 
                
RemovePlayerFromVehicle(playerid);
            }
        } 
PHP Code:
if(newstate == PLAYER_STATE_DRIVER)
{
     new 
vidvid GetPlayerVehicleID(playerid);
     for(new 
011i++)
          if(
vid == vCaminhoneiro[i] && PlayerInfo[playerid][pProfissao] != Caminhoneiro)
               
RemovePlayerFromVehicle(playerid);




Re: Onplayerkeystatechange - Ermanhaut - 29.04.2020

Quote:
Originally Posted by Ermanhaut
View Post
Nгo usem == para checar teclas, nгo funciona direito. Leia a wiki para mais informaзхes.