public plugin_init() { register_plugin("testeo", "v1", "Ale"); register_clcmd("say /t", "test"); //Comando para ejecutar la funcion. }
public test(index) { for(new i = 0; i <MAX_STEAMDATA; i++) { new name_data[40] //Donde almacenaremos el nombre del dato de steam. get_name_steamdata(i, name_data, charsmax(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(index, i, ouput, charsmax(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(index, print_console, "[%s] %s", name_data, ouput) //Si todo sale bien printeamos el dato tipo string } else { //Si no es un string new iData = get_player_steamdata(index, i) // 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(index, print_console, "[%s] %i", name_data, iData) //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(index, print_team_default, "^4[avatar-full]^3 %s", g_avatar[index]) //Verificamos que ya se guardo la informacion dentro de el array. client_print_color(index, print_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(index, st_AvatarFull, g_avatar[index], charsmax(g_avatar[])) //obtenemos el Avatar-Full y retornamos el valor value[1] = get_player_steamdata(index, st_ProfileUrl, g_urlsteam[index], charsmax(g_urlsteam[])) //obtenemos el Perfil-URL y retornamos el valor for(new i = 0; i <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", authid64, charsmax(authid64)) //Obtenemos la steamid64 de el steamid. for(new i = 0; i <MAX_STEAMDATA; i++) get_steamdata(authid64, i) //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(0, print_console, "^4[Test]^1 %s", ouput) //Printeamos en consola el dato obtenido. }
(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
(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
03/03/2021, 12:05 AM (Última modificación: 03/03/2021, 12:06 AM por El pirucho XP-007.)
(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.
(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.
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().
10/03/2021, 01:38 AM (Última modificación: 10/03/2021, 02:04 AM por Alejandro. Edited 5 times in total.)
(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):
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