sistema de cuentas
#1
Estrella 
hola. quisiera saber como cambiarle el bind de este sistema de cuentas que en ves de que se abra con la letra "M", se habra con el say, por ejemplo: say /cuenta , o algo x el estilo y asi permita a los jugadores cambiar de equipos usando la letra "M" despues de logearse en el servidor. aqui el codigo:

Código PHP:
#include <amxmodx>
#include <fvault>

#define Hook_Chooseteam

/*==================================================================================================
  * GLOBAL VARS & ENUMS *
==================================================================================================*/
enum
{
    
PASSWORD 0,
    
NAME,
    
    
MAX_CHANGE
}

enum
{
    
UNREGISTERED 0,
    
REGISTERED,
    
LOGGED,
    
    
MAX_STATUS
}

new 
g_TempPassword[33][32],g_Password[33][32],g_Date[33][32],g_Status[33],gMsg,g_AlredyChanged[33][MAX_CHANGE],g_CanChange

new const g_MsgArgs[][] = { "#Team_Select","#Team_Select_Spect","#IG_Team_Select","#IG_Team_Select_Spect" }

new const 
g_Vault[] = "_cuentas_"

new const g_szStatus[MAX_STATUS][] = { "No registrado","Registrado","Logueado" }

/*==================================================================================================
  * BEGINNING OF PLUGIN *
==================================================================================================*/
public plugin_init()
{
    
register_plugin("Sistema de Cuentas[FL]","2.0.1","Manu")
    
    
register_message(get_user_msgid("ShowMenu"),"message_showmenu")
    
register_message(get_user_msgid("VGUIMenu"),"message_vguimenu")
    
    
register_clcmd("INGRESAR_PASSWORD","cmd_password")
    
register_clcmd("INGRESAR_NICK","cmd_nick")
    
    
#if defined Hook_Chooseteam
    
register_clcmd("chooseteam","cmd_block")
    
register_clcmd("jointeam","cmd_block")
    
#endif
    
    
gMsg CreateHudSyncObj()
}

/*==================================================================================================
  * CLIENT_ FUNCS *
==================================================================================================*/

public client_putinserver(id)
{
    
g_Password[id][0] = '^0';g_Status[id] = UNREGISTERED
    
    g_AlredyChanged
[id][NAME] = 0;g_AlredyChanged[id][PASSWORD] = 0
    
    fvault_load
(id)
}

public 
client_infochanged(id)
{
    static 
szName[32],szOldName[32]
    
    
get_user_name(id,szOldName,31);get_user_info(id,"name",szName,31)
    
    if(
equal(szOldName,szName) || g_CanChange)
        return 
PLUGIN_CONTINUE
        
    client_cmd
(id,"name %s",szName);set_user_info(id,"name",szName)
    
    return 
PLUGIN_HANDLED
}

/*==================================================================================================
  * CMDs *
==================================================================================================*/

public cmd_password(id)
{
    static 
szName[32],szArgs[64];read_args(szArgs,63)
    
remove_quotes(szArgs);trim(szArgs)
    
    
get_user_name(id,szName,31)
    
    if(
containi(szArgs," ") != -|| equal(szArgs,"")) {
        
show_msg(id,"Tu password contiene errores...")
        return 
PLUGIN_HANDLED
    
}
    switch(
g_Status[id])
    {
        case 
UNREGISTERED: {
            
show_msg(id,"Confirma tu password para proseguir...");copy(g_TempPassword[id],31,szArgs)
            
show_menu_confirm(id)
        }
        case 
REGISTERED: {
            if(!
equal(g_Password[id],szArgs)) {
                
show_msg(id,"La password ingresada no coincide con la de la cuenta...")
                return 
PLUGIN_HANDLED
            
}
            
            
g_Status[id] = LOGGED;fvault_save(id)// To save the date
            
show_msg(id,"Te logueaste satisfactoriamente en tu cuenta...");change_team(id)
        }
        case 
LOGGED: {
            if(
g_AlredyChanged[id][PASSWORD]) {
                
show_msg(id,"Ya cambiaste tu password en este mapa...")
                return 
PLUGIN_HANDLED
            
}
            
            
show_msg(id,"Confirma tu password para cambiarla...");copy(g_TempPassword[id],31,szArgs)
            
show_menu_confirm(id)
        }
    }
    
    return 
PLUGIN_HANDLED
}

