Sistema De Apodos (CON/SIN Adv_Vault)
#1
Sistema De Apodos (Con/Sin ADV_VAULT)

Descripción:Mediante un menu,Tendremos la Opcion de crearnos nuestro apodo Y De borrar el mismo.El apodo Puede representarnos de la forma que uno lo tome.En el Say Indicara Nuestro Apodo y Nombre + Say.
El Apodo Se Guardara Cuando nos Desconectemos.


Requisitos:
Comandos:
/Apodo (Abre el menu De Apodos)

Comentarios:
Este Plugin Puede Servir Para Cualquier MOD de CounterStrike,Ya que nos podemos representar con el Apodo que Queramos.

Imagenes:
1- [Imagen: thump_92259031.png]

2- [Imagen: thump_92258902.jpg]

3- [Imagen: thump_92258913.jpg]

4- [Imagen: thump_92259044.png]

5- [Imagen: thump_92258935.jpg]

6- [Imagen: thump_92258946.jpg]

Codigo De Fuente:

Con Guardado (ADV_VAULT):

Código PHP:
#include <amxmodx>
#include <adv_vault>
#include <ColorChat>

new const Plugin[] = "Sistema De Apodos"
new const Version[] = "1.0.2"
new const Author[] = "jollero"

enum {
    
CAMPO_APODO,
    
MAX_CAMPOS
}
new 
Campos[MAX_CAMPOS],Vault

new Apodo[33][33]
new 
Nombre[33][32]

public 
plugin_init() {
    
register_plugin(Plugin,Version,Author)
    
    
register_clcmd("say /Apodo","MenuApodo")
    
register_clcmd("say","HookSay")
    
    
register_clcmd("CREAR_APODO","CrearApodo")
    
    
Vault adv_vault_open("ApodosDB"false)
    
Campos[CAMPO_APODO]      = adv_vault_register_field(Vault"Apodo"DATATYPE_STRING32)
    
adv_vault_init(Vault)
}    

public 
client_putinserver(id) { 
    
get_user_name(id,Nombre[id],charsmax(Nombre[]))
    
Cargar(id)
}
public 
client_disconnect(id)Guardar(id)

