Raised This Month: $51 Target: $400
 12% 

[Aporte] Registro con MYSQL.


  
 
 
Thread Tools Display Modes
Author Message
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 09-06-2010 , 19:19   [Aporte] Registro con MYSQL.
#1

Bueno tanta gente pide esto y me envian PM y me agregan al msn pidiendome el plug bue de 1 buena ves lo voy a postear...

Primero que nada necesitan 1 servior MYsql luego necesitan la conexion y crear una DB a la db le hacen esta consulta.

PHP Code:
CREATE TABLE `account` (
  `
nickvarchar(32) default NULL,
  `
passwordvarchar(18NOT NULL default '',
  
PRIMARY KEY  (`nick`)
ENGINE=MyISAM DEFAULT CHARSET=latin1
y luego hacen la conexion en el SMA ocea en el plugin poniendo los datos y la db donde se encuentra la tabla account y listo
Es recomendable usar el server MYSQL en la misma PC que tienen el server asi la conexion funciona 127.0.0.1 o localhost .

les dejo el SMA.

ESTA ES VERSION VIEJA::: uTILIZEN EL CODE QUE ESTA ABAJO DE ESTE. UTILIZANDO ESTA VERSION QUE ES LA PRIMERA QUE HICE SEGURAMENTE VAN A TENER BUGS
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <sqlx>

#define PLUGIN "Creacion cuenta + pw"
#define VERSION "0.1"
#define AUTHOR ";SoNNy"

#define AUTO_TEAM_JOIN_DELAY 0.1
#define is_valid_player(%1) (1 <= %1 <= 32)

//#define DisabledChoiseMenu // Sacarle los "//" para desavilitar el uso de la M ocea choseteam.

new bool:Connected[33]
new 
cvar_password_prefijo
/*================================================================================
                [MySQLx Vars, other]
=================================================================================*/
new Handle:g_hTuple;
new 
NickSQL[33]
new 
passwordSQl[33]
new 
mysqlx_hostmysqlx_usermysqlx_dbmysqlx_pass;

/*================================================================================
                [Iniciacion Plugin]
=================================================================================*/
public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
// Comandos en say
    
register_clcmd("ingresar_password""login")
    
register_clcmd("_password""crear_cuenta")
    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
    
#if defined DisabledChoiseMenu
    
register_concmd("chooseteam""cmdtopin")  
    
#endif
    
    // PCVARS
    
cvar_password_prefijo register_cvar("account_password_prefijo""_zw")

    
// Event
    
register_forwardFM_ClientUserInfoChanged"FWClientUserInfoChanged" )
    
register_event("TeamInfo""HookJoinTeam""a""2!UNASSIGNED")
    
    
/*=================================================================================*/
    // SQLx cvars
    
mysqlx_host register_cvar ("reg_host""localhost"); 
    
mysqlx_user register_cvar ("reg_user""usuario"); 
    
mysqlx_pass register_cvar ("reg_pass""pass"); 
    
mysqlx_db   register_cvar ("reg_dbname""Base de datos"); 
    
/*=================================================================================*/
    
MySQLx_Init()
}
/*=================================================================================*/
#if defined DisabledChoiseMenu
public cmdtopin () return PLUGIN_HANDLED  
#endif
/*=================================================================================*/
public client_putinserver(id)
{
    
LoadCuenta(id);
    
Connected[id] = true
}
/*=================================================================================*/
public client_disconnect(id)
{
    
Connected[id] = false
}
/*=================================================================================*/
public FWClientUserInfoChangedIndexBuffer )
{
    if( !
is_user_connectedIndex ) )
        return 
FMRES_IGNORED;
    
    static 
NickName[32], NickOld[32]; get_user_nameIndexNickOld31 )
    
engfuncEngFunc_InfoKeyValueBuffer"name"NickName31 
    
    if( 
equalNickNameNickOld ) )
        return 
FMRES_IGNORED;
    
    
engfuncEngFunc_SetClientKeyValueIndexBuffer"name"NickOld )
    
    
client_cmdIndex"name ^"%s^"; setinfo name ^"%s^""NickOldNickOld )
    
    return 