public 
cmd_nick(id)
{
    if(
g_Status[id] != LOGGED || g_AlredyChanged[id][NAME])
        return 
PLUGIN_HANDLED
        
    
static args[32];read_args(args,31)
    
remove_quotes(args);trim(args)
    
    if(
containi(args," ") != -|| !args[1])
        return 
PLUGIN_HANDLED
    
    
if(change_name(id,args))
        
show_msg(id,"Tu nombre se ha cambiado con exito!")
    
    return 
PLUGIN_HANDLED
}

/*==================================================================================================
  * BLOCK CHANGE TEAM *
==================================================================================================*/

public message_showmenu(msgid,dest,id)
{
    static 
szMsg[16];get_msg_arg_string(4,szMsg,15)
    
    for(new 
i;sizeof g_MsgArgs;i++)
    {
        if(
equal(szMsg,g_MsgArgs[i]))
        {
            
show_menu_block(id)
            return 
PLUGIN_HANDLED
        
}
    }
    return 
PLUGIN_CONTINUE
}

public 
message_vguimenu(msgid,dest,id)
{
    if(
get_msg_arg_int(0) != 2)
        return 
PLUGIN_CONTINUE
        
    show_menu_block
(id)
    
    return 
PLUGIN_HANDLED
}

#if defined Hook_Chooseteam
public cmd_block(id) {
    
show_menu_block(id)
    return 
PLUGIN_HANDLED
}
#endif

/*==================================================================================================
  * MENUs *
==================================================================================================*/

public show_menu_block(id)
{
    static 
szMenu[128],szName[32]
    
get_user_name(id,szName,31);formatex(szMenu,127,"\ySistema de CUENTAS por \rRENNY^n\wESTADO ACTUAL: \y[ \r%s \y]\w^n^n%s%s",g_szStatus[g_Status[id]],g_Status[id] == LOGGED "Ultima vez que entraste \r":(g_Status[id] == REGISTERED "\yEstas registrado como \r":""),g_Status[id] == LOGGED g_Date[id]:(g_Status[id] == REGISTERED szName:""))
    
    new 
Menu menu_create(szMenu,"handler_menu_block")
    
    
formatex(szMenu,63,"%sLoguear cuenta",g_Status[id] != REGISTERED "\d":"\w")
    
menu_additem(Menu,szMenu,"1",0)
    
    
formatex(szMenu,63,"%sRegistrar cuenta^n",g_Status[id] != UNREGISTERED "\d":"\w")
    
menu_additem(Menu,szMenu,"2",0)
    
    
formatex(szMenu,63,"%s%sCambiar PASSWORD",g_Status[id] != LOGGED "\d":"\w",g_AlredyChanged[id][PASSWORD] ? "\d":"")
    
menu_additem(Menu,szMenu,"3",0)
    
    
formatex(szMenu,63,"%s%sCambiar NICK^n",g_Status[id] != LOGGED "\d":"\w",g_AlredyChanged[id][NAME] ? "\d":"")
    
menu_additem(Menu,szMenu,"4",0)
    
    
menu_additem(Menu,"Informacion","5",0)
    
    
menu_setprop(Menu,MPROP_EXITNAME,"Salir")
    
    
menu_display(id,Menu,0)
}

