[TUTORIAL] Como emitir sonidos desde una sentencia, jugador u objeto.
#1
Bueno como dise el titulo como agregar un sonido a una sentencia?
Esto aveces es muy útil como para alguna tienda, menú o algunas otras funciones.

Primeramente necesitamos saber que hay 2 tipos de formatos .mp3 y .wav que cada uno es un procedimiento diferente.

Los formatos .wav son de excelente calidad de audio
Con el detalle que pueden llegar a pesar mucho dependiendo de la duración o calidad.
Esto puede afectar a los usuarios ya que la descarga puede llegar a tardar varios minutos dependiendo el peso del archivo.


Los formatos .mp3 tienen un poco de inferioridad a los .wav ya que tienen una menor calidad que los .wav
Pero los formatos .mp3 tienen mejor compresión comparando con el .wav osea que el tamaño/peso del archivo es menor que el .wav
Este formato tiene un beneficio ya que mejora la rapidez de descarga del archivo.

En fin empecemos con el tutorial.


*** Procedimiento para formato .wav ***

1.- Creamos una const donde tendremos la ubicación de nuestro sonido
Por ejemplo si queremos que nuestro sonido este ubicado en la carpeta: cstrike/sound/mis_sonidos/mi_sonido.wav

Código PHP:
new const SONIDO_WAV[] = { "mi_sonidos/mi_sonido.wav" 

Por ahora todo normal hemos puesto la ubicación de nuestro sonido y siempre que llamemos esa función llamara al sonido.

2.- Precacheamos el sonido. Todo sonido tiene que ser precacheado de no precachearlo el sonido no se escuchara o puede producir error en algunas ocasiones.

Código PHP:
public plugin_precache()
{
        
precache_sound(SONIDO_WAV)


Porque esto esta dentro de los paréntesis?
Es porque 'SONIDO_WAV' es nuestra dirección para acceder a nuestro sonido como ya lo habíamos hecho anteriormente en el paso anterior.
Perfecto ahora tenemos todo listo solo para llamar a nuestro sonido y emitirlo.

3.- Ahora tenemos todo preparado solo para emitir el sonido, como aremos eso?

Código PHP:
client_cmd(id"spk %s"SONIDO_WAV

client_cmd Con esta función podemos emitir el sonido al jugador
entre comillas "spk %s" porque?
Bueno con spk es la identificación del sonido .wav para reproducirlo
Dentro del %s estamos almacenando la ubicación del sonido y donde esta esa ubicación en nuestra const ' SONIDO_WAV'.
Bueno eso es todo en parte con el formato .wav.

*** Procedimiento para formato .mp3 ***

1.- Creamos una cost para la ubicación de nuestro sonido
por ejemplo si nuestro sonido queremos que este ubicado en la carpeta: cstrike/sound/mi_sonidos/mi_sonido.mp3
Código PHP:
new const SONIDO_MP3[] = { "sound/mi_sonidos/mi_sonido.mp3" 

Como verán le estoy agregando el directorio 'sound'
Bueno esto es algo que siempre deben agregar cuando es sonido de formato .mp3 de lo contrario no se reproducirá.

2.- Precacheamos el sonido

Código PHP:
public plugin_precache()
{
        
precache_generic(SONIDO_MP3)


Bueno igual que la forma anterior esta es la forma que deben precachear el sonido .mp3 de no precachearlo no se reproducirá o puede llegar a dar error.

3.- Sentencia que emitirá el sonido o lo pausara.

Emitir...
Código PHP:
client_cmd(id"mp3 play %s"SONIDO_MP3

Pausar...
Código PHP:
client_cmd(id"mp3 stop %s"SONIDO_MP3

De igual forma esto ara que el sonido se reproduzca en donde ustedes lo llamen.
Como verán lo que esta entre comillas "mp3 Play %s" lo mismo estamos identificando que reproducción del sonido .mp3
Y entre comillas "mp3 stop %s" estamos parando el sonido que reproducimos ubicado en nuestra const 'SONIDO_MP3'

*** Procedimiento para emit_sound ***

emit_sound es una funcion la cual hace sonar un sonido según donde este el jugador/objeto.
Por ejemplo si lo llamas en algún objeto el sonido saldra del objeto, un ejemplo claro son las armas el sonido de las balas.
Y se escuchara según la distancia en la que estes mas fuerte o mas bajo.
dato: por lo que yo se solo puede emitir sonidos .wav

1.- Const donde se ubicara nuestro sonido

Código PHP:
new const SONIDO[] = { "mis_sonidos/mi_sonido.wav" 

2.- Pasamos a precachear nuestro sonido

Código PHP:
public plugin_precache()
{
        
precache_sound(SONIDO)


3.- Creamos la función de nuestro sonido

Código PHP:
emit_sound (idCHAN_VOICESONIDO0.9ATTN_NORM0PITCH_NORM


Simplemente cada vez que llamen esa función el sonido se emitirá desde el jugador.

Descripción:
Código:
CHAN_VOICE - Es el canal que hace que el sonido salga del jugador.
SONIDO - Es nuestra const donde nuestro sonido esta ubicado.
ATTN_NORM - Son los valores de atenuación.
PITCH_NORM - Son los valores de tono

Syntax:
Código PHP:
emit_sound (indexchannel, const sample[], Float:volFloat:attflagspitch

Ahora para que un sonido salga de un objeto.
En este ejemplo para que salga de una granada.

1.- Nuestra const de ubicación del sonido

Código PHP:
new const SONIDO_OBJ[] = { "mis_sonidos/mi_sonido.wav" 

2.- Precacheamos nuestro sonido

Código PHP:
public plugin_precache()
{
        
precache_sound(SONIDO_OBJ)


3.- creamos nuestra función con sus respectivos canales.

Código PHP:
emit_sound(entCHAN_BODYSONIDO_OBJVOL_NORMATTN_NORM0PITCH_NORM

Y eso es todo el procedimiento solo tienen que llamar esa función donde quieran que se reproduzca su sonido.
Un ejemplo seria cuando la granada explota.

Descripción:
Código:
CHAN_BODY - Es el canal que hace que el sonido salga del objeto.
SONIDO_OBJ - Es nuestra const donde nuestro sonido esta ubicado.
VOL_NORM - Son los valores de volumen.
ATTN_NORM - Son los valores de atenuación.
PITCH_NORM - Son los valores de tono

Syntax:
Código PHP:
emit_sound (indexchannel, const sample[], Float:volFloat:attflagspitch

Esto fue todo por el momento actualice mi tutorial porque se un poco mas sobre el tema y se expresarme un poco mejor.
Si tengo algún error o si tienen alguna duda no duden en decirme ya que yo se que no lo ise del todo explicado en algunas partes.
Pueden comentar en lo que falle o si puedo mejorar o ampliar algo espero y les haya servido.
Responder
#2
y si fuera un mp3?
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#3
public plugin_precache() precache_sound(SOUND)

Deja el ejemplo en mp3 también
Responder
#4
(11/03/2014, 09:44 AM)Frosst escribió: public plugin_precache() precache_sound(SOUND)
Hay solamente ahorras lineas
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#5
(11/03/2014, 09:48 AM)Metrikcz escribió:
(11/03/2014, 09:44 AM)Frosst escribió: public plugin_precache() precache_sound(SOUND)
Hay solamente ahorras lineas

Se ve mas bonito así que ocupando lineas al pedo
Responder
#6
Pero no se esta opimizando nada ademas de que probablemente el plugin al que se agrege ya tenga plugin precache y hay se ocupe ya poner las llaves
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#7
(11/03/2014, 09:35 AM)RauliTop escribió: y si fuera un mp3?

Código PHP:
new const SOUND[] = { "asd.mp3" }

client_cmd(id"mp3 play %s"SOUND); 
Responder
#8
(11/03/2014, 01:55 PM)3mcy daimont escribió:
(11/03/2014, 09:35 AM)RauliTop escribió: y si fuera un mp3?

Código PHP:
new const SOUND[] = { "asd.mp3" }

client_cmd(id"mp3 play %s"SOUND); 

el ya lo sabe lo dijo para que lo agregue.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#9
y el precache es precache_generic y se tiene que agregar la direccion sound/ tambien
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#10
Puse el precache_sound asi por si quieren meter 2 o mas sonidos yo solo meti 1 pero para no confundir Whatever
Responder
#11
(11/03/2014, 05:39 PM)zoolk escribió: Puse el precache_sound asi por si quieren meter 2 o mas sonidos yo solo meti 1 pero para no confundir
él está hablando sobre la extensión mp3, podrías añadir un ejemplo al tema
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#12
ya la añadi Nothingdohere
Responder
#13
(11/03/2014, 11:24 PM)zoolk escribió: ya la añadi Nothingdohere
te faltó el public delante de plugin_precache, lo demás perfecto Whatever

el spk no sería %s en vez de %d ?
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#14
no se que public es Whatever

y si es %s creo
Responder
#15
plugin_precache()

->

public plugin_precache()
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#16
Código PHP:
client_cmd(id"spk %d"SOUND)
// ---->
client_cmd(id"spk %s"SOUND
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#17
Listo ya lo arregle se me había pasado
Responder
#18
Buen Tutorial Zoolk [Imagen: 18.gif]
[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
#19
Creo que yo ya lo habia explicado aca

https://amxmodx-es.com/Thread-Plugin-sonido
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder
#20
Primero fíjate cuando hice este tuto fue hace meses...
[Imagen: 76561198068808877.png]
Responder
#21
Uu ni idea perdon, perdon (x351536) porque me seguramente alguien comento y me aparecio el tema en el inicio!
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder
#22
Podrias agregar emir_sound y explicar sus parámetros
Responder
#23
Claro anti de momento actualice mi tutorial
En cuando tenga tiempo libre hago explicación sobre emit_sound
[Imagen: 76561198068808877.png]
Responder
#24
sonido saldara del objeto

es saldra xD


Código PHP:
emit_sound (idCHAN_VOICESOUND0.9ATTN_NORM0PITCH_NORM

----->

Código PHP:
emit_sound (idCHAN_VOICESONIDO0.9ATTN_NORM0PITCH_NORM

// >>>LEAN ESTO<<< según tengo a entender con tu explicación, tenemos que poner igual al nombre que le dimos EJ: SONIDO_OBJ entonces, quiere decir, que tienes que, poner SONIDO en vez de SOUND o me equivoco? si me equivoco explíquenme por favor 

PDT: me gusto tu tuto Lengua
Responder
#25
Es que lo actualize y me confundi con las constantes ya lo arreglo.
[Imagen: 76561198068808877.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)