Veteran Member
Join Date: Oct 2009
Location: Arica, Chile
|
11-22-2010
, 18:11
[ES] Cambiar el menu de registro
|
#1
|
Hola ^^ bueno me puse a ver el plugin de parpadeo y lo probe (con un zp virgen), la cosa esque el menu de registro sale al inicio de la partida, y sale apenas uno aparece, no alcanzo a apretar "registrar" y me sale el menu de las armas del zp, quise editarlo, pero me aleje mucho del pawn y no encuentro como mierda xd.. estoy medio perdido y queria ver si me podian ayudar a cambiarlo al tipico, osea que salga cuando uno entra al servidor y se le borre el "elegir team" y le aparesca "Login" y "registrarce".
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(); } } } } /*=================================================================================*/
Gracias ^^
__________________
|
|