FMRES_SUPERCEDE;
}  
/*================================================================================
                [MENU Join]
=================================================================================*/
public HookJoinTeam() 

    static 
idid read_data(1)
    
    switch(
CheckCuentaMenu(id))
    {
        case 
0..3:
        {
            if(
Connected[id])
            {
                new 
Menu menu_create("\yMenu de Login/Registro""showMenuLoginReg"
                
menu_additem(Menu"\wLogin"            "1"0
                
menu_additem(Menu"\wRegistrar Cuenta"    "2"0
                 
                
menu_setprop(Menu,MPROP_EXITNAME,"Salir"
                
menu_setprop(MenuMPROP_EXITMEXIT_ALL
                 
                
menu_display(idMenu0
                
Connected[id] = true
            
}
        }

    }
    return 
PLUGIN_HANDLED 

/*=================================================================================*/
public showMenuLoginReg(idMenuitem

    if (
item == MENU_EXIT
    { 
        
menu_destroy(Menu
        return 
PLUGIN_HANDLED 
    

     
    new 
iData[6]; 
    new 
iAccess
    new 
iCallback
    new 
iName[64]; 
    
menu_item_getinfo(MenuitemiAccessiData5iName63iCallback
      
    switch (
str_to_num(iData)) 
    { 
        case 
1
        { 
            
client_cmd(id"messagemode ingresar_password");
            
Connected[id] = false
        

        case 
2
        { 
            
client_cmd(id"messagemode _password");
            
Connected[id] = false
        

    } 
     
    return 
PLUGIN_HANDLED 


/*================================================================================
                [Func Login y Create Cuenta]
=================================================================================*/
public crear_cuenta(id)
{
    

    if(
NickSQL[id])
    {
        
client_print(idprint_chat"La cuenta Ya Existe... Por Favor Inserte el password de su cuenta")
        
client_cmd(id"messagemode ingresar_password");
    }
    else
    {
        new 
say[300]
        
// Obtenemos en un string lo que escribio como password
        
read_args(saycharsmax(say))
        
// Lo preparamos para analizar
        
remove_quotes(say), trim(say)
        
// Si solamente apreto enter lo omitiremos
        
if(equal(say""))
        return 
PLUGIN_HANDLED
        
// Verificamos que la password solo contenga una palabra
        
if(contain(say" ") != -1)
        {
        
client_print(idprint_chat"La contrasenia debe ser 1 (una) palabra")
        return 
PLUGIN_HANDLED
        
}
        
        
copy(passwordSQl[id], charsmax(passwordSQl), say)
        
        new 
prefijo[8]
        
// Guardamos el nick en la variable 'name'
        
get_user_name(idNickSQL[id], charsmax(NickSQL))
        
SaveCuenta(id);
        
        
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
        
client_cmd(id"setinfo %s %s"prefijopasswordSQl[id])
        
client_cmd(id"writecfg config")
        
client_print(idprint_chat"Has sido registrado!. Nick: %s - Password: %s"NickSQL[id], passwordSQl[id])
        
engclient_cmd(id"joinclass""5");
        
Connected[id] = false
        
    
}    
    
    return 
PLUGIN_CONTINUE
}
/*=================================================================================*/
public login(id)
{
    new 
say[300]

    
read_args(saycharsmax(say))
    
remove_quotes(say), trim(say)

    if(
equal(say""))
    return 
PLUGIN_HANDLED

    
if(contain(say" ") != -1)
    {
    
client_print(idprint_chat"La contrasenia debe ser 1 (una) palabra")
    return 
PLUGIN_HANDLED
    
}
    
    new 
password[32]
    
copy(passwordcharsmax(password), say)
    
    new 
name[32], prefijo[8]
    
get_user_name(idnamecharsmax(name))
    
    if(!
NickSQL[id])
    {    
        
// Al no existir, cancelamos
        
client_print(idprint_chat"Debes Registrarte!... Ingresa una Contraseña para registrar nueva cuenta.");
        
client_cmd(id"messagemode _password");
        
Connected[id] = true;
        return 
PLUGIN_HANDLED
    
}
     
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
    
    if(
equali(passwordSQl[id], password)) 
    { 
        
client_print(idprint_chat"* [ZP] Contraseña Aceptada"
        
client_print(idprint_center"Login Exitoso!")
        
client_cmd(id"setinfo ^"%s^" ^"%s^"",prefijo,password)
        
client_cmd(id"writecfg config")
        
engclient_cmd(id"joinclass""5"); 
        
Connected[id] = false;
    } 
    else 
    { 
        
client_cmd(id"messagemode ingresar_password");
        
ChatColor(id"!g[ZP]!y Debe Ingresar su Contraseña para Acceder a su cuenta!"
        
HookJoinTeam();
        
Connected[id] = true;
    } 
    
    return 
PLUGIN_HANDLED
}
/*=================================================================================*/
CheckCuentaMenu(id)
{
    new 
password[32]
    
    
get_datos(idpassword)
    
    if(!
NickSQL[id])
    {    
        
// Al no existir, cancelamos
        
return 0
    
}
    if(
equali(passwordSQl[id], password)) 
    { 
        
engclient_cmd(id"joinclass""5"); 
        
Connected[id] = false;
    } 
    else 
    { 
        
Connected[id] = true;
        return 
2
    


    return 
PLUGIN_HANDLED
}
/*=================================================================================*/
get_datos(id,password[32])
{
    new 
prefijo[8]
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
    
get_user_info(idprefijopasswordcharsmax(password))
}
/*================================================================================
                [Auto Join]
=================================================================================*/
public message_show_menu(msgiddestid
{

    static 
team_select[] = "#Team_Select"
    
static menu_text_code[sizeof team_select]
    
get_msg_arg_string(4menu_text_codesizeof menu_text_code 1)
    if (!
equal(menu_text_codeteam_select))
        return 
PLUGIN_CONTINUE

    set_force_team_join_task
(idmsgid)

    return 
PLUGIN_HANDLED
}
/*=================================================================================*/
set_force_team_join_task(idmenu_msgid)
{
    static 
param_menu_msgid[2]
    
param_menu_msgid[0] = menu_msgid
    set_task
(AUTO_TEAM_JOIN_DELAY"task_force_team_join"idparam_menu_msgidsizeof param_menu_msgid)
}
/*=================================================================================*/
public task_force_team_join(menu_msgid[], id
{
    if (
get_user_team(id))
        return

    
force_team_join(id)
}


/*================================================================================
                [MySQLx]
=================================================================================*/
public MySQLx_Init()
{
    new 
szHost[64], szUser[32], szPass[32], szDB[128];
    
    
get_pcvar_stringmysqlx_hostszHostcharsmaxszHost ) );
    
get_pcvar_stringmysqlx_userszUsercharsmaxszUser ) );
    
get_pcvar_stringmysqlx_passszPasscharsmaxszPass ) );
    
get_pcvar_stringmysqlx_dbszDBcharsmaxszDB ) );
    
    
g_hTuple SQL_MakeDbTupleszHostszUserszPassszDB );
    
}
/*=================================================================================*/
SaveCuenta(id)

    static 
szQuery128 ]; 
    
formatexszQuery127"REPLACE INTO `account` (`nick`, `password`) VALUES ('%s', '%s');"NickSQL[id] , passwordSQl[id] );
    
SQL_ThreadQueryg_hTuple"QuerySetData"szQuery);
}
/*=================================================================================*/

LoadCuenta(id)
{
    static 
szQuery128 ], iData];
    new 
zwname[33]
    
get_user_name(id,zwname,charsmax(zwname))
    
    
formatexszQuery127"SELECT `nick`, `password` FROM `account` WHERE ( `nick` = '%s' );"zwname );  

    
iData] = id;
    
SQL_ThreadQueryg_hTuple"QuerySelectData"szQueryiData);
}
/*=================================================================================*/

public QuerySelectDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError );
        
        return;
    } 
    else 
    { 
        new 
id iData];
        
        new 
ColPass SQL_FieldNameToNum(hQuery"password"
        new 
ColName SQL_FieldNameToNum(hQuery"nick")
        
        while (
SQL_MoreResults(hQuery)) 
        {
            
SQL_ReadResult(hQueryColNameNickSQL[id], charsmax(NickSQL))
            
SQL_ReadResult(hQueryColPasspasswordSQl[id], charsmax(passwordSQl))
            
SQL_NextRow(hQuery)
        }
    } 
}
/*=================================================================================*/
public QuerySetDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError ); 
        
        return;
    } 

/*================================================================================
                [Stocks]
=================================================================================*/
stock force_team_join(id
{
    static 
jointeam[] = "jointeam"
    
engclient_cmd(idjointeam"5")
    return
}
/*=================================================================================*/
stock check_user_name(id, const name[32] = "")
{
    new 
plrname[32]
   
    if(
equal(name""))
    {
        
get_user_name(idplrname31)
    }
    else
    {
        
plrname name
    
}
    
//load_cuentas(id)
}
/*=================================================================================*/
stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
replace_all(msg190"!team2""^0"// Team2 Color
    
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
         for (new 
0counti++)
         {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
         }
         }
     
    }
}
/*=================================================================================*/ 
UPDATE: Le hice una nueva Estructura mucho mas eficiente
Pero Tira Error enconsola...

