[NATIVE] Chat Color
#1
a mi parecer pienso yo que seria bueno usarlo ^_^, estaria un poco mejor para las personas que usan mucho el stock de chatcolor, en vez de andar poniendo el mismo stock en 50 plugs; Usaremos un solo plugin para los prints en color

Código PHP:
#include <amxmodx>

#define PLUGIN "Chat color base"
#define VERSION "1.0"
#define AUTHOR "Sugisaki"

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
}
public 
plugin_natives()
{
    
register_native("chat_color""native_chat_color"1)
}
public 
native_chat_color(idmsg_type, const msg[], any:...)
{
    
param_convert(3)
    
    new 
buffer[192]
    for(new 
<= numargs() ; i++)
    {
        
param_convert(i)
    }
    
    
vformat(buffercharsmax(buffer), msg4)
    
replace_all(buffercharsmax(buffer), "!t""^3")
    
replace_all(buffercharsmax(buffer), "!n""^1")
    
replace_all(buffercharsmax(buffer), "!g""^4")
    
    
message_begin(msg_typeget_user_msgid("SayText"), {000}, id)
    
write_byte(id)
    
write_string(buffer)
    
message_end()


su declaracion seria igual como en el registro de la native

Código PHP:
native chat_color(idmsg_type, const msg[], any:...) 

al estilo 0, misma declaracion de la native (como aqui arriba)
Thanks destro
Código PHP:
new MsgIdSayText

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
MsgIdSayText get_user_msgid("SayText")
}
public 
plugin_natives()
{
    
register_native("chat_color""native_chat_color")
}
public 
native_chat_color(pluginparams)
{
    new 
id get_param(1), msg_type get_param(2), buffer[192]
    
get_string(3buffercharsmax(buffer))
    
    
replace_all(buffercharsmax(buffer), "!t""^3")
    
replace_all(buffercharsmax(buffer), "!n""^1")
    
replace_all(buffercharsmax(buffer), "!g""^4")
    
    
message_begin(msg_typeMsgIdSayText, {000}, id)
    
write_byte(id)
    
write_string(buffer)
    
message_end()


id = index del user, esto definira el color del team red, blue o grey
msg_type = se usa los MSG_*/ALL/ONE, para todos o a una persona en especifico
msg = el mensaje a enviar

Código PHP:
#include <amxmodx>

#define PLUGIN "Test Chat color"
#define VERSION "1.0"
#define AUTHOR "Sugisaki"

native chat_color(idmsg_type, const msg[], any:...)

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say test""fw_test")
}
public 
fw_test(id)
{
    
chat_color(idMSG_ONE"!nYELLOW !t%s !gGREEN", (get_user_team(id) == "TT" "CT") )


Código:
; Custom - Add 3rd party plugins here
chat_color_base.amxx
plugin_con_chatcolor.amxx

pueden crear una libreria chat_color o como uds quieran o solo agregen arriba de plugin_init()
Código PHP:
native chat_color(idmsg_type, const msg[], any:...) 

PD: Simple y pequeño aporte, puede ser que se le tenga que incorporar algunos pequeños ajustes
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#2
veo mas facil poner el stock en el plug y ya. De esta forma abria que cargar un chatcolors.amxx o algo asi ?
Saludos
cLi;^

c++ [5%]
@2007

Responder
#3
(15/05/2015, 09:30 PM)Mrlindorcovas escribió: veo mas facil poner el stock en el plug y ya. De esta forma abria que cargar un chatcolors.amxx o algo asi ?

se tendria que cargar un amxx cierto pero por cada plugin que le metas ese stock es un requisito mas que le pides al cpu/ram pudiendo usar un solo codigo en vez de meterle el mismo codigo a 50 plugins que tengas en el sv
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#4
El "get_user_msgid("SayText")" registralo en plugin_init en una variable global.
Pacman rip :'v
Responder
#5
Osea agrego el .amxx ese que esta hay, después a los plugins que le quiero agregar color, lo pongo como en el ejemplo y ya? suena fácil

(y)
Responder
#6
deberías usar el estilo 0 de las natives

Para que te des una idea, yo tengo algo así (copy&pase tratando de dejar solo lo del chatcolor):
Código PHP:
/*
enum {
    color_team=0,
    color_grey=33,
    color_red,
    color_blue
}

native oa_chat_color(id, color=color_team, const msg[], any:...)
*/
new g_msgSayTextg_msgTeamInfo

public plugin_init()
{
    
g_msgSayText get_user_msgid("SayText")
    
g_msgTeamInfo get_user_msgid("TeamInfo")
}

public 
plugin_natives()
{
    
register_native("oa_chat_color""native_chat_color")
    
register_native("oa_print_center""native_print_center")
    
register_native("oa_filter_print""native_filter_print_string")
    
register_native("oa_filter_badwords""native_filter_badwords")
    
register_native("oa_filter_spam""native_filter_spam")
}

public 
client_putinserver(id)
{
    
g_is_connected[id] = true
    set_task
(0.3"task_send_teaminfo"id)
}

public 
task_send_teaminfo(id)
{
    if(!
g_is_connected[id])
        return
    
    
send_teaminfo(id33"")
    
send_teaminfo(id34"TERRORIST")
    
send_teaminfo(id35"CT")
}

public 
native_chat_color(iPluginiParams)
{
    static 
idcolorbuff[128]
    
    
id get_param(1)
    
    if(
id && !is_user_connected(id))
        return

    if(
iParams == 3get_string(3buff127)
    else 
vdformat(buff12734)
    
    
replace_all(buff127"!g""^4")
    
replace_all(buff127"!y""^1")
    
replace_all(buff127"!t""^3")
    
    
color get_param(2)
    if(
id || color)
    {
        
send_saytext(idcolorbuff)
        return
    }
    
    static 
players[32], count
    get_players
(playerscount"ch")
    
    while(
id count)
        
send_saytext(players[id++], 0buff)
}

stock send_teaminfo(receiverplayeridteam[])
{
    
message_begin(MSG_ONEg_msgTeamInfo_receiver)
    
write_byte(playerid)
    
write_string(team)
    
message_end()
}

stock send_saytext(receivercolormsg[])
{
    
message_begin(receiver?MSG_ONE:MSG_ALLg_msgSayText_receiver)
    
write_byte(color?color:receiver)
    
write_string(msg)
    
message_end()

Responder
#7
(15/05/2015, 09:45 PM)Sugisaki escribió:
(15/05/2015, 09:30 PM)Mrlindorcovas escribió: veo mas facil poner el stock en el plug y ya. De esta forma abria que cargar un chatcolors.amxx o algo asi ?

se tendria que cargar un amxx cierto pero por cada plugin que le metas ese stock es un requisito mas que le pides al cpu/ram pudiendo usar un solo codigo en vez de meterle el mismo codigo a 50 plugins que tengas en el sv


No sabia que era malo poner muchos stocks D:
Saludos
cLi;^

c++ [5%]
@2007

Responder
#8
(15/05/2015, 10:43 PM)Destro escribió: deberías usar el estilo 0 de las natives

Para que te des una idea, yo tengo algo así (copy&pase tratando de dejar solo lo del chatcolor):
Código PHP:
/*
enum {
    color_team=0,
    color_grey=33,
    color_red,
    color_blue
}

native oa_chat_color(id, color=color_team, const msg[], any:...)
*/
new g_msgSayTextg_msgTeamInfo

public plugin_init()
{
    
g_msgSayText get_user_msgid("SayText")
    
g_msgTeamInfo get_user_msgid("TeamInfo")
}

public 
plugin_natives()
{
    
register_native("oa_chat_color""native_chat_color")
    
register_native("oa_print_center""native_print_center")
    
register_native("oa_filter_print""native_filter_print_string")
    
register_native("oa_filter_badwords""native_filter_badwords")
    
register_native("oa_filter_spam""native_filter_spam")
}

public 
client_putinserver(id)
{
    
g_is_connected[id] = true
    set_task
(0.3"task_send_teaminfo"id)
}

public 
task_send_teaminfo(id)
{
    if(!
g_is_connected[id])
        return
    
    
send_teaminfo(id33"")
    
send_teaminfo(id34"TERRORIST")
    
send_teaminfo(id35"CT")
}

public 
native_chat_color(iPluginiParams)
{
    static 
idcolorbuff[128]
    
    
id get_param(1)
    
    if(
id && !is_user_connected(id))
        return

    if(
iParams == 3get_string(3buff127)
    else 
vdformat(buff12734)
    
    
replace_all(buff127"!g""^4")
    
replace_all(buff127"!y""^1")
    
replace_all(buff127"!t""^3")
    
    
color get_param(2)
    if(
id || color)
    {
        
send_saytext(idcolorbuff)
        return
    }
    
    static 
players[32], count
    get_players
(playerscount"ch")
    
    while(
id count)
        
send_saytext(players[id++], 0buff)
}

stock send_teaminfo(receiverplayeridteam[])
{
    
message_begin(MSG_ONEg_msgTeamInfo_receiver)
    
write_byte(playerid)
    
write_string(team)
    
message_end()
}

stock send_saytext(receivercolormsg[])
{
    
message_begin(receiver?MSG_ONE:MSG_ALLg_msgSayText_receiver)
    
write_byte(color?color:receiver)
    
write_string(msg)
    
message_end()



al estilo 0, misma declaracion de la native
Código PHP:
new MsgIdSayText

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
MsgIdSayText get_user_msgid("SayText")
}
public 
plugin_natives()
{
    
register_native("chat_color""native_chat_color")
}
public 
native_chat_color(pluginparams)
{
    new 
id get_param(1), msg_type get_param(2), buffer[192]
    
get_string(3buffercharsmax(buffer))
    
    
replace_all(buffercharsmax(buffer), "!t""^3")
    
replace_all(buffercharsmax(buffer), "!n""^1")
    
replace_all(buffercharsmax(buffer), "!g""^4")
    
    
message_begin(msg_typeMsgIdSayText, {000}, id)
    
write_byte(id)
    
write_string(buffer)
    
message_end()


pregunta: en este caso, ¿Cual seria la diferencia en el estilo 0 y 1?
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)