Portal SAMP
[Ajuda] Checagem de Plataforma - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP Mobile (https://portalsamp.com/forumdisplay.php?fid=11)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=12)
+--- Tópico: [Ajuda] Checagem de Plataforma (/showthread.php?tid=3413)



Checagem de Plataforma - Vinizzera - 11/03/2023

Olá. Já tentei usar vários tipos de checagem de plataforma existentes, mas o único q pegou em minha gamemode não checava a plataforma PC (Se eu logasse no PC, aparecia que eu estava via Mobile. Se eu entrasse pelo Mobile, aparecia q eu ESTAVA no Mobile).

Checagem
(O que eu usei)

... Há algum que além de checar o Android, o PC também?
OBS: Já usei Esse aqui e não soube botar, pois tenho de adicionar em uma forward, achei complicadíssimo.


RE: Checagem de Plataforma - israel - 11/03/2023

Você pode usar esse, bem simples.

https://github.com/Fairuz-Afdhal/IsPlayerUsingAndroid


RE: Checagem de Plataforma - Sysner - 15/03/2023

Você está colocando isto na GameMode?
Código PHP:
#define IsPlayerAndroid(%0)                 GetPVarInt(%0, "NotAndroid") == 0 // Android_Check 

é usando por exemplo
Código PHP:
    if ( IsPlayerAndroid(playerid) )
    {
        
SendClientMessage(playerid, -1"Jogador Mobile, detectado");
    } 



RE: Checagem de Plataforma - RodrigoMSR - 16/03/2023

Uma alternativa é usar o gpci (mais conhecido como "serial") do jogador. Alguns aplicativos usam um serial fixo.

Abaixo um exemplo que detecta o SA-MP Launcher da Play Store (também serve para aplicativos copiados deste):

Código:
#if !defined gpci
    native gpci(playerid, serial[], len);
#endif

stock IsMobile(playerid)
{
    new serial[41];
    gpci(playerid, serial, sizeof(serial));
    
    return !strcmp(serial, "ED40ED0E8089CC44C08EE9580F4C8C44EE8EE990", true);
}

Você pode checar o serial de outros aplicativos e também adicionar nessa função.

É recomendável armazenar o retorno da função em alguma variável (cache) para cada jogador ao conectar, para melhorar a performance.


RE: Checagem de Plataforma - White_Blue - 17/03/2023

Detectar jogadores mobile utilizando apenas funções nativas:



Código PHP:
#if !defined SendClientCheck(playerid, type, arg, offset, size)
  
native SendClientCheck(playeridtypeargoffsetsize);
#endif

#define IsPlayerAndroid(%0)                 GetPVarInt(%0, "NotAndroid") == 0

public OnPlayerConnect(playerid) {
      
SendClientCheck(playerid0x48002); // O retorno 0x48/72 significa que o jogador não está jogando de um computador
      
return 1;
}

public 
OnClientCheckResponse(playeridtypeargresponse) {

    switch(
type) { 
    case 
0x48: {
    
SetPVarInt(playerid"NotAndroid"1); 
    }
      }
   return 
1;


Lembrando que a função SendClientCheck infelizmente apenas funciona em filterscripts no SA-MP.


Fonte: https://github.com/Fairuz-Afdhal/IsPlayerUsingAndroid