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: 5)
.sma   Descargar AMXX / plugin.sma (Tamaño: 21.91 KB / Descargas: 6)
Quieres rentar un servidor en USA o BRASIL, envíame un Mensaje Privado.
Envía mensaje privado si vas a pagar por el servicio.
[Imagen: b_350_20_323957_202743_f19a15_111111.png]
[Imagen: b_350_20_5a6c3e_383f2d_d2e1b5_2e3226.png]
[Imagen: 76561198283253977.png]
(05/07/2018, 11:09 PM)meTaLiCroSS escribió: Esa es la diferencia, por eso no cualquier mandril puede programar
(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ó: [Imagen: xdxd.png]


(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..



Responder
#2
Ingenioso Proud
[Imagen: ZPChileOficial.png]

[Imagen: b_350_20_323957_202743_f19a15_111111.png]
Zombie Plague Chile

Discord AMXX: Click URL invitación
Venta Jailbreak: Click aca
Responder
#3
Bonito aporte, tengo que probarlo nunca había visto algo así xD
No contesto mensajes de soporte. Pregunta en los foros.
Si buscas algún trabajo privado, envíame un MP.
www.BELIALGAMING.net
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
Quieres rentar un servidor en USA o BRASIL, envíame un Mensaje Privado.
Envía mensaje privado si vas a pagar por el servicio.
[Imagen: b_350_20_323957_202743_f19a15_111111.png]
[Imagen: b_350_20_5a6c3e_383f2d_d2e1b5_2e3226.png]
[Imagen: 76561198283253977.png]
(05/07/2018, 11:09 PM)meTaLiCroSS escribió: Esa es la diferencia, por eso no cualquier mandril puede programar
(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ó: [Imagen: xdxd.png]


(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..



Responder
#7
(17/05/2020, 09:34 PM)Chema escribió: Bonito aporte, tengo que probarlo nunca había visto algo así xD
[Imagen: 76561198095047868.png]
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!
Quieres rentar un servidor en USA o BRASIL, envíame un Mensaje Privado.
Envía mensaje privado si vas a pagar por el servicio.
[Imagen: b_350_20_323957_202743_f19a15_111111.png]
[Imagen: b_350_20_5a6c3e_383f2d_d2e1b5_2e3226.png]
[Imagen: 76561198283253977.png]
(05/07/2018, 11:09 PM)meTaLiCroSS escribió: Esa es la diferencia, por eso no cualquier mandril puede programar
(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ó: [Imagen: xdxd.png]


(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..



Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)