public 
MenuApodo(id){
    new 
Texto[200]
    
    if(!
equal(Apodo[id],""))
        
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\wTu Apodo Es\d: \r%s",Apodo[id])
    else    
        
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\rNO \wTienes ningun Apodo")
        
    new 
menu menu_create(Texto,"HandlerApodo")
    
    
menu_additem(menu,"Crear Apodo",_,_,menu_makecallback("Callback"))
    
menu_additem(menu,"Sacarme Apodo",_,_,menu_makecallback("Callback"))
    
    
menu_display(id,menu)
    return 
PLUGIN_HANDLED
}
public 
Callback(id,menu,item){
    new 
apodo
    
    
if(equal(Apodo[id],""))apodo 0
    
else apodo 1
    
    
switch(item){
        case 
0:if(apodo)return ITEM_DISABLED
        
case 1:if(!apodo)return ITEM_DISABLED
    
}
    return 
ITEM_ENABLED
}
public 
HandlerApodo(id,menu,item){
    
    switch(
item){
        case 
MENU_EXIT:return PLUGIN_HANDLED
        
case 0:client_cmd(id,"messagemode CREAR_APODO")
        case 
1: {
            
Apodo[id] = "^0"
            
ColorChat(id,GREEN,"Te Sacaste Tu Apodo")
            return 
PLUGIN_HANDLED
        
}
    }
    return 
PLUGIN_HANDLED
}
public 
CrearApodo(id){
    
read_args(Apodo[id],charsmax(Apodo[]))
    
remove_quotes(Apodo[id]);trim(Apodo[id])
    
    if(
equal(Apodo[id],"") || contain(Apodo[id],"^"") != -1){
        client_cmd(id,"
messagemode CREAR_APODO")
        ColorChat(id,GREEN,"
Apodo Invalido")
        return PLUGIN_HANDLED
    }

    return PLUGIN_HANDLED
}
public HookSay(id) 

    static szSay[192]
    read_args(szSay, charsmax(szSay)) 
    remove_quotes(szSay) 
    
    replace_all(szSay, charsmax(szSay), "
%", " ") 
    
    static szNombre[32];get_user_name(id, szNombre, 32) 
    
    if(is_user_connected(id))
        ColorChat(id,GREEN,"
[ %] ^x01%s: ^x03%s",equal(Apodo[id],"") ? "Sin Apodo" : Apodo[id],szNombre,szSay)
    
    return PLUGIN_HANDLED_MAIN


public Guardar(id){
    adv_vault_set_start(Vault)
    adv_vault_set_field(Vault, Campos[CAMPO_APODO], Apodo[id])
    adv_vault_set_end(Vault, 0, Nombre[id])
}
public Cargar(id){
    if(!adv_vault_get_prepare(Vault, _, Nombre[id]))
    return
    
    adv_vault_get_field(Vault, Campos[CAMPO_APODO], Apodo[id], charsmax(Apodo[]))


Sin Guardado:

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

new const Plugin[] = "Sistema De Apodos"
new const Version[] = "1.0.0"
new const Author[] = "jollero"

new Apodo[33][33]

public 
plugin_init() {
    
register_plugin(Plugin,Version,Author)
    
    
register_clcmd("say /Apodo","MenuApodo")
    
register_clcmd("say","HookSay")
    
    
register_clcmd("CREAR_APODO","CrearApodo")
}
public 
MenuApodo(id){
    new 
Texto[200]
    
    if(!
equal(Apodo[id],""))
        
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\wTu Apodo Es\d: \r%s",Apodo[id])
    else    
        
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\rNO \wTienes ningun Apodo")
        
    new 
menu menu_create(Texto,"HandlerApodo")
    
    
menu_additem(menu,"Crear Apodo",_,_,menu_makecallback("Callback"))
    
menu_additem(menu,"Sacarme Apodo",_,_,menu_makecallback("Callback"))
    
    
menu_display(id,menu)
    return 
PLUGIN_HANDLED
}
public 
Callback(id,menu,item){
    new 
apodo
    
    
if(equal(Apodo[id],""))apodo 0
    
else apodo 1
    
    
switch(item){
        case 
0:if(apodo)return ITEM_DISABLED
        
case 1:if(!apodo)return ITEM_DISABLED
    
}
    return 
ITEM_ENABLED
}
public 
HandlerApodo(id,menu,item){
    
    switch(
item){
        case 
MENU_EXIT:return PLUGIN_HANDLED
        
case 0:client_cmd(id,"messagemode CREAR_APODO")
        case 
1: {
            
Apodo[id] = "^0"
            
ColorChat(id,GREEN,"Te Sacaste Tu Apodo")
            return 
PLUGIN_HANDLED
        
}
    }
    return 
PLUGIN_HANDLED
}
public 
CrearApodo(id){
    
read_args(Apodo[id],charsmax(Apodo[]))
    
remove_quotes(Apodo[id]);trim(Apodo[id])
    
    if(
equal(Apodo[id],"") || contain(Apodo[id],"^"") != -1){
        client_cmd(id,"
messagemode CREAR_APODO")
        ColorChat(id,GREEN,"
Apodo Invalido")
        return PLUGIN_HANDLED
    }
    
    ColorChat(id,GREEN,"
Tu Apodo Es: ^x01%s",Apodo[id])
    return PLUGIN_HANDLED
}
public HookSay(id) 

    static szSay[192]
    read_args(szSay, charsmax(szSay)) 
    remove_quotes(szSay) 
    
    replace_all(szSay, charsmax(szSay), "
%", " ") 
    
    static szNombre[32];get_user_name(id, szNombre, 32) 
    
    if(is_user_connected(id))
        ColorChat(id,GREEN,"
[ %] ^x01%s: ^x03%s",equal(Apodo[id],"") ? "Sin Apodo" : Apodo[id],szNombre,szSay)
    
    return PLUGIN_HANDLED_MAIN


Descarga:


Archivos adjuntos
.inc   colorchat.inc (Tamaño: 2.51 KB / Descargas: 71)
Arroba
Responder
#2
Para detectar si un string esta vacio basta con hacer str[0] == '^0' y para limpiarlo es lo mismo pero en vez de comparar, asignas
Responder
#3
El apodo sale en say_team? Y cuando escribes "/"?
[Imagen: 76561198086476173.png]
Responder
#4
Código PHP:
public HookSay(id

    static 
szSay[192]
    
read_args(szSaycharsmax(szSay)) 
    
remove_quotes(szSay
    
    
replace_all(szSaycharsmax(szSay), "%"" "
    
    static 
szNombre[32];get_user_name(idszNombre32
    
    if(
is_user_connected(id))
        
ColorChat(id,GREEN,"[ %s ] ^x01%s: ^x03%s",equal(Apodo[id],"") ? "Sin Apodo" Apodo[id],szNombre,szSay)
    
    return 
PLUGIN_HANDLED 

------------>
Código PHP:
public HookSay(id

    static 
szSay[192]
    
read_args(szSaycharsmax(szSay)) 
    
remove_quotes(szSay
    
    
replace_all(szSaycharsmax(szSay), "%"" "
    
    static 
szNombre[32];get_user_name(idszNombre32
    
    if(
is_user_connected(id))
        
ColorChat(id,GREEN,"[ %s ] ^x01%s: ^x03%s",equal(Apodo[id],"") ? "Sin Apodo" Apodo[id],szNombre,szSay)
    
    return 
PLUGIN_HANDLED_MAIN// <-----

[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#5
creo que el menu seria un poquito mejor asi:

Código PHP:
public MenuApodo(id){
    new 
Texto[200]

    if(!
equal(Apodo[id],"")) formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\wTu Apodo Es\d: \r%s",Apodo[id])
    else 
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\rNO \wTienes ningun Apodo")
        
    new 
menu menu_create(Texto,"HandlerApodo")

    
menu_additem(menu, (equal(Apodo[id],""))?"Crear Apodo":"\dCrear Apodo""1");
    
menu_additem(menu, (equal(Apodo[id],""))?"\dSacarme Apodo":"Sacarme Apodo""2");
    
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED
}
public 
HandlerApodo(id,menu,item){
    switch(
item)
    {
        case 
0: {
            if(
equal(Apodo[id],""))
                
client_cmd(id,"messagemode CREAR_APODO")
            else
                
ColorChat(idGREEN"Ya tienes un Apodo");
        }
        case 
1
        {
            if(
equal(Apodo[id],""))
                
ColorChat(idGREEN"No tienes un Apodo");
            else 
            {
                
Apodo[id] = "^0"
                
ColorChat(id,GREEN,"Te Sacaste Tu Apodo")
                return 
PLUGIN_HANDLED
            
}
        }
        case 
MENU_EXIT:
        {
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
    }
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;


Creo pacman
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#6
Bueno, Cuando este en la pc lo Corrijo.
Y con respecto al Menu, prefeririá que le bloquee la condición Antes q le envie un mensaje, almenos ami pero bueno si quieren.
Arroba
Responder
#7
Seria bueno que tubiera guardado ._.
para que así no estar escribiendo el apodo cuando entramos sí no que se ponga automaticamente...
[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
#8
yo tengo un sistema parecido en mi zp pero solo para admins pacman
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
Listo corregí los errores y le Agregue un Guardado por ADV_VAULT System pacman

Cualquier Error Me Avisan
Arroba
Responder
#10
Código PHP:
#include <amxmodx>
#include <ColorChat>

new const Plugin[] = "Sistema De Apodos"
new const Version[] = "v1.0.1"
new const Author[] = "jollero"

new Apodo[33][33], g_callback

public plugin_init()
{
    
register_plugin(PluginVersionAuthor)
    
    
register_clcmd("say""HookSay")
    
    
register_clcmd("CREAR_APODO""CrearApodo")
    
    
g_callback menu_makecallback("Callback")
}

public 
MenuApodo(id)
{
    new 
Texto[200]
    
    if (
Apodo[id][0])
        
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\wTu Apodo Es\d: \r%s"Apodo[id])
    else
        
formatex(Texto,charsmax(Texto),"\yMenu De Apodos^n\rNO \wTienes ningun Apodo")
    
    new 
menu menu_create(Texto"HandlerApodo")
    
    
menu_additem(menu"Crear Apodo", .callback g_callback)
    
menu_additem(menu"Sacarme Apodo", .callback g_callback)
    
//aca agregaria la opcion de cambiarme el apodo.. (Prox. version xd)
    
    
menu_display(idmenu)
    return 
PLUGIN_HANDLED;
}

public 
Callback(idmenuitem)
{
    new 
apodo = (Apodo[id][0]) ? 1;
    
    if (!
item && apodo || item && !apodo)
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}

public 
HandlerApodo(idmenuitem)
{
    switch (
item)
    {
        case 
MENU_EXIT: return PLUGIN_HANDLED;
        case 
0client_cmd(id,"messagemode CREAR_APODO")
        case 
1:
        {
            
// Apodo[id] = "^0" <-- MAL!
            // seria asi:
            // Apodo[id][0] = '^0' o tambien ->
            
Apodo[id][0] = EOS
            ColorChat
(idGREEN"Te Sacaste Tu Apodo")
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_HANDLED;
}

public 
CrearApodo(id)
{
    
read_args(Apodo[id],charsmax(Apodo[]))
    
remove_quotes(Apodo[id]);trim(Apodo[id])
    
    if (!
Apodo[id][0] || contain(Apodo[id],"^"") != -1 || equal(Apodo[id], "Sin Apodo"))
    {
        client_cmd(id, "
messagemode CREAR_APODO")
        ColorChat(id, GREEN, "
Apodo Invalido")
        return PLUGIN_HANDLED;
    }
    
    ColorChat(id, GREEN, "
Tu Apodo Es: ^x01%s", Apodo[id])
    return PLUGIN_HANDLED;
}

public HookSay(id)
{
    static szSay[192];
    szSay[0] = EOS;
    read_args(szSay, charsmax(szSay)) 
    remove_quotes(szSay) 
    
    replace_all(szSay, charsmax(szSay), "
%", " ") 
    
    static szNombre[32];
    get_user_name(id, szNombre, 32) 
    
    // Si escribio algo y esta conectado el que lo escribio...
    if (szSay[0] && is_user_connected(id))
    {
        if (equal("
/Apodo", szSay))
            MenuApodo(id)
    
        ColorChat(id,GREEN,"
[ %] ^x01%s: ^x03%s", (!Apodo[id][0]) ? "Sin Apodo" : Apodo[id], szNombre, szSay)
    }
    
    return PLUGIN_HANDLED_MAIN;

Yo lo dejaría así. Y como puse en el plugn, el la prox version estaria bueno la opcion de cambiar el apodo.
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#11
lo pongo primero en la lista con return PLUGIN_HANDLED; en el final del say y anda bien pero no me andan los otros plugins de say
lo pongo primero en la lista con return PLUGIN_HANDLED_MAIN; en el final del say y me sale doble el mensaje
lo pongo ultimo o a mitad de la lista con return PLUGIN_HANDLED; o return PLUGIN_HANDLED_MAIN; y me sale doble mensaje
Responder
#12
Con main es el correcto y si tenes doble mensajes es porque tenes otro plugin hookeando el say
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#13
(04/01/2015, 07:08 PM)LeiToH escribió: Con main es el correcto y si tenes doble mensajes es porque tenes otro plugin hookeando el say

si, el antispam pero no escribe mensajes el antispam, por eso es raro que siendo primer plugin y con HANDLED_MAIN ; no ande Confundido
Responder
#14
No le veo mucha diferencia con este, que además está mejor codeado.
[Imagen: paypalqr.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)