[API] Advanced STEAM v3.1
#1

[API] Advanced STEAM v3.1

........................................................................

Informacion: complemento para obtener datos de el perfil de un usuario de steam.

Requisitos:
Instalación:
  • Instalar modulo AmxCurl
  • Ingresar api key en el complemento. El api key lo consigues aqui https://steamcommunity.com/dev/apikey
    Código PHP:
    new const g_SteamKEYAPI[] = ""//Tu api key aqui 
  • Por ultimo, compilar y subir complemento.

Algunas formas de uso:
  • Obtener datos de un index.
    Código PHP:
    #include <amxmodx>
    #include <steam_data>

    public plugin_init() {
        
    register_plugin("testeo""v1""Ale");
        
    register_clcmd("say /t""test");    //Comando para ejecutar la funcion.
    }

    public 
    test(index) {
        for(new 
    0<MAX_STEAMDATAi++) {
            new 
    name_data[40//Donde almacenaremos el nombre del dato de steam.
            
    get_name_steamdata(iname_datacharsmax(name_data)) //Obtenemos el nombre del dato de steam.
            
    if (is_steamdata_string(i)) { //Verificamos si el dato es string
                
    new ouput[150//Donde guardaremos en caso de que sea string el dato.
                
    new value get_player_steamdata(indexiouputcharsmax(ouput))    //Obtenemos el dato y almacenamos lo que nos returna en error
                
    if (value st_none_error) { //Indentificamos la condicion de que no haya ningun error.
                    
    get_failstate_steamdata(value//Mandamos log en caso de que haya un error y lo printeamos.
                    
    return 
                }
                
    client_print(indexprint_console"[%s] %s"name_dataouput)    //Si todo sale bien printeamos el dato tipo string        
            
    } else { //Si no es un string
                
    new iData get_player_steamdata(indexi// retornamos el valor de steam en iData.
                
    if (iData st_none_error) { //Indentificamos la condicion de que no haya ningun error.
                    
    get_failstate_steamdata(iData//Mandamos log en caso de que haya un error y lo printeamos.
                    
    return 
                }
                
    client_print(indexprint_console"[%s] %i"name_dataiData//Si todo sale bien printeamos el dato tipo int
            
    }
        }    

  • Alamacenar algun dato al entrar un cliente.
    Código PHP:
    #include <amxmodx>
    #include <steam_data>

    new g_avatar[MAX_PLAYERS+1][130//Declaramos el array donde guardaremos el index y el string del avatar.
    new g_urlsteam[MAX_PLAYERS+1][60//Declaramos el array donde guardaremos el index y el string del steam url.

    public plugin_init() {
        
    register_plugin("testeo""v1""Ale");
        
    register_clcmd("say /t""test");    //Comando para ejecutar la funcion.
    }
    public 
    test(index) {
        
    client_print_color(indexprint_team_default"^4[avatar-full]^3 %s"g_avatar[index]) //Verificamos que ya se guardo la informacion dentro de el array.
        
    client_print_color(indexprint_team_default"^4[perfil-url]^3 %s"g_urlsteam[index]) //Verificamos que ya se guardo la informacion dentro de el array.
    }
    /**
    * (OJO) Esta forward solo se ejecutara en usuarios steam, las natives se
    * ejecutan aqui al entrar, no es posible ejecutarlas en client_putinserver,
    * Ya que hay un delay de tiempo para obtener los datos de steam de un cliente.
     */
    public fw_steamdatapost(index) {
        new 
    value[2//Array para guardar los valores
        
    value[0] = get_player_steamdata(indexst_AvatarFullg_avatar[index], charsmax(g_avatar[])) //obtenemos el Avatar-Full y retornamos el valor
        
    value[1] = get_player_steamdata(indexst_ProfileUrlg_urlsteam[index], charsmax(g_urlsteam[])) //obtenemos el Perfil-URL y retornamos el valor
        
    for(new 0<sizeof(value); i++) { //Creamos un for para verificar los valores
            
    if (value[i] < st_none_error) {    //Verificamos si el valor es un error.
                
    get_failstate_steamdata(value[i]) //En caso de haber un error en los valores lo printeamos en logs.
            
    }
        }

  • Obtener datos de un steamid64.
    Código PHP:
    #include <amxmodx>
    #include <steam_data>

    public plugin_init() {
        
    register_plugin("testeo""v1""Ale");
        
    register_clcmd("say /t""test");    //Comando para ejecutar la funcion.
    }

    public 
    test(index) {
        new 
    authid64[64]    //string donde guardaremos el steamid64.
        
    get_steamid64_for_steamid("STEAM_0:0:161845347"authid64charsmax(authid64)) //Obtenemos la steamid64 de el steamid.
        
    for(new 0<MAX_STEAMDATAi++) 
            
    get_steamdata(authid64i)    //Native para obtener datos de el steamid64
    }
    public 
    fw_steamdatacomplite(ouput[], error) { //Forward que se ejecuta al obtener un dato.
        
    if (error st_none_error) {
            
    get_failstate_steamdata(error// En caso de error muestra en logs el error.
            
    return                           // retornamos la funcion.
        
    }
        
    client_print(0print_console"^4[Test]^1 %s"ouput//Printeamos en consola el dato obtenido.


Documentación: Steam Web Api (https://developer.valvesoftware.com/wiki/Steam_Web_API)
Versión de lanzamiento: [ STD ] Steam data info


Archivos adjuntos
.sma   Descargar AMXX / API-Advanced-steam_data.sma (Tamaño: 12.03 KB / Descargas: 64)
.inc   steam_data.inc (Tamaño: 6.99 KB / Descargas: 45)
Responder
#2
Perdon la pregunta tan estupida, pero que hace exactamente el plugin, porque desde el telefono me da ladilla ver todo el codigo.
Responder
#3
(02/03/2021, 11:34 PM)El pirucho XP-007 escribió: Perdon la pregunta tan estupida, pero que hace exactamente el plugin, porque desde el telefono me da ladilla ver todo el codigo.

sacar informacion de steam ej url de su perfil, avatar, nombre real, nombre de perfil etc
Pawn Básico no critiquen xD  Approved

Responder
#4
(02/03/2021, 11:34 PM)El pirucho XP-007 escribió: Perdon la pregunta tan estupida, pero que hace exactamente el plugin, porque desde el telefono me da ladilla ver todo el codigo.
Te hubieras ahorrado el comentario y hubieras leído por lo menos xD
Responder
#5
(02/03/2021, 11:44 PM)Alejandro escribió: Te hubieras ahorrado el comentario y hubieras leído por lo menos xD

Eso me pasa por cargar paginas en opera mini, no suelen cargar los parrafos o se salen del limite de la pantalla.

Oviamente si voy a leer un aporte o plugin para ver que se trata y ver si la descargo o guardo la pagina. Pero en mi telefono es otra voz.

Pero de todos modos gracias por decirmelo. Aprecio la ayuda.
Responder
#6
(03/03/2021, 12:05 AM)El pirucho XP-007 escribió: Eso me pasa por cargar paginas en opera mini, no suelen cargar los parrafos o se salen del limite de la pantalla.

Oviamente si voy a leer un aporte o plugin para ver que se trata y ver si la descargo o guardo la pagina. Pero en mi telefono es otra voz.

Pero de todos modos gracias por decirmelo. Aprecio la ayuda.

Informacion: complemento para obtener datos de el perfil de un usuario de steam.
Responder
#7
Gran aporte Gran sonrisa
Responder
#8
(03/03/2021, 02:15 AM)alexiways escribió: Gran aporte Gran sonrisa

Dancing
Responder
#9
Buena actualización, y excelente aporte como siempre. [Imagen: crab.gif]
"Cada golpe es una lección, y cada lección te hace mejor."

[Imagen: b_350_20_000000_8a7300_ffffff_eeff00.png]
[Imagen: 76561198371193937.png]
Responder
#10
Veo que sabes lo que estas haciendo por tu manera de codear, muy legible y ordenado, mas allá de lo que hace la api, es una buen código para utilizar de ejemplo en como se manejan las natives por la ojeada que le di, seguramente haya cosas que se puedan mejorar pero muy bueno.

Te iba a comentar que no entendía porque en el ejemplo uno, validabas si el tipo de dato era string, al ver la native de get_name_steamdata() es claro que siempre va a devolver un string, pero entiendo que solo la utilizaste a modo de ejemplo para darle pie a explicar como poder usar is_steamdata_string().

Buen aporte! Saludos
Responder
#11
El SteamID64 se puede obtener de la siguiente manera (en el caso que el jugador del que quieras saber su ID64 esté dentro del servidor):
Código PHP:
get_user_setinfo(id"*sid"szSteamID64charsmax(szSteamID64)) 
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#12
(09/03/2021, 12:09 PM)hud escribió: Veo que sabes lo que estas haciendo por tu manera de codear, muy legible y ordenado, mas allá de lo que hace la api, es una buen código para utilizar de ejemplo en como se manejan las natives por la ojeada que le di, seguramente haya cosas que se puedan mejorar pero muy bueno.

Te iba a comentar que no entendía porque en el ejemplo uno, validabas si el tipo de dato era string, al ver la native de get_name_steamdata() es claro que siempre va a devolver un string, pero entiendo que solo la utilizaste a modo de ejemplo para darle pie a explicar como poder usar is_steamdata_string().

Buen aporte! Saludos

Gracias my bro, is_steamdata_string() es utilizada para saber si el valor de un dato a obtener es string
ya que el valor de el dato a obtener puede ser string o int.

te dejo esto como ejemplo:
Código:
{
   "response":{
      "players":[
         {    [DATO]       [VALOR]    -> Si el valor no tiene comillas es int.
            "steamid":"76561198283956422",
            "communityvisibilitystate":3,
            "profilestate":1,
            "personaname":"Alejandro-.",
            "commentpermission":1,
            "profileurl":"https://steamcommunity.com/id/AMXXAlejandro/",
            "avatar":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/52/5200602ba081af1c054f187a94b7a631472fc1eb.jpg",
            "avatarmedium":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/52/5200602ba081af1c054f187a94b7a631472fc1eb_medium.jpg",
            "avatarfull":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/52/5200602ba081af1c054f187a94b7a631472fc1eb_full.jpg",
            "avatarhash":"5200602ba081af1c054f187a94b7a631472fc1eb",
            "lastlogoff":1615349842,
            "personastate":1,
            "primaryclanid":"103582791435406386",
            "timecreated":1455222212,
            "personastateflags":0,
            "gameextrainfo":"Counter-Strike",
            "gameid":"10",
            "loccountrycode":"VE"
         }
      ]
   }
}

(09/03/2021, 09:34 PM)totopizza escribió: El SteamID64 se puede obtener de la siguiente manera (en el caso que el jugador del que quieras saber su ID64 esté dentro del servidor):
Código PHP:
get_user_setinfo(id"*sid"szSteamID64charsmax(szSteamID64)) 

Si leiste un poco el codigo notaras que uso *sid para sacar info de un player conectado, pero hay otra native en el api que es para obtener datos de un player que no esta conectado por eso uso un stock aparte, ya que el *sid solo lo puedes sacar a jugadores conectados

(OJO) El stock no es mío se me olvido comentarlo en el post, pero es obvio xD
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)