• Anmelden

1

Samstag, 14. Februar 2009, 16:47

Sound Skript

Hallo Leute

Ich brauche ein Skirpt, dass mir ermöglicht ein sound abzuspielen wenn der Held zb. in die Nähe eines Events kommt.

Danke im vorraus mfg Nobody! :rolleyes:

Picard23

Rekrut

Motto: Lex mihi ars - Die Kunst ist mein Gesetz

  • Nachricht senden

2

Samstag, 14. Februar 2009, 21:03

Sowas mach ich ständig und zwar ohne Script.

1. Mach z.B. ein Feuer Event
2. Mach ein zweites Event
-setz es auf player touch
-conditional branch if player looks [hier richtung zum feuer hin auswählen]:
play BGS Fire
-conditional branch if player looks [hier richtung vom feuer weg angeben]:
stop BGS
3. Jetzt kopierst du event zwei und setzt soviele wie nötig in einem kreis um event 1
4. Nur noch die richtungen bei jedem event angepasst fertig

222
2 2
2 1 2
2 2
222

so ungefähr (halt nicht so schief, aber das ist nur weil ichs tippe)
1 - Feuer
2 - Soundevent

3

Samstag, 14. Februar 2009, 22:03

>.< *möp*
Schlechte Lösung da ist ja dann die ganze Perfomance weg, bzw. es ist umständlich.
In Monstas ScriptExplorer -ViewRange- glaub ich, müsste bei Sonstiges Stecken,
da gibt es 3D Sound- als Script.

Edit:
Ja, -View Range- Seite5 Sonstiges, da kann man 3D Sounds festelgen, oder:

Zitat

Zusätzlich kann man das Skript noch als "Startbedingung" für Events benutzen.

4

Sonntag, 15. Februar 2009, 14:24