VER 1.1:
El Error que tira es.
FATAL ERROR (shutting down): MSG_ONE or MSG_ONE_UNRELIABLE with no target entity

Ver 1.2:
Solucionado el problema de MSG_ONE or MSG_ONE_UNRELIABLE with no target entity

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <sqlx>

#define PLUGIN "Creacion cuenta + pw"
#define VERSION "1.2"
#define AUTHOR ";SoNNy"
#define AUTO_TEAM_JOIN_DELAY 0.1

//#define DisabledChoiseMenu // Sacarle los "//" para desavilitar el uso de la M ocea choseteam.

new Connected[33]
new 
cvar_password_prefijo

/*================================================================================
                [MySQLx Vars, other]
=================================================================================*/
new Handle:g_hTuple;
new 
LogeadoUSR[33];
new 
passwordSQl[33];
new 
NickSQL[33];
new 
passwordNEW[32]
new 
mysqlx_hostmysqlx_usermysqlx_dbmysqlx_pass;

/*================================================================================
                [Iniciacion Plugin]
=================================================================================*/
public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
// Comandos en say
    
register_clcmd("ingresar_password""LoadCuenta")
    
register_clcmd("_password""crear_cuenta")
    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
    
#if defined DisabledChoiseMenu
    
register_clcmd("jointeam","cmdtopin")
    
register_clcmd("chooseteam","cmdtopin")
    
#endif
    
    // PCVARS
    
cvar_password_prefijo register_cvar("account_password_prefijo""_twbpw")

    
// Event
    
register_forwardFM_ClientUserInfoChanged"FWClientUserInfoChanged" )
    
//register_event("TeamInfo", "HookJoinTeam", "a", "2!UNASSIGNED")
    
    /*=================================================================================*/
    // SQLx cvars
    
mysqlx_host register_cvar ("gxm_host""127.0.0.1"); 
    
mysqlx_user register_cvar ("gxm_user""user"); 
    
mysqlx_pass register_cvar ("gxm_pass""pass"); 
    
mysqlx_db   register_cvar ("gxm_dbname""dbname"); 
    
/*=================================================================================*/
    
MySQLx_Init()

}
/*=================================================================================*/
#if defined DisabledChoiseMenu
public cmdtopin(id)
{
    static 
Team;
    
Team get_user_team(id)
    
    if (
Team == || Team == 4)
        return 
PLUGIN_HANDLED;
        
    if (
LogeadoUSR[id])
        return 
PLUGIN_CONTINUE;
    
    
HookJoinTeam(id);
    
    return 
PLUGIN_HANDLED_MAIN;
}
#endif    

/*=================================================================================*/
public client_putinserver(id)
{
    
LogeadoUSR[id] = 0;
    
Connected[id] = 0
    passwordSQl
[id] = 0;
    
set_task(0.1"cmdtopin"id)
}
public 
client_connect(id)
{
    
LogeadoUSR[id] = 0;
    
Connected[id] = 0
    passwordSQl
[id] = 0;
    
}
/*=================================================================================*/
public client_disconnect(id)
{
    
Connected[id] = 0
}
/*=================================================================================*/
public FWClientUserInfoChangedIndexBuffer )
{
    if( !
is_user_connectedIndex ) )
        return 
