Veteran Member
|
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` ( `nick` varchar(32) default NULL, `password` varchar(18) NOT 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_host, mysqlx_user, mysqlx_db, mysqlx_pass;
/*================================================================================ [Iniciacion Plugin] =================================================================================*/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR)
// 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_forward( FM_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 FWClientUserInfoChanged( Index, Buffer ) { if( !is_user_connected( Index ) ) return FMRES_IGNORED; static NickName[32], NickOld[32]; get_user_name( Index, NickOld, 31 ) engfunc( EngFunc_InfoKeyValue, Buffer, "name", NickName, 31 ) if( equal( NickName, NickOld ) ) return FMRES_IGNORED; engfunc( EngFunc_SetClientKeyValue, Index, Buffer, "name", NickOld ) client_cmd( Index, "name ^"%s^"; setinfo name ^"%s^"", NickOld, NickOld ) return FMRES_SUPERCEDE; } /*================================================================================ [MENU Join] =================================================================================*/ public HookJoinTeam() { static id; id = 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(Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, Menu, 0) Connected[id] = true } }
} return PLUGIN_HANDLED } /*=================================================================================*/ public showMenuLoginReg(id, Menu, item) { if (item == MENU_EXIT) { menu_destroy(Menu) return PLUGIN_HANDLED } new iData[6]; new iAccess; new iCallback; new iName[64]; menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback) 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(id, print_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(say, charsmax(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(id, print_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(id, NickSQL[id], charsmax(NickSQL)) SaveCuenta(id); get_pcvar_string(cvar_password_prefijo, prefijo, charsmax(prefijo)) client_cmd(id, "setinfo %s %s", prefijo, passwordSQl[id]) client_cmd(id, "writecfg config") client_print(id, print_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(say, charsmax(say)) remove_quotes(say), trim(say)
if(equal(say, "")) return PLUGIN_HANDLED
if(contain(say, " ") != -1) { client_print(id, print_chat, "La contrasenia debe ser 1 (una) palabra") return PLUGIN_HANDLED } new password[32] copy(password, charsmax(password), say) new name[32], prefijo[8] get_user_name(id, name, charsmax(name)) if(!NickSQL[id]) { // Al no existir, cancelamos client_print(id, print_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_prefijo, prefijo, charsmax(prefijo)) if(equali(passwordSQl[id], password)) { client_print(id, print_chat, "* [ZP] Contraseña Aceptada") client_print(id, print_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(id, password) 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_prefijo, prefijo, charsmax(prefijo)) get_user_info(id, prefijo, password, charsmax(password)) } /*================================================================================ [Auto Join] =================================================================================*/ public message_show_menu(msgid, dest, id) {
static team_select[] = "#Team_Select" static menu_text_code[sizeof team_select] get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1) if (!equal(menu_text_code, team_select)) return PLUGIN_CONTINUE
set_force_team_join_task(id, msgid)
return PLUGIN_HANDLED } /*=================================================================================*/ set_force_team_join_task(id, menu_msgid) { static param_menu_msgid[2] param_menu_msgid[0] = menu_msgid set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof 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_string( mysqlx_host, szHost, charsmax( szHost ) ); get_pcvar_string( mysqlx_user, szUser, charsmax( szUser ) ); get_pcvar_string( mysqlx_pass, szPass, charsmax( szPass ) ); get_pcvar_string( mysqlx_db, szDB, charsmax( szDB ) ); g_hTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB ); } /*=================================================================================*/ SaveCuenta(id) { static szQuery[ 128 ]; formatex( szQuery, 127, "REPLACE INTO `account` (`nick`, `password`) VALUES ('%s', '%s');", NickSQL[id] , passwordSQl[id] ); SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery); } /*=================================================================================*/
LoadCuenta(id) { static szQuery[ 128 ], iData[ 1 ]; new zwname[33] get_user_name(id,zwname,charsmax(zwname)) formatex( szQuery, 127, "SELECT `nick`, `password` FROM `account` WHERE ( `nick` = '%s' );", zwname );
iData[ 0 ] = id; SQL_ThreadQuery( g_hTuple, "QuerySelectData", szQuery, iData, 1 ); } /*=================================================================================*/
public QuerySelectData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if( iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED ) { log_amx( "%s", szError ); return; } else { new id = iData[ 0 ]; new ColPass = SQL_FieldNameToNum(hQuery, "password") new ColName = SQL_FieldNameToNum(hQuery, "nick") while (SQL_MoreResults(hQuery)) { SQL_ReadResult(hQuery, ColName, NickSQL[id], charsmax(NickSQL)) SQL_ReadResult(hQuery, ColPass, passwordSQl[id], charsmax(passwordSQl)) SQL_NextRow(hQuery) } } } /*=================================================================================*/ public QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float: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(id, jointeam, "5") return } /*=================================================================================*/ stock check_user_name(id, const name[32] = "") { new plrname[32] if(equal(name, "")) { get_user_name(id, plrname, 31) } else { plrname = name } //load_cuentas(id) } /*=================================================================================*/ stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y", "^1") // Default Color replace_all(msg, 190, "!team", "^3") // Team Color replace_all(msg, 190, "!team2", "^0") // Team2 Color if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_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_host, mysqlx_user, mysqlx_db, mysqlx_pass;
/*================================================================================ [Iniciacion Plugin] =================================================================================*/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR)
// 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_forward( FM_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 == 3 || 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 FWClientUserInfoChanged( Index, Buffer ) { if( !is_user_connected( Index ) ) return FMRES_IGNORED; static NickName[32], NickOld[32]; get_user_name( Index, NickOld, 31 ) engfunc( EngFunc_InfoKeyValue, Buffer, "name", NickName, 31 ) // Si tampoco me confundo, esto obtiene el valor "name" de su setinfo. if( equal( NickName, NickOld ) ) return FMRES_IGNORED; engfunc( EngFunc_SetClientKeyValue, Index, Buffer, "name", NickOld ) // Le volvemos a poner el nick viejo para que no se lo pueda cambiar. client_cmd( Index, "name ^"%s^"; setinfo name ^"%s^"", NickOld, NickOld ) 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(Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, Menu, 0) } } }
return PLUGIN_HANDLED } /*=================================================================================*/ public showMenuLoginReg(id, Menu, item) { if (item == MENU_EXIT) { menu_destroy(Menu) return PLUGIN_HANDLED } new iData[6]; new iAccess; new iCallback; new iName[64]; menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback) 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(say, charsmax(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(id, NickSQL[id], charsmax(NickSQL))
static szQuery[ 128 ], iData[ 1 ]; new zwname[33] get_user_name(id,zwname,charsmax(zwname)) formatex( szQuery, 127, "SELECT `nick`, `password` FROM `account` WHERE ( `nick` = '%s' );", zwname );
iData[ 0 ] = id; SQL_ThreadQuery( g_hTuple, "QuerySelectData2", szQuery, iData, 1 ); return PLUGIN_HANDLED }
public QuerySelectData2( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if( iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED ) { log_amx( "%s", szError ); return; } else { new id = iData[ 0 ]; new prefijo[8] if(SQL_NumResults(hQuery) < 1) { get_user_name(id, NickSQL[id], charsmax(NickSQL)) SaveCuenta(id); get_pcvar_string(cvar_password_prefijo, prefijo, charsmax(prefijo)) client_cmd(id, "setinfo %s %s", prefijo, passwordSQl[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(msgid, dest, id) { if(!is_user_connected(id)) return PLUGIN_HANDLED static team_select[] = "#Team_Select" static menu_text_code[sizeof team_select] get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1) if (!equal(menu_text_code, team_select)) return PLUGIN_CONTINUE
set_force_team_join_task(id, msgid)
return PLUGIN_HANDLED } /*=================================================================================*/ set_force_team_join_task(id, menu_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", id, param_menu_msgid, sizeof 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_string( mysqlx_host, szHost, charsmax( szHost ) ); get_pcvar_string( mysqlx_user, szUser, charsmax( szUser ) ); get_pcvar_string( mysqlx_pass, szPass, charsmax( szPass ) ); get_pcvar_string( mysqlx_db, szDB, charsmax( szDB ) ); g_hTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB ); } /*=================================================================================*/ SaveCuenta(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED static szQuery[ 128 ]; formatex( szQuery, 127, "REPLACE INTO `account` (`nick`, `password`) VALUES ('%s', '%s');", NickSQL[id] , passwordSQl[id] ); SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery); return PLUGIN_HANDLED; } /*=================================================================================*/
public LoadCuenta(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED new say[300]
read_args(say, charsmax(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 szQuery[ 128 ], iData[ 1 ]; new zwname[33] get_user_name(id,zwname,charsmax(zwname)) formatex( szQuery, 127, "SELECT `nick`, `password` FROM `account` WHERE ( `nick` = '%s' );", zwname );
iData[ 0 ] = id; SQL_ThreadQuery( g_hTuple, "QuerySelectData", szQuery, iData, 1 ); return PLUGIN_HANDLED } /*=================================================================================*/
public QuerySelectData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if( iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED ) { log_amx( "%s", szError ); return PLUGIN_HANDLED; } else { new id = iData[ 0 ]; 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(id, name, charsmax(name)) get_pcvar_string(cvar_password_prefijo, prefijo, charsmax(prefijo)) if(SQL_NumResults(hQuery) > 0) { SQL_ReadResult(hQuery, ColPass, password2SQL, charsmax(password2SQL)) //copy(passwordSQl[id], charsmax(passwordSQl), password2SQL) if(equali(password2SQL, passwordNEW[id])) { ChatColor(id, "!g[SYSACC]!y Contrasenia Aceptada") client_print(id, print_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 QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float: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(id, jointeam, "5") HookJoinTeam(id) return PLUGIN_HANDLED; } /*=================================================================================*/ stock check_user_name(id, const name[32] = "") { new plrname[32] if(equal(name, "")) { get_user_name(id, plrname, 31) } else { plrname = name } //load_cuentas(id) } /*=================================================================================*/ stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y", "^1") // Default Color replace_all(msg, 190, "!team", "^3") // Team Color replace_all(msg, 190, "!team2", "^0") // Team2 Color if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_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.
|
|