player looks [hier richtung vom feuer


Sowas mach ich ständig und zwar ohne Script.

1. Mach z.B. ein Feuer Event
2. Mach ein zweites Event
-setz es auf player touch
-conditional branch if player looks [hier richtung zum feuer hin auswählen]:
play BGS Fire
-conditional branch if player looks [hier richtung vom feuer weg angeben]:
stop BGS
3. Jetzt kopierst du event zwei und setzt soviele wie nötig in einem kreis um event 1
4. Nur noch die richtungen bei jedem event angepasst fertig

222
2 2
2 1 2
2 2
222

so ungefähr (halt nicht so schief, aber das ist nur weil ichs tippe)
1 - Feuer
2 - Soundevent


Die Lösung kenn ich bereits, aber da in meinem Spiel Verkehr kommt brauche ich eine schnellere Lösung.

RedLink

Landsknecht

Motto: Faulheit ist Relativ

  • Nachricht senden

5

Sonntag, 15. Februar 2009, 15:46

Wie Playm es sagte den script explorer da steht es drin.

Wenn du zufaul bist nehme einfach das Script
  • Fundort

    Es ist aus dem Script explorer der Autor ist Near Fantastica laut dem SE
  • Script

    Ruby Quellcode

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    
    #==============================================================================
    #   View Range Script
    #------------------------------------------------------------------------------
    #By: Near Fantastica
    #Date: 07/04/05
    #==============================================================================
     
    class View_Range
     #--------------------------------------------------------------------------
     # ? Range system works by sereching the area of a circle for the Player's xy
     #The Veiw is set in each event and is the radius of the circle
     #The Eaquation used is (Px-EX)^2 + (Py-Ey)^2 = radius^2
     #If the Radius is less than or equal to the View the Player is inside the circle
     #--------------------------------------------------------------------------
     def initialize
       @playing_bgs = []
       @bgs = BGS.new
       @bgs.pitch = 100
       @event_id = 0
       @event_locial_switch = ""
       @view_range = 0
       @playerx = 0
       @playery = 0
       @eventx = 0
       @eventy = 0
       @event_direction = 0
     end
     #--------------------------------------------------------------------------
     # Max Sound Effect Range is 8 units DO NOT OVER LAP
     # or it will go into super lag mode you have been warned
     # This is because you are trying to play 2 different sound
     # effects and will cycles between them
     #
     # Note : This overrides the maps default sound effect
     #--------------------------------------------------------------------------
     def event_sound(event_id, bgs_name)
       @bgs.name = bgs_name
       @event_id = event_id
       @playerx = $game_player.x
       @playery = $game_player.y
       @eventx = $game_map.events[@event_id].x
       @eventy = $game_map.events[@event_id].y
       @event_direction = $game_map.events[@event_id].direction
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius > 64
     if @playing_bgs[event_id] != nil
       @playing_bgs[event_id] = nil
       $game_system.bgs_fade(1)
       return
     end
       elsif radius <= 64 and radius > 49
     if @playing_bgs[event_id] == nil
       @bgs.volume = 30
       @playing_bgs[event_id] = @bgs
       $game_system.bgs_play(@bgs)
       return
     end
     @bgs.volume = 30
     if @bgs.volume != @playing_bgs[event_id].volume or
         @bgs.name != @playing_bgs[event_id].name
       @playing_bgs[event_id] = @bgs
       $game_system.bgs_play(@bgs)
       return
     end
       elsif radius <= 49 and radius > 36
     @bgs.volume = 40
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       elsif radius <= 36 and radius > 25
     @bgs.volume = 50
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       elsif radius <= 25 and radius > 16
     @bgs.volume = 60
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       elsif radius <= 16 and radius > 9
     @bgs.volume = 70
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       elsif radius <= 9 and radius > 4
     @bgs.volume = 80
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       elsif radius <= 4 and radius > 1
     @bgs.volume = 90
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       elsif radius = 1
     @bgs.volume = 100
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
       end
     end
     #--------------------------------------------------------------------------
     def enemies_view(event_id, view_range, els)
       @event_id = event_id
       @view_range = view_range
       @event_locial_switch = els
       @playerx = $game_player.x
       @playery = $game_player.y
       @eventx = $game_map.events[@event_id].x
       @eventy = $game_map.events[@event_id].y
       @event_direction = $game_map.events[@event_id].direction
       if @event_direction == 2
     if @playery >= @eventy
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
       end
       if @event_direction == 4
     if @playerx <= @eventx
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
       end
       if @event_direction == 6
     if @playerx >= @eventx
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
       end
       if @event_direction == 8
     if @playery <= @eventy
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
       end
     end
    end
    #======================================================
    class Scene_Title
     #--------------------------------------------------------------------------
     alias vr_scene_title_update update
     #--------------------------------------------------------------------------
    def update
      $view_range = View_Range.new
      vr_scene_title_update
    end
    end
    #======================================================
    class Game_System
       attr_accessor :playing_bgs
    end
    #======================================================
    class BGS
     #--------------------------------------------------------------------------
     attr_accessor :name
     attr_accessor :volume
     attr_accessor :pitch
     #--------------------------------------------------------------------------
     def initialize
       @name
       @volume
       @pitch
     end
    end
    #======================================================
    class Game_Map
     #--------------------------------------------------------------------------
     attr_accessor :map
    end
  • Anleitung

    -View Range-

    Mit diesem Skript kann man 3D Soundquellen erstellen. Desto näher der Spieler an der Soundquelle ist, desto lauter ist sie. Wenn man sich von ihr wegbewegt wird sie immer leiser bis man sie nicht mehr hört. Der Code dafür ist so aufgebaut:

    $view_range.event_sound(event_id,"Sound")

    Man muss diesen als Skript-Code in ein Event machen, welches als Paralleler Prozess läuft.


    Zusätzlich kann man das Skript noch als "Startbedingung" für Events benutzen.

    $view_range.enemies_view(event_id, view_range, els)

    view_range steht für den Radius indem der Local-Switch eingeschaltet werden soll.
    els steht für den Local-Switch der eingeschaltet werden soll. Also z.B. "A"
    Ein Code dafür könnte also so aussehen:

    $view_range.enemies_view(1, 8, "A")
  • Scripter

    Für den MV
  • Mitmacher

    nirgendswo

Social Bookmarks