FMRES_IGNORED;
    
    static 
NickName[32], NickOld[32]; get_user_nameIndexNickOld31 )
    
engfuncEngFunc_InfoKeyValueBuffer"name"NickName31 // Si tampoco me confundo, esto obtiene el valor "name" de su setinfo.
    
    
if( equalNickNameNickOld ) )
        return 
FMRES_IGNORED;
    
    
engfuncEngFunc_SetClientKeyValueIndexBuffer"name"NickOld // Le volvemos a poner el nick viejo para que no se lo pueda cambiar.
    
    
client_cmdIndex"name ^"%s^"; setinfo name ^"%s^""NickOldNickOld )
    
    return 
FMRES_SUPERCEDE;
}  
/*================================================================================
                [MENU Join]
=================================================================================*/
public HookJoinTeam(id


    if(!
is_user_connected(id))
        return 
FMRES_IGNORED
    
    
switch(CheckCuentaMenu(id))
    {
        case 
0..3:
        {
            if(!
Connected[id])
            {
                new 
Menu menu_create("\yMenu de Login/Registro""showMenuLoginReg"
                
menu_additem(Menu"\wLogin"            "1"0
                
menu_additem(Menu"\wRegistrar Cuenta"    "2"0
                 
                
menu_setprop(Menu,MPROP_EXITNAME,"Salir"
                
menu_setprop(MenuMPROP_EXITMEXIT_ALL
                 
                
menu_display(idMenu0
            }
        }
    }

    return 
PLUGIN_HANDLED 

/*=================================================================================*/
public showMenuLoginReg(idMenuitem

    if (
item == MENU_EXIT
    { 
        
menu_destroy(Menu
        return 
PLUGIN_HANDLED 
    

     
    new 
iData[6]; 
    new 
iAccess
    new 
iCallback
    new 
iName[64]; 
    
menu_item_getinfo(MenuitemiAccessiData5iName63iCallback
      
    switch (
str_to_num(iData)) 
    { 
        case 
1
        { 
            
client_cmd(id"messagemode ingresar_password");
        } 
        case 
2
        { 
            
client_cmd(id"messagemode _password");
        } 
    } 
     
    return 
PLUGIN_HANDLED 


/*================================================================================
                [Func Login y Create Cuenta]
=================================================================================*/
public crear_cuenta(id)
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED

    
new say[300]
    
// Obtenemos en un string lo que escribio como password
    
read_args(saycharsmax(say))
    
// Lo preparamos para analizar
    
remove_quotes(say), trim(say)
    
// Si solamente apreto enter lo omitiremos
    
if(equal(say""))
    return 
PLUGIN_HANDLED
    
// Verificamos que la password solo contenga una palabra
    
if(contain(say" ") != -1)
    {
        
ChatColor(id"!g[SYSACC]!y La contrasenia debe ser 1 (una) palabra")
        return 
PLUGIN_HANDLED
    
}
    
    
copy(passwordSQl[id], charsmax(passwordSQl), say)
    
    
// Guardamos el nick en la variable 'name'
    
get_user_name(idNickSQL[id], charsmax(NickSQL))
    

    static 
szQuery128 ], iData];
    new 
zwname[33]
    
get_user_name(id,zwname,charsmax(zwname))
    
    
formatexszQuery127"SELECT `nick`, `password` FROM `account` WHERE ( `nick` = '%s' );"zwname );  

    
iData] = id;
    
SQL_ThreadQueryg_hTuple"QuerySelectData2"szQueryiData);
    return 
PLUGIN_HANDLED
}

public 
QuerySelectData2iFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError );
        
        return;
    } 
    else 
    { 
        new 
id iData];
        
        new 
prefijo[8]
        
        if(
SQL_NumResults(hQuery) < 1)
        {
            
get_user_name(idNickSQL[id], charsmax(NickSQL))
            
SaveCuenta(id);
            
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
            
client_cmd(id"setinfo %s %s"prefijopasswordSQl[id])
            
client_cmd(id"writecfg config")
            
ChatColor(id"!g[SYSACC]!y Has sido registrado!. Nick: %s - Password: %s"NickSQL[id], passwordSQl[id])
            
engclient_cmd(id"joinclass""5");
            
Connected[id] = 1
            LogeadoUSR
[id] = 1;
        }
        else
        {
            
ChatColor(id"!g[SYSACC]!y El Usuario ya existe Por favor elija otro O Logeece.")
        }
    } 
}
/*=================================================================================*/

/*=================================================================================*/
CheckCuentaMenu(id)
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
if(!LogeadoUSR[id])
    {    
        
// Al no existir, cancelamos
        
Connected[id] = 0;
        
LogeadoUSR[id] = 0;
        return 
0
    
}
    if(!
Connected[id]) 
    { 
        
Connected[id] = 0;
        
LogeadoUSR[id] = 0;
        return 
2
    


    return 
PLUGIN_HANDLED
}

/*================================================================================
                [Auto Join]
=================================================================================*/
public message_show_menu(msgiddestid
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
static team_select[] = "#Team_Select"
    
static menu_text_code[sizeof team_select]
    
get_msg_arg_string(4menu_text_codesizeof menu_text_code 1)
    if (!
equal(menu_text_codeteam_select))
        return 
PLUGIN_CONTINUE

    set_force_team_join_task
(idmsgid)

    return 
PLUGIN_HANDLED
}
/*=================================================================================*/
set_force_team_join_task(idmenu_msgid)
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
static param_menu_msgid[2]
    
param_menu_msgid[0] = menu_msgid
    set_task
(AUTO_TEAM_JOIN_DELAY"task_force_team_join"idparam_menu_msgidsizeof param_menu_msgid)
    return 
PLUGIN_HANDLED;
}
/*=================================================================================*/
public task_force_team_join(menu_msgid[], id
{
    if (
get_user_team(id))
        return 

    
force_team_join(id)
}


/*================================================================================
                [MySQLx]
=================================================================================*/
public MySQLx_Init()
{
    new 
szHost[64], szUser[32], szPass[32], szDB[128];
    
    
get_pcvar_stringmysqlx_hostszHostcharsmaxszHost ) );
    
get_pcvar_stringmysqlx_userszUsercharsmaxszUser ) );
    
get_pcvar_stringmysqlx_passszPasscharsmaxszPass ) );
    
get_pcvar_stringmysqlx_dbszDBcharsmaxszDB ) );
    
    
g_hTuple SQL_MakeDbTupleszHostszUserszPassszDB );
    
}
/*=================================================================================*/
SaveCuenta(id)

    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
static szQuery128 ]; 
    
formatexszQuery127"REPLACE INTO `account` (`nick`, `password`) VALUES ('%s', '%s');"NickSQL[id] , passwordSQl[id] );
    
SQL_ThreadQueryg_hTuple"QuerySetData"szQuery);
    
    return 
PLUGIN_HANDLED;
}
/*=================================================================================*/

public LoadCuenta(id)
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
new say[300]

    
read_args(saycharsmax(say))
    
remove_quotes(say), trim(say)

    if(
equal(say""))
    return 
PLUGIN_HANDLED

    
if(contain(say" ") != -1)
    {
        
ChatColor(id"!g[SYSACC]!y La contrasenia debe ser 1 (una) palabra")
        return 
PLUGIN_HANDLED
    
}
    
    
copy(passwordNEW[id], charsmax(passwordNEW), say)
    
    static 
szQuery128 ], iData];
    new 
zwname[33]
    
get_user_name(id,zwname,charsmax(zwname))
    
    
formatexszQuery127"SELECT `nick`, `password` FROM `account` WHERE ( `nick` = '%s' );"zwname );  

    
iData] = id;
    
SQL_ThreadQueryg_hTuple"QuerySelectData"szQueryiData);
    return 
PLUGIN_HANDLED
    
}
/*=================================================================================*/

public QuerySelectDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    
    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError );
        
        return 
PLUGIN_HANDLED;
    } 
    else 
    { 
        new 
id iData];
        
        if(!
is_user_connected(id))
            return 
PLUGIN_HANDLED;
        
        new 
password2SQL[32];
        new 
ColPass SQL_FieldNameToNum(hQuery"password"
        
        new 
name[32], prefijo[8]
        
get_user_name(idnamecharsmax(name))
        
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
        
        
    
        if(
SQL_NumResults(hQuery) > 0)
        {
            
SQL_ReadResult(hQueryColPasspassword2SQLcharsmax(password2SQL))
            
//copy(passwordSQl[id], charsmax(passwordSQl), password2SQL)
            
            
            
if(equali(password2SQLpasswordNEW[id])) 
            { 
                
ChatColor(id"!g[SYSACC]!y Contrasenia Aceptada"
                
client_print(idprint_center"Login Exitoso!")
                
client_cmd(id"setinfo ^"%s^" ^"%s^"",prefijo,password2SQL)
                
client_cmd(id"writecfg config")
                
engclient_cmd(id"joinclass""5"); 
                
Connected[id] = 1;
                
LogeadoUSR[id] = 1;
            } 
            else 
            { 
                
client_cmd(id"messagemode ingresar_password");
                
ChatColor(id"!g[SYSACC]!y Contraseña Incorrecta. Escriba nuevamente su contraseña"
                
Connected[id] = 0;
                
LogeadoUSR[id] = 0;
                
HookJoinTeam(id);
            } 
            
        }
        else
        {
            
// Al no existir, cancelamos
            
ChatColor(id"!g[SYSACC]!y La cuenta !team NO EXISTE!y Debes Registrarte!... Ingresa una Contrasenia para registrar nueva cuenta.");
            
client_cmd(id"messagemode _password");
            
LogeadoUSR[id] = 0;
        }
    } 
    return 
PLUGIN_HANDLED;
}
/*=================================================================================*/
public QuerySetDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    
    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError ); 
        return;
    } 


/*================================================================================
                [Stocks]
=================================================================================*/
stock force_team_join(id
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
static jointeam[] = "jointeam"
    
engclient_cmd(idjointeam"5")
    
HookJoinTeam(id
    
    return 
PLUGIN_HANDLED;
}
/*=================================================================================*/
stock check_user_name(id, const name[32] = "")
{
    new 
plrname[32]
   
    if(
equal(name""))
    {
        
get_user_name(idplrname31)
    }
    else
    {
        
plrname name
    
}
    
//load_cuentas(id)
}
/*=================================================================================*/
stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
replace_all(msg190"!team2""^0"// Team2 Color
    
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
         for (new 
0counti++)
         {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
         }
         }
     
    }
}
/*=================================================================================*/ 
Datos a modificar en el SMA.
PHP Code:
 /*=================================================================================*/ 
    // SQLx cvars 
    
mysqlx_host register_cvar ("reg_host""localhost");  
    
mysqlx_user register_cvar ("reg_user""usuario");  
    
mysqlx_pass register_cvar ("reg_pass""pass");  
    
mysqlx_db   register_cvar ("reg_dbname""Base de datos");  
    
/*=================================================================================*/ 
Voy a dejar en claro que dice #define AUTHOR ";SoNNy"

Si dice eso porque yo soy Sonny p4rp4d30 = Sonny todos me conocen como Sonny p4rp4d30 es la cuenta con que me registro en cualquier web y cuando me registre en alliedmoder para ver algunas cosas me registre como esa y despues n me tomaron el cambio de nick a sonny xD
en fin

Ademas dice Author sonny Porque si bien el Codigo esta basado en otros registros que ahi por los tutoriales esta basado pero esta 100% modificado por mi a mi gusto lo cual es por eso que el Author dice Sonny... Yo tube que buscar todo lo que esta echo en este plugin asi que por favor si utilizan esto en su server Los creditos se los agradeceria si quieren modificar y hacer lo que quieran estan perfecto pero cuando tienen que dar una info del tema mandelos a este post asi concervamos el derecho de autor original.

Bue cualquier cosa que no entiendan o etc escriben aca y los ayudare.

PD: Aclaro de nuevo que el Plugin este esta echo por mi si bien todos nos basamos en 1 plugin para poder crea otro ya que seria al pedo crear uno desde 0 para que crear 1 desde 0 si tenes ya 1 echo y te basas en ese mas facil menos tiempo en hacer lo que qures hacer.

