[AYUDA] Mensajes HUD automáticos que puedan emitir un sonido
#1
Código PHP:
#include <amxmodx>
#include <colorchat>

new Array:Text, Array:TextFormat
new gHud
new cvarMensajescvarTiempocvarChancecvarLeer

new const szDir[] = "addons\amxmodx\configs\mensajes.txt"

public plugin_init()
{
    
register_plugin("Random Message""1.0""Gonza.-*")
    
    
Text ArrayCreate(5551)
    
TextFormat ArrayCreate(11)
    
    
set_task(0.5"read")
    
set_task(1.0"mensaje")
    
    
cvarMensajes    =        register_cvar("amx_msg_activado""1")
    
cvarTiempo        =        register_cvar("amx_msg_tiempo""30.0")
    
cvarChance        =        register_cvar("amx_msg_chance""3")
    
cvarLeer        =        register_cvar("amx_msg_leer""0")
    
    
gHud CreateHudSyncObj()
}

public 
read(Show)
{
    if (
Show)
    {
        
ArrayClear(Text)
        
ArrayClear(TextFormat)
        
        
set_task(0.5"mensaje"0)
    }
    
    static 
fsaysay 0
    
if (file_exists(szDir))
    {
        
fopen(szDir"rt")
        while (!
feof(f))
        {
            new 
Line[555]
            
fgets(fLinecharsmax(Line))
            
            if (
strlen(Line) < || Line[0] == ';' || (Line[0] == '/' && Line[1] == '/') || (Line[0] == '[' && Line[1] == 'H'))
                continue
            
            if (
Line[0] == '[' && Line[1] == 'C')
            {
                
say 1
                
continue
            }
            
            
ArrayPushString(TextLine)
            
ArrayPushCell(TextFormatsay)
        }
        
        if (
ffclose(f)
    }
}

public 
mensaje(Leer)
{
    if (
get_pcvar_num(cvarMensajes) && get_pcvar_num(cvarLeer) && Leer)
    {
        
read(1)
        return
    }
    
    
set_task(get_pcvar_float(cvarTiempo), "mensaje"50)
    
    if (
random_num(1get_pcvar_num(cvarChance)) == get_pcvar_num(cvarMensajes))
    {
        static 
iRandomszText[555]
        
iRandom random_num(0ArraySize(Text) - 1)
        
        
ArrayGetArray(TextiRandomszText)
        
        if (!
strlen(szText)) return
        
        if (
ArrayGetCell(TextFormatiRandom)) // Say
        
{
            static 
szColor[10]
            
            if (
parse(szTextszColorcharsmax(szColor), szTextcharsmax(szText)) != 2)
            {
                
log_to_file("ChatError.log""Mensaje mal formulado (CHAT)")
                return
            }
            
            
replace_all(szTextcharsmax(szText), "!v""^x04")
            
replace_all(szTextcharsmax(szText), "!c""^x03")
            
replace_all(szTextcharsmax(szText), "!n""^x01")
            
            
ColorChat(0equali(szColor"RED") ? RED equali(szColor"BLUE") ? BLUE equali(szColor"GREY") ? GREY NORMALszText)
        }
        else 
// Hud
        
{
            static 
Float:PosXFloat:PosYRedGreenBlueszPos[3], szColor[3], szDureza[3], szTiempo[5], szFx[3]
            
            if (
parse(szTextszPoscharsmax(szPos), szColorcharsmax(szColor), szDurezacharsmax(szDureza),
            
szTiempocharsmax(szTiempo), szFxcharsmax(szFx), szTextcharsmax(szText)) != 6)
            {
                
log_to_file("ChatError.log""Mensaje mal formulado (HUD)")
                return
            }
            
            switch (
str_to_num(szPos))
            {
                case 
0// Medio
                
{
                    
PosX = -1.0
                    PosY 
= -1.0
                
}
                case 
1// Medio (Arriba)
                
{
                    
PosX = -1.0
                    PosY 
0.05
                
}
                case 
2// Medio (Abajo)
                
{
                    
PosX = -1.0
                    PosY 
0.90
                
}
                case 
3// Medio (Derecha)
                
{
                    
PosX 0.90
                    PosY 
= -1.0
                
}
                case 
4// Medio (Izquierda)
                
{
                    
PosX 0.05
                    PosY 
= -1.0
                
}
                case 
5// Esquina superior (Derecha)
                
{
                    
PosX 0.90
                    PosY 
0.05
                
}
                case 
6// Esquina superior (Izquierda)
                
{
                    
PosX 0.05
                    PosY 
0.05
                
}
                case 
7// Esquina inferior (Derecha)
                
{
                    
PosX 0.90
                    PosY 
0.90
                
}
                case 
8// Esquina inferior (Izquierda)
                
{
                    
PosX 0.05
                    PosY 
0.90
                
}
            }
            
            switch (
str_to_num(szColor))
            {
                case 
0// Blanco
                
{
                    
Red 255
                    Green 
255
                    Blue 
255
                
}
                case 
1// Rojo
                
{
                    
Red 255
                    Green 
0
                    Blue 
0
                
}
                case 
2// Verde
                
{
                    
Red 0
                    Green 
255
                    Blue 
0
                
}
                case 
3// Azul
                
{
                    
Red 0
                    Green 
0
                    Blue 
255
                
}
                case 
4// Amarillo
                
{
                    
Red 255
                    Green 
255
                    Blue 
0
                
}
                case 
5// Violeta
                
{
                    
Red 255
                    Green 
0
                    Blue 
255
                
}
                case 
6// Celeste
                
{
                    
Red 0
                    Green 
255
                    Blue 
255
                
}
            }
            
            if (!
str_to_num(szDureza)) // Medio transparente
            
{
                
Red max(0Red 155)
                
Green max(0Green 155)
                
Blue max(0Blue 155)
            }
            
            
set_hudmessage(RedGreenBluePosXPosYstr_to_num(szFx), _str_to_float(szTiempo), 1.01.0, -1)
            
ShowSyncHudMsg(0gHudszText)
        }
    }


Este sma es de este thread: https://amxmodx-es.com/showthread.php?tid=957
Necesito saber si es posible incorporar un sonido cada vez que estos mensajes aparezcan y de qué manera se pueden agregar a este sma.


Archivos adjuntos
.sma   Descargar AMXX / amx_mensajes.sma (Tamaño: 4.38 KB / Descargas: 0)
Responder
#2
Código PHP:
set_hudmessage(RedGreenBluePosXPosYstr_to_num(szFx), _str_to_float(szTiempo), 1.01.0, -1);
ShowSyncHudMsg(0gHudszText);
emit_sound(0CHAN_VOICE"carpeta/sonido.wav"1.0ATTN_NORM0PITCH_NORM); // despues de mostrar el hud le pones el sonido 
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder
#3
(25/09/2021, 12:08 AM)[E]manuelitop15 escribió:
Código PHP:
set_hudmessage(RedGreenBluePosXPosYstr_to_num(szFx), _str_to_float(szTiempo), 1.01.0, -1);
ShowSyncHudMsg(0gHudszText);
emit_sound(0CHAN_VOICE"carpeta/sonido.wav"1.0ATTN_NORM0PITCH_NORM); // despues de mostrar el hud le pones el sonido 

Tengo problemas, me sale error en esta línea: 
Código PHP:
#include <colorchat> 

Y me dice esto:
Código PHP:
ErrorCannot read from file"colorchat" on line 2 
Responder
#4
(25/09/2021, 02:53 PM)Tacicool escribió: Tengo problemas, me sale error en esta línea: 
Código PHP:
#include <colorchat> 

Y me dice esto:
Código PHP:
ErrorCannot read from file"colorchat" on line 2 

Necesitas el include 'colorchat'
https://amxmodx-es.com/attachment.php?aid=3954

Igual si fuera yo, usaría el 'client_print_color' que ya trae el amx se me hace mas facíl.
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)