14/04/2024

Reproducir Música a Jugador Específico o Todos

0
function Trig_Detonador_sin_nombre_001_Actions takes nothing returns nothing
local player p = GetTriggerPlayer()
local sound s = CreateSound( "Units\\Human\\Footman\\FootmanWhat1.wav",false,false,true ,0 ,0 ,"")

if (p==GetLocalPlayer()) then
call StartSound(s)
call KillSoundWhenDone(s)
endif

set p = null
set s = null
endfunction
function InitTrig_Detonador_sin_nombre_001 takes nothing returns nothing
local integer i =0
set gg_trg_Detonador_sin_nombre_001 = CreateTrigger( )

loop
exitwhen i >= 12
call TriggerRegisterPlayerEvent(gg_trg_Detonador_sin_nombre_001, Player(i), EVENT_PLAYER_END_CINEMATIC)
set i = i+1
endloop

call TriggerAddAction( gg_trg_Detonador_sin_nombre_001, function Trig_Detonador_sin_nombre_001_Actions )
endfunction

Para reproducir el sonido que requieras reemplaza la ruta en la creacion del sonido en la linea local sound s = CreateSound( “Units\\Human\\Footman\\FootmanWhat1.wav”,false,false,true ,0 ,0 ,””)

El código que proporcionaste parece estar diseñado para reproducir un sonido específico para el jugador local cuando termina una cinemática. Sin embargo, veo un problema potencial que podría estar causando que el sonido solo se reproduzca para el jugador local y no para todos los jugadores en la partida.

El problema está en la condición dentro de la función Trig_Detonador_sin_nombre_001_Actions. Actualmente, estás verificando si p (que es el jugador asociado al desencadenador) es igual al jugador local (GetLocalPlayer()). Si esta condición es verdadera, el sonido se reproducirá solo para el jugador asociado al desencadenador (p).

Si deseas que el sonido se reproduzca para todos los jugadores en la partida, puedes eliminar esta condición y simplemente reproducir el sonido sin verificar si el jugador es el local o no. Aquí tienes el código modificado:

function Trig_Detonador_sin_nombre_001_Actions takes nothing returns nothing
    local sound s = CreateSound( "Units\\Human\\Footman\\FootmanWhat1.wav", false, false, true, 0, 0, "")

    call StartSound(s)
    call KillSoundWhenDone(s)
endfunction

//===========================================================================
function InitTrig_Detonador_sin_nombre_001 takes nothing returns nothing
    local integer i = 0
    set gg_trg_Detonador_sin_nombre_001 = CreateTrigger()

    loop
        exitwhen i >= 12
        call TriggerRegisterPlayerEvent(gg_trg_Detonador_sin_nombre_001, Player(i), EVENT_PLAYER_END_CINEMATIC)
        set i = i + 1
    endloop

    call TriggerAddAction(gg_trg_Detonador_sin_nombre_001, function Trig_Detonador_sin_nombre_001_Actions)
endfunction

Con esta modificación, el sonido se reproducirá para todos los jugadores en la partida cuando finalice la cinemática.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *