17/05/2020, 09:26 PM (Última modificación: 21/05/2020, 09:32 PM por Hypnotize. Edited 2 times in total.)
que tal, en esta ocasión traigo un sistema de cuentas de manera distinta quizá xd
Aclaro que lo testie solo así que no se si anda con mucha gente o si el lag afecte al sistema, pero lo hice con la intención de aportar (nq te lo dedico )
Trae guardado
top15
cuentas
La única diferencia de este entre otro sistema es que podes usar cualquier función como el top15 (ej) en el pawn como en la web.
PD; el código de php esta feito porque no manejo php, ya que pensé en hacerlo en nodejs pero creo que hay mas dificultad de trabajar con el a la hora de montarlo.
new const PLUGIN[] = "System Account"; new const VERSION[] = "1.0"; new const AUTHOR[] = "Hypnotize";
new motdTop[ 3500 ]; new bool:bTop = false;
new g_id[ 33 ]; new g_reset[ 33 ]; new g_level[ 33 ]; new g_points[ 33 ]; new g_rango[ 33 ]; new g_experience[ 33 ]; new g_rank[ 33 ]; new g_kills[ 33 ]; new g_death[ 33 ]; new g_connected[ 33 ]; new g_register[ 33 ];
public testv(id){ g_kills[ id ] = 100; client_print(id, print_chat, "%d", g_kills[ id ]) updateData(id, g_id[ id ], g_reset[ id ], g_level[ id ], g_points[ id ], g_rango[ id ], g_experience[ id ], g_rank[ id ], g_kills[ id ], g_death[ id ]); }
public client_putinserver( id ){ get_user_name(id, g_playername[ id ], charsmax( g_playername[ ] ));
isRegister(id, g_playername[ id ]);
g_id[ id ] = 0; g_reset[ id ] = 0; g_level[ id ] = 1; g_points[ id ] = 0; g_rango[ id ] = 0; g_experience[ id ] = 0; g_rank[ id ] = 0; g_kills[ id ] = 0; g_connected[ id ] = 0; g_death[ id ] = 0; g_register[ id ] = USER_NOT_REGISTER;
set_task(0.3, "show_menu_registro", id); } public client_disconnected(id){ if(g_register[ id ] == USER_REGISTER) { updateData(id, g_id[ id ], g_reset[ id ], g_level[ id ], g_points[ id ], g_rango[ id ], g_experience[ id ], g_rank[ id ], g_kills[ id ], g_death[ id ]); updateStatus(id, g_id[ id ], USER_DISCONNECTED); } }
public clcmd_changeteam( id ) { if( g_connected[id] != USER_CONNECTED ) { show_menu_registro( id ); return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
public reg_password(id) { if(g_register[ id ] == USER_REGISTER || g_register[ id ] == USER_ERROR) return;
json_free(object); json_free(root_value); len += formatex( motdTop[len], charsmax(motdTop)- len, "</table>" ); len += formatex( motdTop[len], charsmax(motdTop)- len, "</body>" );
bTop = true;
} /** * end get top15 **/
/** * get isRegister **/ public isRegister( id, name[] ){ static data[350];
formatex(data, charsmax(data), "%s/api_rest_slim_framework-master/public/api/users/%s", host, name); grip_request( data, Empty_GripBody, GripRequestTypeGet, "reqRegister", Empty_GripRequestOptions, id ); } public reqRegister( id ){ new GripResponseState:responseState = grip_get_response_state(); if (responseState == GripResponseStateError) { g_register[ id ] = USER_ERROR; return; }
new GripHTTPStatus:status = grip_get_response_status_code(); if (status != GripHTTPStatusOk) { g_register[ id ] = USER_ERROR; return; }
new response[3500]; grip_get_response_body_string(response, charsmax(response)); server_print("%s", response); new JSON:root_value = json_parse(response);
if (!json_is_array(root_value)) { g_register[ id ] = USER_NOT_REGISTER; server_print("Algo ha salido mal! isreg"); json_free(root_value); return; }
new JSON:object; new data[500]; object = json_array_get_value(root_value, 0);
json_object_get_string(object, "connected", data, charsmax(data), true); new status_player = str_to_num( data );
if( status_player != 0 ) { kick( id, "Tu cuenta esta conectada en otro servidor actualmente!"); } server_print("entro conected xdxd"); g_register[ id ] = USER_REGISTER;
json_object_get_string(object, "id", data, charsmax(data), true); g_id[ id ] = str_to_num( data );
json_free(object); json_free(root_value); } /** * end get isRegister **/
/** * get login **/ public showLogin( id, name[], password[] ){ static data[350];
formatex(data, charsmax(data), "%s/api_rest_slim_framework-master/public/api/users/%s/%s", host, name, password); grip_request( data, Empty_GripBody, GripRequestTypeGet, "reqLogin", Empty_GripRequestOptions, id ); } public reqLogin( id ){ new GripResponseState:responseState = grip_get_response_state(); if (responseState == GripResponseStateError) { return; }
new GripHTTPStatus:status = grip_get_response_status_code(); if (status != GripHTTPStatusOk) { return; }
new response[3500]; grip_get_response_body_string(response, charsmax(response));
new JSON:root_value = json_parse(response);
if (!json_is_array(root_value)) { kick( id, "Usuario invalido"); server_print("Algo ha salido mal! shw login"); json_free(root_value); return; }
new JSON:object; new data[500]; object = json_array_get_value(root_value, 0);
json_object_get_string(object, "fk_id", data, charsmax(data), true); g_id[ id ] = str_to_num(data); json_object_get_string(object, "reset", data, charsmax(data), true); g_reset[ id ] = str_to_num(data); json_object_get_string(object, "Level", data, charsmax(data), true); g_level[ id ] = str_to_num(data); json_object_get_string(object, "points", data, charsmax(data), true); g_points[ id ] = str_to_num(data); json_object_get_string(object, "rango", data, charsmax(data), true); g_rango[ id ] = str_to_num(data); json_object_get_string(object, "experience", data, charsmax(data), true); g_experience[ id ] = str_to_num(data); json_object_get_string(object, "rank", data, charsmax(data), true); g_rank[ id ] = str_to_num(data); json_object_get_string(object, "kills", data, charsmax(data), true); g_kills[ id ] = str_to_num(data); json_object_get_string(object, "deaths", data, charsmax(data), true); g_death[ id ] = str_to_num(data);
json_free(object); json_free(root_value);
updateStatus(id, g_id[ id ], USER_CONNECTED);
func_login_success( id ); } /** * end get login **/
}else{ client_print(id, print_chat, "No se pudo registrar :("); } json_free(object); json_free(root_value);
} public delay(id){ server_print(" delay %d", g_id[ id ]); registerData(id, g_id[ id ], g_reset[ id ], g_level[ id ], g_points[ id ], g_rango[ id ], g_experience[ id ], g_rank[ id ], g_kills[ id ], g_death[ id ]); }
/** * end post user account **/
/** * post user data **/ public registerData( const id, const fk_id, const reset, const level, const points, const rango, const experience, const rank, const kills, const deaths ) { static data[1024], len, url[250]; len = 0; server_print("%d", fk_id); len += formatex(data[len], charsmax(data) - len, "{ ^"fk_id^": %d,", fk_id); len += formatex(data[len], charsmax(data) - len, "^"reset^": %d,", reset); len += formatex(data[len], charsmax(data) - len, "^"Level^": %d,", level); len += formatex(data[len], charsmax(data) - len, "^"points^": %d,", points); len += formatex(data[len], charsmax(data) - len, "^"rango^": %d,", rango); len += formatex(data[len], charsmax(data) - len, "^"experience^": %d,", experience); len += formatex(data[len], charsmax(data) - len, "^"rank^": %d,", rank); len += formatex(data[len], charsmax(data) - len, "^"kills^": %d,", kills); len += formatex(data[len], charsmax(data) - len, "^"deaths^": %d }", deaths); server_print("%s", data); new GripBody:body = grip_body_from_string(data); new GripRequestOptions:options = grip_create_default_options(); grip_options_add_header(options, "Content-Type", "application/json"); grip_options_add_header(options, "User-Agent", "Grip"); formatex(url, charsmax(url), "%s/api_rest_slim_framework-master/public/api/users/new/data/", host); grip_request( url, body, GripRequestTypePost, "reqRegisterData", options, id );
new GripBody:body = grip_body_from_string(data); new GripRequestOptions:options = grip_create_default_options(); grip_options_add_header(options, "Content-Type", "application/json"); grip_options_add_header(options, "User-Agent", "Grip");
grip_request( url, body, GripRequestTypePut, "reqStatus", options, id );
grip_destroy_body(body); grip_destroy_options(options); } public reqStatus( id ){ new GripResponseState:responseState = grip_get_response_state(); if (responseState == GripResponseStateError) { return; }
new GripHTTPStatus:status = grip_get_response_status_code(); if (status != GripHTTPStatusOk) { return; }
new response[1024], txt[1024]; grip_get_response_body_string(response, charsmax(response)); formatex(txt, charsmax(txt), "[%s]", response); new JSON:root_value = json_parse(txt);
if (!json_is_array(root_value)) { kick(id, "No es posible actualizar tu estado"); server_print("Algo ha salido mal! update stats"); json_free(root_value); return; }
new JSON:object; new data[500], value; object = json_array_get_value(root_value, 0); json_object_get_string(object, "msj", data, charsmax(data), true);
new GripBody:body = grip_body_from_string(data); new GripRequestOptions:options = grip_create_default_options(); grip_options_add_header(options, "Content-Type", "application/json"); grip_options_add_header(options, "User-Agent", "Grip");
grip_request( url, body, GripRequestTypePut, "reqDataS", options, id );
grip_destroy_body(body); grip_destroy_options(options); } public reqDataS( id ){ new GripResponseState:responseState = grip_get_response_state(); if (responseState == GripResponseStateError) { return; }
new GripHTTPStatus:status = grip_get_response_status_code(); if (status != GripHTTPStatusOk) { return; }
new response[1024], txt[1024]; grip_get_response_body_string(response, charsmax(response)); formatex(txt, charsmax(txt), "[%s]", response); new JSON:root_value = json_parse(txt);
if (!json_is_array(root_value)) { kick(id, "No es posible actualizar tu estado"); server_print("Algo ha salido mal! Algo ha salido mal! data"); json_free(root_value); return; }
new JSON:object; new data[500]; object = json_array_get_value(root_value, 0); json_object_get_string(object, "msj", data, charsmax(data), true);
public Handler(id, menu, item) { switch (item) { case 0: { client_cmd(id, "messagemode REGISTRE_SU_PASSWORD") client_print(id, print_center, "Elije una password para tu cuenta") } case 1: { client_cmd(id, "messagemode INGRESA_TU_PASSWORD") client_print(id, print_center, "Ingresa la password de tu cuenta") } } menu_destroy(menu) return PLUGIN_HANDLED; }
public message_VGUIMenu( iMsgid, iDest, id ) { if( g_connected[id] == USER_CONNECTED || get_msg_arg_int( 1 ) != 2 ) return PLUGIN_CONTINUE;
return PLUGIN_HANDLED; }
public message_ShowMenu( iMsgid, iDest, id ) { if( g_connected[id] == USER_CONNECTED ) return PLUGIN_CONTINUE;
modulo
lo deje ahi el modulo porque no me dejo adjuntarlo
creditos
Gonza
r0ma
Flys
metita666
tabla
CREATE TABLE Cuentas(
id int primary key auto_increment,
userName varchar(125) not null,
userPassword varchar(125) not null,
lastConection TIMESTAMP,
connected int not null
);
CREATE TABLE dataUser(
id_data int primary key auto_increment,
fk_id int not null,
reset int not null,
Level int not null default '0',
points int not null default '0',
rango int not null default '0',
experience int not null default '0',
rank int not null default '0',
kills int not null,
deaths int not null
);
(04/05/2020, 01:26 PM)Ipolito escribió: Te ayudaria pero hablas en modo simio/uga uga y no entiendo nada de lo que decis
(16/05/2014, 08:22 AM)mongito100 escribió: Esto debería ir en tutoriales para q después un moderador/neeeeeel lo ponga en el tacho
(08/04/2020, 05:10 PM)asgasgasgasgasg escribió: bola de estupidos con retrasomental hijos de la gran puta por que putas ayudan a todo mundo y no a mi pedi un midnight dakness para zp y nadie me lo hizo malditos basuras bastardos tontos estupidos virgenes de mierda no van a conseguri nada tontos mierdaaaaaaaaaaaaaaaaaaaaaaaaaa
(26/07/2020, 12:37 AM)Hypnotize escribió:
(26/07/2020, 07:21 PM)Ricardo01 escribió: Que problema tenés conmigo LA CONCHA DE TU MADRE.... La re mil que te parió te crees porque tenés "47" de recuperación eres todo anda hacerte coger seguramente le pagaste a alguien para que te dé reputación porque eres una basura de persona... Jamás vi una persona tan basura eh ignorante como vos...
(26/07/2020, 08:12 PM)Ricardo01 escribió: SOS pelotuda o te haces me tenés en cosas que nada que ver.... Man no tenes vida? Que estás tan aldp2 que haces todo esto? Busca una novia oh anda a pajearte un rato. Debes ser un gordo con lente que tiene poster de anime de culo virgen de mierda..
(26/07/2020, 08:25 PM)Ricardo01 escribió: Y que tiene? Lo ví me gustó y lo puse aparte? Que problema tenés conmigo si yo no te hice nada.. yo tiro post no es obligación que me ayudes... Nose que carajo te pasa conmigo. De la nada me empezaste a bardear y etc. Si tenés problema con tu familia o tu vida. agarratela con ellos no con gente que no conoces..
(26/07/2020, 11:18 PM)Ricardo01 escribió: Buena te crees porque sabes programar se crees superior pelotudo de mierda. Yo voy a crear todas las cuentas que quieras la concha de tu madre gordo virgen. Anda a mirar porno de anime. Yo te voy a insultar todo lo que quiera pelotudo... Te crees superior y crees que tenés derecho a molestar a otras personas que ni conoces... Aparte que me importa si sabes programa nadie te pide ayuda acá. Son millones no eres el único..
(17/05/2020, 10:37 PM)totopizza escribió: Seria mejor utilizar el módulo de cURL
y si es en amxx 1.8.3 o mayor usar la libreria json
no se si cURL hace peticiones post put y get, yo me fui por ese modulo + json, aunque aclaro que puede haberme omitido esa libreria ya que grip tenia todo aunque no encontre todos los equivalentes entonces deje json xd
(17/05/2020, 09:33 PM)metita escribió: Ingenioso
gracias
(17/05/2020, 09:48 PM)SoundBlaster escribió: Se ve fresco
gracias papi
(17/05/2020, 09:34 PM)Chema escribió: Bonito aporte, tengo que probarlo nunca había visto algo así xD
gracias, aunque no se si use todo de la manera correcta xd
(05/07/2018, 11:09 PM)meTaLiCroSS escribió: Esa es la diferencia, por eso no cualquier mandril puede programar
->>
(24/09/2020, 11:10 PM)☆ LaZy escribió: Te comiste un parentesis e.e
(04/05/2020, 01:26 PM)Ipolito escribió: Te ayudaria pero hablas en modo simio/uga uga y no entiendo nada de lo que decis
(16/05/2014, 08:22 AM)mongito100 escribió: Esto debería ir en tutoriales para q después un moderador/neeeeeel lo ponga en el tacho
(08/04/2020, 05:10 PM)asgasgasgasgasg escribió: bola de estupidos con retrasomental hijos de la gran puta por que putas ayudan a todo mundo y no a mi pedi un midnight dakness para zp y nadie me lo hizo malditos basuras bastardos tontos estupidos virgenes de mierda no van a conseguri nada tontos mierdaaaaaaaaaaaaaaaaaaaaaaaaaa
(26/07/2020, 12:37 AM)Hypnotize escribió:
(26/07/2020, 07:21 PM)Ricardo01 escribió: Que problema tenés conmigo LA CONCHA DE TU MADRE.... La re mil que te parió te crees porque tenés "47" de recuperación eres todo anda hacerte coger seguramente le pagaste a alguien para que te dé reputación porque eres una basura de persona... Jamás vi una persona tan basura eh ignorante como vos...
(26/07/2020, 08:12 PM)Ricardo01 escribió: SOS pelotuda o te haces me tenés en cosas que nada que ver.... Man no tenes vida? Que estás tan aldp2 que haces todo esto? Busca una novia oh anda a pajearte un rato. Debes ser un gordo con lente que tiene poster de anime de culo virgen de mierda..
(26/07/2020, 08:25 PM)Ricardo01 escribió: Y que tiene? Lo ví me gustó y lo puse aparte? Que problema tenés conmigo si yo no te hice nada.. yo tiro post no es obligación que me ayudes... Nose que carajo te pasa conmigo. De la nada me empezaste a bardear y etc. Si tenés problema con tu familia o tu vida. agarratela con ellos no con gente que no conoces..
(26/07/2020, 11:18 PM)Ricardo01 escribió: Buena te crees porque sabes programar se crees superior pelotudo de mierda. Yo voy a crear todas las cuentas que quieras la concha de tu madre gordo virgen. Anda a mirar porno de anime. Yo te voy a insultar todo lo que quiera pelotudo... Te crees superior y crees que tenés derecho a molestar a otras personas que ni conoces... Aparte que me importa si sabes programa nadie te pide ayuda acá. Son millones no eres el único..
(04/05/2020, 01:26 PM)Ipolito escribió: Te ayudaria pero hablas en modo simio/uga uga y no entiendo nada de lo que decis
(16/05/2014, 08:22 AM)mongito100 escribió: Esto debería ir en tutoriales para q después un moderador/neeeeeel lo ponga en el tacho
(08/04/2020, 05:10 PM)asgasgasgasgasg escribió: bola de estupidos con retrasomental hijos de la gran puta por que putas ayudan a todo mundo y no a mi pedi un midnight dakness para zp y nadie me lo hizo malditos basuras bastardos tontos estupidos virgenes de mierda no van a conseguri nada tontos mierdaaaaaaaaaaaaaaaaaaaaaaaaaa
(26/07/2020, 12:37 AM)Hypnotize escribió:
(26/07/2020, 07:21 PM)Ricardo01 escribió: Que problema tenés conmigo LA CONCHA DE TU MADRE.... La re mil que te parió te crees porque tenés "47" de recuperación eres todo anda hacerte coger seguramente le pagaste a alguien para que te dé reputación porque eres una basura de persona... Jamás vi una persona tan basura eh ignorante como vos...
(26/07/2020, 08:12 PM)Ricardo01 escribió: SOS pelotuda o te haces me tenés en cosas que nada que ver.... Man no tenes vida? Que estás tan aldp2 que haces todo esto? Busca una novia oh anda a pajearte un rato. Debes ser un gordo con lente que tiene poster de anime de culo virgen de mierda..
(26/07/2020, 08:25 PM)Ricardo01 escribió: Y que tiene? Lo ví me gustó y lo puse aparte? Que problema tenés conmigo si yo no te hice nada.. yo tiro post no es obligación que me ayudes... Nose que carajo te pasa conmigo. De la nada me empezaste a bardear y etc. Si tenés problema con tu familia o tu vida. agarratela con ellos no con gente que no conoces..
(26/07/2020, 11:18 PM)Ricardo01 escribió: Buena te crees porque sabes programar se crees superior pelotudo de mierda. Yo voy a crear todas las cuentas que quieras la concha de tu madre gordo virgen. Anda a mirar porno de anime. Yo te voy a insultar todo lo que quiera pelotudo... Te crees superior y crees que tenés derecho a molestar a otras personas que ni conoces... Aparte que me importa si sabes programa nadie te pide ayuda acá. Son millones no eres el único..