Otra cosa aclarar no es un tutorial pero si algo no entienden yo explicare ES RECOMENDABLE que lean Tutoriales sobre MYSQL despues meten ese conocimiento en PAWN pero siempre aprendan lo basico que necesitan saber como crear tablas, Modificar una tabla con 1 consulta , Borrar registros y etc

Si alguien tiene ideas quieren compartirlas basandoce en este codigo bienvenido sea.

PD2: Evitemos cualquier tipo de Spam o boludeces que se puedan llegar a hacer 1 reply... Solamente posteen cuando tengan dudas, Sugerencias y etc.

Saludos

Last edited by p4rp4d30; 06-03-2011 at 22:13.
p4rp4d30 is offline
S34Qu4K3
Veteran Member
Join Date: Jan 2010
Location: Galicia
Old 09-06-2010 , 19:28   Re: [ES][Aporte] Registro con MYSQL.
#2

Se agradece bastante ^^
__________________

- ASM2SMA: Experimental AMXX Assembly encoder

- Defuse Bar Fix

Quote:
Originally Posted by Arkshine
I DON'T WANT TO SEE NOOOOOOOOOOOOOOO AHHHHH. MY EYES ARE ALREADY HURT.
S34Qu4K3 is offline
Calaverazo
Senior Member
Join Date: Dec 2009
Old 09-06-2010 , 19:44   Re: [ES][Aporte] Registro con MYSQL.
#3

gracias capo excelente aporte me va a servir
Calaverazo is offline
Luchoo.MC
Member
Join Date: Aug 2010
Location: Almirante Brown
Old 09-06-2010 , 19:52   Re: [ES][Aporte] Registro con MYSQL.
#4

Muchas Gracias, me va a servir bastante.
Luchoo.MC is offline
Send a message via MSN to Luchoo.MC
gladius
Veteran Member
Join Date: Jul 2008
Location: Santiago, Chile
Old 09-06-2010 , 19:53   Re: [ES][Aporte] Registro con MYSQL.
#5

no es por mala onda, pero ahora habran 20000 thread pidiendo ayuda para ponerlo en su zp o diciendo que les tira error o que su db no funciona
__________________
Proyects
Kreedz Chile Mod [100%] (Fixing some details).

gladius is offline
Send a message via MSN to gladius Send a message via Skype™ to gladius
Raddish
BANNED
Join Date: Jul 2008
Location: Argentina
Old 09-06-2010 , 19:54   Re: [ES][Aporte] Registro con MYSQL.
#6

De donde lo sacaste?
Raddish is offline
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 09-06-2010 , 19:59   Re: [ES][Aporte] Registro con MYSQL.
#7

Te puse 5 estrellas xd (Y)
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
Ciio
Veteran Member
Join Date: Oct 2009
Location: Arica, Chile
Old 09-06-2010 , 20:07   Re: [ES][Aporte] Registro con MYSQL.
#8

Muchas gracias, servira mucho a todos... emm quita el "aporte" porque o si no te molestaran.. ponlo asi : [es] Aporte : Registro MySQL
__________________
Ciio is offline
Send a message via MSN to Ciio
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 09-06-2010 , 20:09   Re: [ES][Aporte] Registro con MYSQL.
#9

Quote:
CREATE TABLE `account` (
`nick` varchar(255) default NULL,
`password` varchar(255) NOT NULL default '',
PRIMARY KEY (`password`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
WTF como va a ser el password el primary key o.o
01101101 is offline
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 09-06-2010 , 20:22   Re: [ES][Aporte] Registro con MYSQL.
#10

Quote:
Originally Posted by 01101101 View Post
WTF como va a ser el password el primary key o.o
Si me re olvide pasa que antes avia creado la tabla con solamente password despues le agrege el nick y ya por default avia puesto en Key que sea la pass xD

ahora lo cambio

Raddish

Yo lo hice busque recompile informacion, edite a mi gusto y lo hice lo que todos deverian hacer pero bue se los dejo aca el que hice yo.

La ayuda sobre este tema Van a pedirlas aca que no hagan Post nuevos sobre esto... Si se ve un post preguntand osobre este plugin se borrara y se le dara 1 advertencia.

Si necesitan ayuda pidanlo aca.

saludos

Last edited by p4rp4d30; 09-06-2010 at 20:27.
p4rp4d30 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:22.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode