[PSDK] Son de tags

13 Réponses • 475 Vues

Salut tout le monde, je fait ce sujet dan le but de partager un script que je fais avec l'aide de Yuri, ce script à pour but de jouer un son suivant le lieux où le joueur se trouve, par exemple si le joueur marche dans l'herbe, le script joue un son de quelqu'un qui marche dans l'herbe.
Pour rajouter les sons que le script va jouer, il faut mettre grass, snow, mount, tall_grass et sand dans le dossier SE et mettre sea dans BGS,
les formats supporter son :  '.ogg', '.mp3', '.wav', '.mid', '.aac', '.wma', '.it', '.xm', '.mod', '.s3m', '.midi'
Vous pouvez aussi modifier la valeur de la variable VOLUME si vous voulez que les son ce jouent plus ou moin fort, pour utiliser ce script, rajouter le dans votre projet au dessus de main
Voici le script:
# Play sound according to tag of player
# @authors Kkabu/Nuri Yuri
  module Kkabu
    module Sound
      module_function
      # Name of the sound file (Default to "sea")
      # @return [String]
      SOUNDSEA  = "sea"
      # Name of the sound file when the player walk in grass(Default to "grass")
      # @return [String]
      SOUNDGRASS = "grass"
      # Name of the sound file when the player walk in tall grass(Default to "tall_grass")
      # @return [String]
      SOUNDTALLGRASS = "tall_grass"
      # Name of the sound file when the player walk in mount(Default to "mount")
      # @return [String]
      SOUNDMOUNT = "mount"
      # Name of the sound file when the player walk in ice(Default to "snow")
      # @return [String]
      SOUNDSNOW = "snow"
      # Name of the sound file when the player walk in sand(Default to "sand")
      # @return [String]
      SOUNDSAND = "sand"
      # Volume of the sound (Default to 10)
      # @return [Integer]
      VOLUME = 10
      # Volume of the sound (Default to 2)
      # @return [Integer]
      TAG = 2
      def sound
        #Plays an ambiant bgs when the player is on pond or terrai_tag 2.
        #Also stop the bgs if the player isn't on the tag anymore.
        if ($env.pond? || $game_player.terrain_tag == TAG)
          Audio.bgs_play(_utf8("Audio/BGS/" + SOUNDSEA), VOLUME) unless @sound_playing
          @sound_playing = true
        else
          Audio.bgs_stop if @sound_playing
          @sound_playing = false
        end
       
        # play SOUNDGRASS if the player is in tall_grass tag
        if $env.tall_grass? && (@p_x != $game_player.x || @p_y != $game_player.y)
          Audio.se_play(_utf8("Audio/SE/" + SOUNDGRASS), VOLUME)
        end
       
        # play SOUNDMOUNT if the player is in mount tag
        if $env.mount? && (@p_x != $game_player.x || @p_y != $game_player.y)
          Audio.se_play(_utf8("Audio/SE/" + SOUNDMOUNT), VOLUME)
        end
       
        # play SOUNDICE if the player is in snow tag
        if $env.snow? && (@p_x != $game_player.x || @p_y != $game_player.y)
          Audio.se_play(_utf8("Audio/SE/" + SOUNDSNOW), VOLUME)
        end
       
        # play SOUNDSAND if the player is in sand tag
        if $env.sand? && (@p_x != $game_player.x || @p_y != $game_player.y)
          Audio.se_play(_utf8("Audio/SE/" + SOUNDSAND), VOLUME)
        end
       
        # play SOUNDTALLGRASS if the player is in very_tall_grass tag
        if $env.very_tall_grass? && (@p_x != $game_player.x || @p_y != $game_player.y)
          Audio.se_play(_utf8("Audio/SE/" + SOUNDTALLGRASS), VOLUME)
        end
       
        # get the x position of the player
        # @return [Integer]
        @p_x = $game_player.x
       
        # get the y position of the player
        # @return [Integer]
        @p_y = $game_player.y
       
      end
    end
  end
#for use this on play
 Scheduler.add_message(:on_update, Scene_Map, "Son rivière", 100, Kkabu::Sound, :sound)
Le script n'est pas parfait, il sera amélioré plus tard, mais pour le moment sa fais le taff, si vous utilisé ce script, merci de me dire si il fonctionne correctement chez vous.

« Modifié: 08 juillet 2018, 20:10:04 par KABU »

SirMalo

Graphiste

Super initiative :) Merci !
Les crédits vont donc à toi et à Nuri Yuri si l'on veut l'intégrer dans un projet ?
Les signatures, ça prend de la place.
oui NewQuentin
Merci SirMalo ^^

Nuri Yuri

HostMaster

C'est rare de voir des scripts qui utilisent le Scheduler :3
Pourtant ça permet de faire du plug & play sans le moindre soucis, comme le montre ce script :p
ln(yo) = <3
Pourtant je trouve que le scheduler est indispensable pour facilité la vie du maker ^^
Seulement pour PSDK ? ^^
Yamette Yuri senpai.

Nuri Yuri

HostMaster

PSP n'a pas de Scheduler donc oui.
ln(yo) = <3
Dommage ! merci quand meme de l'info ^^
Yamette Yuri senpai.
Je ne trouve pas le lien de téléchargement pour les sons.

« Modifié: 23 octobre 2018, 13:16:52 par Nat7123 »

Nuri Yuri

HostMaster

Il n'y en a pas, je crois que c'est à toi de mettre tes propres sons ^^'
ln(yo) = <3
Ah, et on doit prendre quoi comme fortmat, durée et autre... ??
Ce serait sympa de direct donner les sons.

Nuri Yuri

HostMaster

Relis le sujet.
Sinon, il a surement fait le script pour aider ceux qui voulaient ce genre de fonctionnalité, il avait surement pas les sons pour. A toi de faire le reste de travail.
ln(yo) = <3

Leikt

Programmeur

Une petite recherche sur le fofo et tu aurait trouvé ça : https://pokemonworkshop.fr/forum/index.php?topic=4490.msg116420#msg116420
En troisième place dans la recherche "effet sonore"

Je sais pas si tu y trouvera le bruit des pas, sinon ça doit ce trouver sur google :)

There was an error while thanking
Thanking...