Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
Bueno, estuve tratando de agregar un autologin via steamid al sistema de cuentas de Mario AR., pero hasta ahora no he logrado nada. Esto es lo que tengo hasta ahora:
Código PHP: // Variables del plugin new g_userid[33], g_AutoLogueo[33], g_SteamID[33][35]; new g_pjconnect[33 char]; new g_buffer[33][34]; new g_nombre[33][CANTIDAD_PERSONAJES+1][32]; new g_bLogueado, g_bInvitado; new g_data[CANTIDAD_PERSONAJES*35], g_msg[150]; static g_reg_menu; new Trie:g_personajes_creados, Trie:g_cuentas_creadas; new cvar_minacchar, cvar_minpwchar, cvar_allowguests, cvar_enablemail, cvar_saylog; new g_msgSayText; #if defined _regex_included new Regex:g_regexid #endif new g_IsSteam[33]; new g_UserSteam[33][35]; new const SETINFO_PASSWORD[] = "_fgpw";
const OFFSET_VGUI_JOINTEAM = 2;
//#define menu_registro(%0) menu_display(%0,g_reg_menu) #define player_buffer(%0) g_nombre[0][0][%0-1] #define player_logueado(%0) (g_bLogueado & (1<<%0-1)) #define player_invitado(%0) (g_bInvitado & (1<<%0-1)) #define personaje(%0) g_pjconnect{%0} #define g_lastuserid g_userid[0] #define id_personaje(%0) ((g_userid[%0]-1)*CANTIDAD_PERSONAJES)+g_pjconnect{%0} #define MAXPLAYERS g_pjconnect{0} #define Save(%0) {\ g_buffer[%0][0] = EOS;\ formatex(g_buffer[%0], charsmax(g_buffer[]), "%d", id_personaje(%0));\ fvault_set_data(g_db_datos, g_buffer[%0], g_data);\ client_print(%0, print_console, "[FGaming] Datos Guardados Correctamente: LVL: %d | EXP: %d | RR: %d | AP %d", kNivel[id], kExp[id], kReset[id], g_ammopacks[id]);\ }
#define REGEX_PATTERN "^^[A-Z0-9._+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|net|fox|biz)$"
// Esto es para mas orden... #define MENU_ITEM_KEY(%0) (1<<%0)
CargarDatos(id) { if (personaje(id)) { formatex(g_buffer[id], charsmax(g_buffer[]), "%d", id_personaje(id)) // Cargar datos (Si existen) if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new LVL[9], EXP[12], RR[4], AP[16] parse(g_data, LVL, charsmax(LVL), EXP, charsmax(EXP), RR, charsmax(RR), AP, charsmax(AP)) kNivel[id] = str_to_num(LVL) kExp[id] = str_to_num(EXP) kReset[id] = str_to_num(RR) g_ammopacks[id] = str_to_num(AP) return; } } // No se cargaron datos, es un usuario nuevo o un invitado. kNivel[id] = 1 kReset[id] = 0 kExp[id] = 0 g_ammopacks[id] = 75 }
GuardarDatos(id) { g_SteamID[id] = g_UserSteam[id]
formatex(g_data, charsmax(g_data), "%d %d %d %d %d %s", kNivel[id], kExp[id], kReset[id], g_ammopacks[id], g_AutoLogueo[id], g_SteamID[id]) Save(id) }
// Client joins the game public client_putinserver(id) { get_user_authid(id, g_UserSteam[id], 34); get_user_authid(id, g_SteamID[id], 34)
new i = strlen(g_UserSteam[id]); if (equali(g_UserSteam[id], "STEAM_ID_PENDING") || equali(g_UserSteam[id], "STEAM_ID_LAN") || i <= 16 || (g_UserSteam[id][0] == 'V' && g_UserSteam[id][1] == 'A' && g_UserSteam[id][2] == 'L')) { g_IsSteam[id] = 0; } else { g_IsSteam[id] = 1; }
CargarDatos( id );
checkautolog(id) }
public checkautolog(id) { new sPassword[34]; get_user_info(id, SETINFO_PASSWORD, sPassword, 33);
formatex(g_buffer[id], charsmax(g_buffer[]), "%d", id_personaje(id)) // Cargar datos (Si existen) if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new STEAMID[32], AUTOLOG[3] parse(g_data, AUTOLOG, charsmax(AUTOLOG), STEAMID, charsmax(STEAMID)) g_AutoLogueo[id] = str_to_num(AUTOLOG) g_SteamID[id] = STEAMID return; }
if(g_AutoLogueo[id]) { if(equal(g_SteamID[id], g_UserSteam[id])) { CargarCuenta(id); menu_personajes(id) } } else set_task(0.2, "menu_registro", id)
}
public saysteamid(id) { client_print(id, print_chat, "Tu SteamID Guardada es: %s", g_SteamID[id]) client_print(id, print_chat, "Tu SteamID Actual es: %s", g_UserSteam[id]) return PLUGIN_HANDLED; }
PD: esa ultima funcion la hice para verificar los datos, obviamente, el segundo print devuleve la steamid actual, pero el primer print solo devuelve un 0.
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
bumpp
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 546
Temas: 83
Registro en: Mar 2018
Reputación:
9
Pide ayuda en Pedido de Plugins, aca suben son scripting u otras cosas
PDT: ¿Que carajo es [FGAMING]?
yo estoy hay no se porque me burlo :'v * o estube *
Mensajes: 449
Temas: 32
Registro en: Apr 2017
Reputación:
6
(08/07/2018, 09:35 AM)Nazy.- escribió: Pide ayuda en Pedido de Plugins, aca suben son scripting u otras cosas
PDT: ¿Que carajo es [FGAMING]?
yo estoy hay no se porque me burlo :'v * o estube *
Demonios este tipo ya es pesadisimo CARAJO CUANDO LE DARÁN BAN JODER
ESTA SECCIÓN ES PARA HACER PREGUNTAS SOBRE TUS PLUGINS, PEDIDOS ES PARA """"""""PEDIRRRRR PLUGINSSS"""""""" DEJA DE COMENTAR COSAS INSERVIBLES JODER
Por eso se llama scripting, aqui haces preguntas sobre tus plugins, por eso te dije que vinieras aqui, en vez de llenar la seccion de plugins nuevos, aportes y tutoriales, de tus basura joder.
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
19/07/2018, 09:59 PM
(Última modificación: 19/07/2018, 10:00 PM por elpapimejor.)
bump x2
mas de 2 semanas xd, no ban pls
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 1,015
Temas: 42
Registro en: Feb 2016
Reputación:
13
20/07/2018, 01:02 AM
(Última modificación: 20/07/2018, 01:03 AM por Exertency.)
Código PHP: if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new STEAMID[32], AUTOLOG[3] parse(g_data, AUTOLOG, charsmax(AUTOLOG), STEAMID, charsmax(STEAMID)) g_AutoLogueo[id] = str_to_num(AUTOLOG) g_SteamID[id] = STEAMID return; }
Antes de hacer el parse imprimí g_data y luego de haberlo hecho imprimí Steamid y autolog. Y pone los resultados
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
20/07/2018, 11:08 AM
(Última modificación: 20/07/2018, 11:11 AM por elpapimejor.)
(20/07/2018, 01:02 AM)Exertency escribió: Código PHP: if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new STEAMID[32], AUTOLOG[3] parse(g_data, AUTOLOG, charsmax(AUTOLOG), STEAMID, charsmax(STEAMID)) g_AutoLogueo[id] = str_to_num(AUTOLOG) g_SteamID[id] = STEAMID return; }
Antes de hacer el parse imprimí g_data y luego de haberlo hecho imprimí Steamid y autolog. Y pone los resultados
Hice esto: Código PHP: public checkautolog(id) { formatex(g_buffer[id], charsmax(g_buffer[]), "%d", id_personaje(id)) // Cargar datos (Si existen) if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new STEAMID[32], AUTOLOG[3] parse(g_data, AUTOLOG, charsmax(AUTOLOG), STEAMID, charsmax(STEAMID)) g_AutoLogueo[id] = str_to_num(AUTOLOG) g_SteamID[id] = STEAMID client_print(id, print_console, "%s", g_data) return; }
if(g_AutoLogueo[id]) { if(equal(g_SteamID[id], g_UserSteam[id])) { CargarCuenta(id); menu_personajes(id) } } else set_task(0.2, "menu_registro", id)
}
Pero no muestra nada
EDIT: ya lei bien tu mensaje, ya pruebo
EDIT2: Código PHP: public checkautolog(id) { formatex(g_buffer[id], charsmax(g_buffer[]), "%d", id_personaje(id)) // Cargar datos (Si existen) if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { client_print(id, print_console, "%s", g_data) client_print(id, print_console, "%s", g_buffer[id]) client_print(id, print_chat, "Tu SteamID Guardada es: %s", g_SteamID[id]) client_print(id, print_chat, "Tu SteamID Actual es: %s", g_UserSteam[id]) new STEAMID[32], AUTOLOG[3] parse(g_data, AUTOLOG, charsmax(AUTOLOG), STEAMID, charsmax(STEAMID)) g_AutoLogueo[id] = str_to_num(AUTOLOG) g_SteamID[id] = STEAMID return; }
if(g_AutoLogueo[id]) { if(equal(g_SteamID[id], g_UserSteam[id])) { CargarCuenta(id); menu_personajes(id) } } else set_task(0.2, "menu_registro", id)
}
Aun no aparece nada.
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 1,015
Temas: 42
Registro en: Feb 2016
Reputación:
13
20/07/2018, 11:46 AM
(Última modificación: 20/07/2018, 11:48 AM por Exertency.)
Hace lo mismo en CargarDatos(id) entonces.
Pero sólo imprimí g_data.
Por lo que entendi cuando haces el parse en CargarDatos, que haces para todas las variables de exp, aps, etc, también tenés que hacerlo para el Steamid ahí. Osea..
Código PHP: parse(g_data, LVL, EXP, RR, AP, AutoLog, SteamId)
Agregándole el charsmax de cada variable obviamente.
PD: El tamaño de steam id tiene que ser 35, como en la variable global
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
(20/07/2018, 11:46 AM)Exertency escribió: Hace lo mismo en CargarDatos(id) entonces.
Pero sólo imprimí g_data.
Por lo que entendi cuando haces el parse en CargarDatos, que haces para todas las variables de exp, aps, etc, también tenés que hacerlo para el Steamid ahí. Osea..
Código PHP: parse(g_data, LVL, EXP, RR, AP, AutoLog, SteamId)
Agregándole el charsmax de cada variable obviamente.
PD: El tamaño de steam id tiene que ser 35, como en la variable global
Código PHP: 25 25096 0 61776 1 STEAM_0:0:176004727
Ya se ve que lo guarda, ahora como seria para hacer funcionar el autolog?
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 1,015
Temas: 42
Registro en: Feb 2016
Reputación:
13
20/07/2018, 12:45 PM
(Última modificación: 20/07/2018, 12:45 PM por Exertency.)
Toma usa esta función y en check_autolog solamente deja la parte de if(g_AutoLogueo....
Código PHP: CargarDatos(id) { if (personaje(id)) { formatex(g_buffer[id], charsmax(g_buffer[]), "%d", id_personaje(id)) // Cargar datos (Si existen) if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new LVL[9], EXP[12], RR[4], AP[16], AutoLog[3], SteamID[35]; parse(g_data, LVL, charsmax(LVL), EXP, charsmax(EXP), RR, charsmax(RR), AP, charsmax(AP), AutoLog, charsmax(AutoLog), SteamID, charsmax(SteamID)); kNivel[id] = str_to_num(LVL) kExp[id] = str_to_num(EXP) kReset[id] = str_to_num(RR) g_ammopacks[id] = str_to_num(AP) g_AutoLogueo[id] = str_to_num(AutoLog); g_SteamID[id] = SteamID; return; } } // No se cargaron datos, es un usuario nuevo o un invitado. kNivel[id] = 1 kReset[id] = 0 kExp[id] = 0 g_ammopacks[id] = 75 }
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
(20/07/2018, 12:45 PM)Exertency escribió: Toma usa esta función y en check_autolog solamente deja la parte de if(g_AutoLogueo....
Código PHP: CargarDatos(id) { if (personaje(id)) { formatex(g_buffer[id], charsmax(g_buffer[]), "%d", id_personaje(id)) // Cargar datos (Si existen) if (fvault_get_data(g_db_datos, g_buffer[id], g_data, charsmax(g_data))) { new LVL[9], EXP[12], RR[4], AP[16], AutoLog[3], SteamID[35]; parse(g_data, LVL, charsmax(LVL), EXP, charsmax(EXP), RR, charsmax(RR), AP, charsmax(AP), AutoLog, charsmax(AutoLog), SteamID, charsmax(SteamID)); kNivel[id] = str_to_num(LVL) kExp[id] = str_to_num(EXP) kReset[id] = str_to_num(RR) g_ammopacks[id] = str_to_num(AP) g_AutoLogueo[id] = str_to_num(AutoLog); g_SteamID[id] = SteamID; return; } } // No se cargaron datos, es un usuario nuevo o un invitado. kNivel[id] = 1 kReset[id] = 0 kExp[id] = 0 g_ammopacks[id] = 75 }
ok, deje la funcion de autologueo asi Código PHP: public checkautolog(id) { /*new xxxx[32]; get_user_authid(id, xxxx, charsmax(xxxx));*/
if(g_AutoLogueo[id]) { if(equal(g_SteamID[id], g_UserSteam[id])) { CargarCuenta(id); menu_personajes(id) } } else set_task(0.2, "menu_registro", id)
}
parece que si funciona, pero no carga la cuenta, osea, cuando se entra al server, no muestra el menu ni nada
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 1,015
Temas: 42
Registro en: Feb 2016
Reputación:
13
Y cual es la función cargar_cuenta y menu_personajes?
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
(20/07/2018, 01:08 PM)Exertency escribió: Y cual es la función cargar_cuenta y menu_personajes?
Código PHP: CargarCuenta(id) { new i; g_bLogueado |= (1 << id-1); g_bInvitado &= ~(1 << id-1); g_data[0] = g_buffer[id][0] = EOS; personaje(id) = 0; formatex(g_buffer[id], charsmax(g_buffer[]), "%d", g_userid[id]); if (fvault_get_data(g_db_pj, g_buffer[id], g_data, charsmax(g_data))) { // No puedo usar parse() porque la cantidad de personajes es dinamica // Este bucle es un reemplazo de parse new bool:temp = false, start = 0, b = 0, c = strlen(g_data); for (i = 0; i < c; i++) { if (g_data[i] != '"') continue; if (!temp) { start = i+1; temp = true; continue; } temp = false; b++; if (g_data[i-1] != '"') { g_data[i] = EOS; copy(g_nombre[id][b], charsmax(g_nombre[][]), g_data[start]); } else g_nombre[id][b][0] = EOS; } return; } for (i = 1; i <= CANTIDAD_PERSONAJES; i++) g_nombre[id][i][0] = EOS; }
Código PHP: menu_personajes(id, pag = 0) { formatex(g_msg, charsmax(g_msg), "%s^nCuentas creadas:\r %d^n^n\yCuenta: \r%s", PLUGINX, g_lastuserid, g_nombre[id][0]); #if CANTIDAD_PERSONAJES > 7 add(g_msg, charsmax(g_msg), "^n\yPagina:\r", 12); #endif new menu = menu_create(g_msg, "handler_personaje"); for (new i = 1; i <= CANTIDAD_PERSONAJES; i++) { if (g_nombre[id][i][0]) formatex(g_msg, charsmax(g_msg), "%s%s", personaje(id) == i ? "\yRegresar al Juego \r[En Uso]\d " : "", g_nombre[id][i]); else formatex(g_msg, charsmax(g_msg), "Crear Personaje \y[Slot %d Disponible]", i); menu_additem(menu, g_msg); } #if CANTIDAD_PERSONAJES > 7 menu_setprop(menu, MPROP_BACKNAME, "Anterior"); menu_setprop(menu, MPROP_NEXTNAME, "Siguiente^n"); #else menu_setprop(menu, MPROP_PERPAGE, CANTIDAD_PERSONAJES); #endif
formatex(g_msg, charsmax(g_msg),"%sAutologueo \d[\r%s\d]", player_logueado(id) ?"\w":"\d", g_AutoLogueo[id]?"SI":"NO") menu_additem(menu, g_msg); menu_setprop(menu, MPROP_EXITNAME, "Desloguear \yCuenta"); menu_display(id, menu, pag); }
public handler_personaje(id, menu, item) { if (item == MENU_EXIT) { if (is_user_connected(id)) { if (personaje(id)) { if (is_user_alive(id)) dllfunc(DLLFunc_ClientKill, id); GuardarDatos(id); cs_set_user_team(id, CS_TEAM_UNASSIGNED); } formatex(g_msg, charsmax(g_msg), "Te has deslogueado."); send_message(id); menu_registro(id); } ResetearVariables(id); menu_destroy(menu); return PLUGIN_HANDLED; } if (++item == personaje(id)) { menu_destroy(menu); return PLUGIN_HANDLED; } if(item == 6) { if(player_logueado(id)) { if(g_AutoLogueo[id]) { g_AutoLogueo[id] = 0 menu_personajes(id) } else { g_AutoLogueo[id] = 1 menu_personajes(id) } } else { client_print(id, print_center, "No puedes elegir esta opcion"); return PLUGIN_HANDLED; } } if (1 <= item <= CANTIDAD_PERSONAJES) { if (g_nombre[id][item][0]) { set_user_info(id, "name", g_nombre[id][item]); g_data[0] = EOS; personaje(id) = item; CargarDatos(id); set_pdata_int(id, 125, (get_pdata_int(id, 125) & ~(1 << 8))); //client_cmd(id, "jointeam%s", get_pcvar_num(cvar_jointeam) ? "" : " 5"); ForceJoinTeam(id)
formatex(g_msg, charsmax(g_msg), "Bienvenido, %s.^nDisfruta tu estadia.", g_nombre[id][item]); send_message(id); if (get_pcvar_num(cvar_saylog)) { formatex(g_msg, charsmax(g_msg), "^x04[ZP]^x01 Ha entrado^x04 %s", g_nombre[id][item]); connect_message(id); } } else { if (personaje(id)) { if (is_user_alive(id)) dllfunc(DLLFunc_ClientKill, id); GuardarDatos(id); cs_set_user_team(id, CS_TEAM_UNASSIGNED); personaje(id) = 0; } player_buffer(id) = item; get_user_info(id, "name", g_buffer[id], charsmax(g_buffer[])); formatex(g_msg, charsmax(g_msg), "\y%s^n\yCrear Personaje en Slot %d ?^nNombre: \r%s", PLUGINX, item, g_buffer[id]); new pmenu = menu_create(g_msg, "creando_personaje"); menu_additem(pmenu, "\ySi,\w crear personaje"); menu_additem(pmenu, "\rNo,\w usare otro nombre"); menu_setprop(pmenu, MPROP_EXIT, MEXIT_NEVER); menu_display(id, pmenu); } } menu_destroy(menu); return PLUGIN_HANDLED; }
de todas maneras uso este: https://amxmodx-es.com/Thread-Sistema-de...Personajes
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Mensajes: 1,015
Temas: 42
Registro en: Feb 2016
Reputación:
13
Código PHP: if(equal(g_SteamID[id], g_UserSteam[id])
Fíjate esa condición, imprimí ambas variables y revisa que sean exactamente iguales.
Mensajes: 853
Temas: 147
Registro en: Oct 2014
Reputación:
5
(20/07/2018, 03:39 PM)Exertency escribió: Código PHP: if(equal(g_SteamID[id], g_UserSteam[id])
Fíjate esa condición, imprimí ambas variables y revisa que sean exactamente iguales.
Si lo son.
nalgas
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
|