17/05/2020, 09:26 PM
(Última modificación: 21/05/2020, 09:32 PM por Hinami. 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.
requerimientos
código
modulo
lo deje ahi el modulo porque no me dejo adjuntarlo
creditos
Gonza
r0ma
Flys
metita666
tabla
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.
requerimientos
- webhosting
- phpmyadmin
- modulo grip
- amx 1.9.0
código
Código PHP:
#include <amxmodx>
#include <grip>
#include <json>
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 ];
new g_playername[ 33 ][ 32 ];
const USER_CONNECTED = 1;
const USER_DISCONNECTED = 0;
const USER_ERROR = -1;
const USER_NOT_REGISTER = 0;
const USER_REGISTER = 1;
new const host[] = "http://divstarproject.com";
public plugin_init( ) {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_message( get_user_msgid( "ShowMenu" ), "message_ShowMenu" );
register_message( get_user_msgid( "VGUIMenu" ), "message_VGUIMenu" );
register_clcmd("chooseteam", "clcmd_changeteam");
register_clcmd("jointeam", "clcmd_changeteam");
register_clcmd("REGISTRE_SU_PASSWORD", "reg_password");
register_clcmd("INGRESA_TU_PASSWORD", "log_password");
register_clcmd("say /top8", "showTop8");
register_clcmd("say top8", "showTop8");
//register_clcmd("say test", "testv");
getTop( );
}
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 plugin_natives()
{
register_native("my_id", "native_fkId", 1);
register_native("my_reset", "native_level", 1);
register_native("my_level", "native_reset", 1);
register_native("my_points", "native_points", 1);
register_native("my_rango", "native_rango", 1);
register_native("my_experience", "native_experience", 1);
register_native("my_rank", "native_rank", 1);
register_native("my_kills", "native_kills", 1);
register_native("my_deaths", "native_death", 1);
register_native("my_connected", "native_connected", 1);
register_native("is_register", "native_register", 1);
}
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;
static password[192]; read_args(password, 191);
remove_quotes(password); trim(password);
if(containi(password, "^"") != -1)
{
client_print(id, print_center, "No puedes usar comillas");
client_cmd(id, "messagemode REGISTRE_SU_PASSWORD");
return;
}
static name[33]; get_user_name(id, name, 32);
registerUser(id, name, password, USER_DISCONNECTED);
}
public log_password(id)
{
if(g_register[ id ] == USER_NOT_REGISTER || g_register[ id ] == USER_ERROR)
return;
static password[192]; read_args(password, 191);
remove_quotes(password); trim(password);
static name[33]; get_user_name(id, name, 32);
showLogin(id, name, password);
}
public showTop8( id ){
if(!bTop)
return;
show_motd( id, motdTop, "[ AMXX ] Top8." );
}
/**
* get top15
**/
public getTop( ){
bTop = false;
new url[250];
formatex(url, charsmax(url), "%s/api_rest_slim_framework-master/public/api/users", host);
grip_request(
url,
Empty_GripBody,
GripRequestTypeGet,
"reqTop"
);
}
public reqTop( ){
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);
//json_array_get_count
if (!json_is_array(root_value))
{
server_print("Algo ha salido mal! top");
json_free(root_value);
return;
}
new JSON:object;
new data[500];
static val; val = json_array_get_count(root_value);
static len; len = 0;
len += formatex(motdTop[len], charsmax(motdTop)- len,
"<body>\
<style>\
#customers {\
font-family: ^"Trebuchet MS^", Arial, Helvetica, sans-serif;\
border-collapse: collapse;\
width: 100%;\
margin: 0 auto;\
}\
#customers td, #customers th {\
border: 1px solid #ddd;\
padding: 8px 55px;\
}\
#customers tr:nth-child(even){background-color: #f2f2f2;}\
#customers tr:hover {background-color: #ddd;}\
#customers th {\
padding-top: 12px;\
padding-bottom: 12px;\
text-align: left;\
background-color: #4CAF50;\
color: white;\
}\
</style><table id=customers>\
" );
len += formatex( motdTop[len], charsmax(motdTop)- len, "<tr>\
<th>Name</th>\
<th>Reset</th>\
<th>Level</th>\
<th>Experience</th>\
</tr>\
");
for(new i = 0; i < val; ++i){
object = json_array_get_value(root_value, i);
len += formatex( motdTop[len], charsmax(motdTop)- len, "<tr>");
json_object_get_string(object, "userName", data, charsmax(data), true);
len += formatex( motdTop[len], charsmax(motdTop)- len, "<td>%s</td>", data);
json_object_get_string(object, "reset", data, charsmax(data), true);
len += formatex( motdTop[len], charsmax(motdTop)- len, "<td>%s</td>", data);
json_object_get_string(object, "Level", data, charsmax(data), true);
len += formatex( motdTop[len], charsmax(motdTop)- len, "<td>%s</td>", data);
json_object_get_string(object, "experience", data, charsmax(data), true);
len += formatex( motdTop[len], charsmax(motdTop)- len, "<td>%s</td>", data);
len += formatex( motdTop[len], charsmax(motdTop)- len, "</tr>");
}
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
**/
public func_login_success( id ) {
engclient_cmd( id, "jointeam", "5" );
engclient_cmd( id, "joinclass", "5" );
g_connected[ id ] = 1;
}
/**
* post user account
**/
public registerUser( id, name[], password[], connected ) {
static data[1024], len, url[250];
len = 0;
len += formatex(data[len], charsmax(data) - len, "{ ^"userName^": ^"%s^",", name);
len += formatex(data[len], charsmax(data) - len, "^"userPassword^": ^"%s^",", password);
len += formatex(data[len], charsmax(data) - len, "^"lastConection^": null,");
len += formatex(data[len], charsmax(data) - len, "^"connected^": %d }", connected);
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/user/", host);
grip_request(
url,
body,
GripRequestTypePost,
"reqRegisterUser",
options,
id
);
grip_destroy_body(body);
grip_destroy_options(options);
}
public reqRegisterUser( id ) {
new GripResponseState:responseState = grip_get_response_state();
if (responseState == GripResponseStateError) {
server_print("Algo ha salido mal! reg1");
return;
}
new GripHTTPStatus:status = grip_get_response_status_code();
if (status != GripHTTPStatusOk) {
server_print("Algo ha salido mal! reg2");
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))
{
server_print("Algo ha salido mal! reg no array");
json_free(root_value);
return;
}
new JSON:object;
new data[200];
object = json_array_get_value(root_value, 0);
json_object_get_string(object, "msj", data, charsmax(data), true);
if( equal(data, "User registrado correctamente") )
{
client_print(id, print_chat, "Registrado correctamente!");
isRegister(id, g_playername[ id ]);
set_task(0.5, "delay", id);
}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
);
grip_destroy_body(body);
grip_destroy_options(options);
}
public reqRegisterData( 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);
server_print("%s", txt);
new JSON:root_value = json_parse(txt);
if (!json_is_array(root_value))
{
json_free(root_value);
return;
}
new JSON:object;
new data[200];
object = json_array_get_value(root_value, 0);
json_object_get_string(object, "msj", data, charsmax(data), true);
if( equal(data, "datos registrados correctamente") )
{
server_print("se inserto xd");
set_task(0.3, "show_menu_registro", id);
g_register[ id ] = USER_REGISTER;
}
json_free(object);
json_free(root_value);
}
/**
* end post user data
**/
/**
* update status
**/
public updateStatus( id, fk_id, connected ){
static data[500], url[350], len;
len = 0;
len += formatex(data[len], charsmax(data) - len, "{ ^"connected^": %d }", connected);
formatex(url, charsmax(url), "%s/api_rest_slim_framework-master/public/api/users/conected/%d", host, fk_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);
if(equal(data, "Usuario conectado actualizado/correctamente")){
json_object_get_string(object, "connected", data, charsmax(data), true);
value = str_to_num(data);
g_connected[ id ] = value;
client_print(id, print_chat, "%s - %d", data, g_connected[ id ]);
}
server_print("stado player");
json_free(object);
json_free(root_value);
}
/**
* end update status
**/
/**
* update status
**/
public updateData( const id, const id_fk, const reset, const level, const points, const rango, const experience, const rank, const kills, const deaths ){
static data[1024], url[500];
new len = 0;
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^": 1,", 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);
formatex(url, charsmax(url), "%s/api_rest_slim_framework-master/public/api/users/updateData/%d", host, id_fk );
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);
if(equal(data, "datos actualizados correctamente")){
client_print(id, print_chat, "%s", data);
}
json_free(object);
json_free(root_value);
}
/**
* end update status
**/
public native_fkId(id)
return g_id[ id ];
public native_level(id)
return g_level[ id ];
public native_reset(id)
return g_reset[ id ];
public native_points(id)
return g_points[ id ];
public native_rango(id)
return g_rango[ id ];
public native_experience(id)
return g_experience[ id ];
public native_rank(id)
return g_rank[ id ];
public native_kills(id)
return g_kills[ id ];
public native_death(id)
return g_death[ id ];
public native_connected(id)
return g_connected[ id ];
public native_register(id)
return g_register[ id ];
stock kick(id,arg[])
{
emessage_begin(MSG_ONE, SVC_DISCONNECT, _, id)
ewrite_string( arg )
emessage_end()
return 0;
}
public show_menu_registro(id)
{
if (g_connected[id] == USER_CONNECTED)
return PLUGIN_CONTINUE;
new menu = menu_create("Menu de registro", "Handler");
menu_additem(menu, "Registrarse", _, _, menu_makecallback("callback"))
menu_additem(menu, "Loguearse", _, _, menu_makecallback("callback"))
menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public callback(id, menu, item)
{
switch (item)
{
case 0: if(g_register[id] == USER_REGISTER || g_register[id] == USER_ERROR) return ITEM_DISABLED;
case 1: if(g_register[id] == USER_NOT_REGISTER || g_register[id] == USER_ERROR) return ITEM_DISABLED;
}
return ITEM_ENABLED;
}
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;
static sMenuCode[ 33 ];
get_msg_arg_string( 4, sMenuCode, charsmax( sMenuCode ) );
if( containi( sMenuCode, "Team_Select" ) != -1 ) {
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
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
);
post
{
"fk_id": 22,
"reset": 1552,
"Level": 52,
"points": 1152,
"rango": 52,
"experience": 400,
"rank": 102,
"kills": 1002,
"deaths": 4002
}
{
"userName": "Chris",
"userPassword": "123456",
"lastConection": "1 enero 2020",
"connected": 1
}
put
{
"reset": 1552,
"Level": 52,
"points": 1152,
"rango": 52,
"experience": 400,
"rank": 102,
"kills": 1002,
"deaths": 4002
}
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
);
post
{
"fk_id": 22,
"reset": 1552,
"Level": 52,
"points": 1152,
"rango": 52,
"experience": 400,
"rank": 102,
"kills": 1002,
"deaths": 4002
}
{
"userName": "Chris",
"userPassword": "123456",
"lastConection": "1 enero 2020",
"connected": 1
}
put
{
"reset": 1552,
"Level": 52,
"points": 1152,
"rango": 52,
"experience": 400,
"rank": 102,
"kills": 1002,
"deaths": 4002
}