Sistema de Cuentas Por Grip
#1
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  Roflmao (nq te lo dedico pacman)


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 
motdTop3500 ];
new 
bool:bTop false;

new 
g_id33 ];
new 
g_reset33 ];
new 
g_level33 ];
new 
g_points33 ];
new 
g_rango33 ];
new 
g_experience33 ];
new 
g_rank33 ];
new 
g_kills33 ];
new 
g_death33 ];
new 
g_connected33 ];
new 
g_register33 ];

new 
g_playername33 ][ 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(PLUGINVERSIONAUTHOR);
 
register_messageget_user_msgid"ShowMenu" ), "message_ShowMenu" );
 
register_messageget_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_killsid ] = 100;
 
client_print(idprint_chat"%d"g_killsid ])
 
updateData(idg_idid ], g_resetid ], g_levelid ], g_pointsid ], g_rangoid ], g_experienceid ], g_rankid ], g_killsid ], g_deathid ]);
}

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_putinserverid ){
 
get_user_name(idg_playernameid ], charsmaxg_playername[ ] ));
 
 
isRegister(idg_playernameid ]);
 
 
g_idid ] = 0;
 
g_resetid ] = 0;
 
g_levelid ] = 1;
 
g_pointsid ] = 0;
 
g_rangoid ] = 0;
 
g_experienceid ] = 0;
 
g_rankid ] = 0;
 
g_killsid ] = 0;
 
g_connectedid ] = 0;
 
g_deathid ] = 0;
 
g_registerid ] = USER_NOT_REGISTER;
 
 
set_task(0.3"show_menu_registro"id);
}
public 
client_disconnected(id){
 if(
g_registerid ] == USER_REGISTER)
 {
 
updateData(idg_idid ], g_resetid ], g_levelid ], g_pointsid ], g_rangoid ], g_experienceid ], g_rankid ], g_killsid ], g_deathid ]);
 
updateStatus(idg_idid ], USER_DISCONNECTED);
 }
}

public 
clcmd_changeteamid ) {
    if( g_connected[id] != USER_CONNECTED ) {
        show_menu_registroid );
        return PLUGIN_HANDLED;
    }
    
    
return PLUGIN_HANDLED;
}


public 
reg_password(id)
{
 if(
g_registerid ] == USER_REGISTER || g_registerid ] == USER_ERROR
 return;
 
 static 
password[192]; read_args(password191);
 
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 maltop");
 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^"ArialHelveticasans-serif;\
 
border-collapsecollapse;\
 
width100%;\
 
margin0 auto;\
 }\
 
#customers td, #customers th {\
 
border1px solid #ddd;\
 
padding8px 55px;\
 }\
 
#customers tr:nth-child(even){background-color: #f2f2f2;}\
 #customers tr:hover {background-color: #ddd;}\
 #customers th {\
 
padding-top12px;\
 
padding-bottom12px;\
 
text-alignleft;\
 
background-color#4CAF50;\
 
colorwhite;\
 }\
 </
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 malshw 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^": %}", 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 malreg1");
 return;
 }
 
 new GripHTTPStatus:status = grip_get_response_status_code();
 if (status != GripHTTPStatusOk) {
 server_print("
Algo ha salido malreg2");
 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 malreg 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^": %}", 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^": %}", 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 malupdate 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, "
%- %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^": %}", 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 malAlgo ha salido maldata");
 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;

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
);


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
}






Archivos adjuntos
.rar   api_rest_slim_framework-master.rar (Tamaño: 253.83 KB / Descargas: 19)
.sma   Descargar AMXX / plugin.sma (Tamaño: 21.91 KB / Descargas: 18)
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#2
Ingenioso Proud
Responder
#3
Bonito aporte, tengo que probarlo nunca había visto algo así xD
Responder
#4
Se ve fresco Fap
Responder
#5
Seria mejor utilizar el módulo de cURL  Insecure
[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
#6
(17/05/2020, 10:37 PM)totopizza escribió: Seria mejor utilizar el módulo de cURL  Insecure
y si es en amxx 1.8.3 o mayor usar la libreria json  Nothingdohere

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 Proud

gracias
(17/05/2020, 09:48 PM)SoundBlaster escribió: Se ve fresco Fap

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
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#7
(17/05/2020, 09:34 PM)Chema escribió: Bonito aporte, tengo que probarlo nunca había visto algo así xD

Responder
#8
felicidades por terminarlo!
[Imagen: 76561198090851442.png]
Responder
#9
Thnx
(18/05/2020, 12:11 AM)PredatorFlys escribió: felicidades por terminarlo!

Gracias por darme donde probarlo!
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)