public 
handler_menu_block(id,menu,item)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    switch(
item)
    {
        case 
0: {
            if(
g_Status[id] != REGISTERED)
            {
                
show_msg(id,"No puedes elegir esta opcion...")
                return 
PLUGIN_HANDLED
            
}
            
            
show_msg(id,"Ingresa tu PASSWORD para entrar a tu cuenta...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
        }
        case 
1: {
            if(
g_Status[id] != UNREGISTERED)
            {
                
show_msg(id,"No puedes elegir esta opcion...")
                return 
PLUGIN_HANDLED
            
}
            
            
show_msg(id,"Ingresa una PASSWORD para crear una cuenta...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
        }
        case 
2: {
            if(
g_Status[id] != LOGGED || g_AlredyChanged[id][PASSWORD])
            {
                
show_msg(id,"No estas logueado o ya cambiaste tu password durante el mapa...")
                return 
PLUGIN_HANDLED
            
}
            
            
show_msg(id,"Ingresa tu nueva PASSWORD...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
        }
        case 
3: {
            if(
g_Status[id] != LOGGED || g_AlredyChanged[id][NAME])
            {
                
show_msg(id,"No estas logueado o ya cambiaste tu nick durante el mapa...")
                return 
PLUGIN_HANDLED
            
}
            
            
show_msg(id,"Ingresa tu nuevo NICK...");client_cmd(id,"messagemode INGRESAR_NICK")
        }
        case 
4: {
            
set_hudmessage(02550, -1.0, -1.024.07.0)
            
ShowSyncHudMsg(id,gMsg,"Este sistema de cuentas fue creado por^nRenny para la Comunidad Family Lacras^nConsiste en poder registrar un nick para evitar^nel robo del mismo, protegiendolo asi con password")
        }
    }
    
    return 
PLUGIN_HANDLED
}

public 
show_menu_confirm(id)
{
    static 
szTitle[128];formatex(szTitle,127,"\w%sLa password sera \r%s^n^n\yConfirmar?",g_Status[id] == LOGGED "Estas cambiando tu password^n":"Estas seteando tu password^n",g_TempPassword[id])
    
    new 
Menu menu_create(szTitle,"handler_menu_confirm")
    
    
menu_additem(Menu,"\rSi\w, confirmar","1",0)
    
menu_additem(Menu,"\rNo\w, deseo reescribirla","2",0)
    
    
menu_setprop(Menu,MPROP_EXIT,MEXIT_NEVER)
    
    
menu_display(id,Menu,0)
}

public 
handler_menu_confirm(id,menu,item)
{
    switch(
item)
    {
        case 
0: {
            switch(
g_Status[id])
            {
                case 
LOGGED: {
                    
show_msg(id,"Tu password ha sido cambiada satisfactoiramente")
                    
                    
copy(g_Password[id],31,g_TempPassword[id]);fvault_save(id)
                    
                    
g_AlredyChanged[id][PASSWORD] = 1
                
}
                case 
UNREGISTERED: {    
                    
show_msg(id,"Tu cuenta ha sido creada satisfactoriamente")
                    
                    
copy(g_Password[id],31,g_TempPassword[id]);fvault_save(id)
                    
                    
g_Status[id] = LOGGED;change_team(id)
                }
            }
        }
        case 
1: {
            
menu_destroy(menu)
            
            
client_cmd(id,"messagemode INGRESAR_PASSWORD")
            
            
g_Status[id] == LOGGED show_msg(id,"Ingresa tu nueva PASSWORD..."):show_msg(id,"Ingresa la PASSWORD para tu nueva cuenta...")
        }
    }
    
    return 
PLUGIN_HANDLED
}

/*==================================================================================================
  * LOAD | SAVE *
==================================================================================================*/

public fvault_load(id)
{
    static 
szName[32],szData[64];get_user_name(id,szName,31)
    
    if(!
fvault_get_data(g_Vault,szName,szData,63))
        
g_Status[id] = UNREGISTERED
    
else {
        
strbreak(szData,g_Password[id],31,g_Date[id],31)
        
        
g_Status[id] = REGISTERED
    
}
}

public 
fvault_save(id)
{
    static 
szName[32],szData[64];get_user_name(id,szName,31)
    
    
get_time("%c",g_Date[id],31);formatex(szData,63,"%s %s",g_Password[id],g_Date[id])
    
    
fvault_set_data(g_Vault,szName,szData)
}

/*==================================================================================================
  * STOCKS *
==================================================================================================*/
stock change_name(const id, const string[])
{
    static 
szName[32],szData[64];get_user_name(id,szName,31)
    
    if(
equal(szName,string))
        return 
0
        
    
if(fvault_get_data(g_Vault,string,szData,63))
        return 
0
    
    g_CanChange 
1;set_user_info(id,"name",string)
    
g_CanChange 0
    
    fvault_remove_key
(g_Vault,szName)
    
    
set_task(1.0,"fvault_save",id)
    
    
g_AlredyChanged[id][NAME] = 1
    
    
return 1
}

stock change_team(const id)
{
    
engclient_cmd(id,"jointeam","5")
    
    
engclient_cmd(id,"joinclass","5")
}

stock show_msg(const id, const string[])
{
    
set_hudmessage(025500.150.1012.010.0)
    
ShowSyncHudMsg(id,gMsg,"%s",string)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang11274{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/ 
si podrian ayudarme se los agradecería en el alma. pacman Rainbow
Responder
#2
Código:
#define Hook_Chooseteam
->
Código:
//#define Hook_Chooseteam

Código PHP:
register_clcmd("say /cuenta","cmd_block"
[Zombie Escape] My Maps

ze_ATIX_panic_s2{100%}
Responder
#3
(03/08/2019, 11:37 PM)multip0wer escribió:
Código:
#define Hook_Chooseteam
->
Código:
//#define Hook_Chooseteam

Código PHP:
register_clcmd("say /cuenta","cmd_block"

Código PHP:
#include <amxmodx>
#include <fvault>

//#define Hook_Chooseteam

/*==================================================================================================
  * GLOBAL VARS & ENUMS *
==================================================================================================*/
enum
{
    
PASSWORD 0,
    
NAME,
    
    
MAX_CHANGE
}

enum
{
    
UNREGISTERED 0,
    
REGISTERED,
    
LOGGED,
    
    
MAX_STATUS
}

new 
g_TempPassword[33][32],g_Password[33][32],g_Date[33][32],g_Status[33],gMsg,g_AlredyChanged[33][MAX_CHANGE],g_CanChange

new const g_MsgArgs[][] = { "#Team_Select","#Team_Select_Spect","#IG_Team_Select","#IG_Team_Select_Spect" }

new const 
g_Vault[] = "_cuentas_"

new const g_szStatus[MAX_STATUS][] = { "No registrado","Registrado","Logueado" }

/*==================================================================================================
  * BEGINNING OF PLUGIN *
==================================================================================================*/
public plugin_init()
{
    
register_plugin("Sistema de Cuentas[FL]","2.0.1","Renny")
    
    
register_message(get_user_msgid("ShowMenu"),"message_showmenu")
    
register_message(get_user_msgid("VGUIMenu"),"message_vguimenu")
    
    
register_clcmd("say /cuenta","cmd_block"
    
register_clcmd("INGRESAR_PASSWORD","cmd_password")
    
register_clcmd("INGRESAR_NICK","cmd_nick")
    
    
#if defined Hook_Chooseteam
    
register_clcmd("chooseteam","cmd_block")
    
register_clcmd("jointeam","cmd_block")
    
#endif 

yo lo pongo asi entonces cuando lo pongo en mi servidor. entro sin registrarme primero y escribo /cuenta y no me sale nada amigo. :/
Responder
#4
Borras
Código PHP:
register_clcmd("say /cuenta","cmd_block"

y cambias esto
Código PHP:
//#define Hook_Chooseteam 
por esto
Código PHP:
#define Hook_Chooseteam 

No es tan dificil v:
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder
#5
(10/08/2019, 03:07 PM)[E]manuelitop15 escribió: Borras
Código PHP:
register_clcmd("say /cuenta","cmd_block"

y cambias esto
Código PHP:
//#define Hook_Chooseteam 
por esto
Código PHP:
#define Hook_Chooseteam 

No es tan dificil v:

Todo bien en casa?

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)