设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 106|回复: 0

[转载发布] SE volume change over distance

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-7-31 13:36:28 | 显示全部楼层 |阅读模式
    Introduction
    This little script calculate the distance between an event and the player and the volume for a sound that can be played by that event.

    Features
    - Friendly little helper
     
    How to Use
    Simple put a call script command in your event.

    In my example I use a cat as an event that randomly plays a "meow" every five seconds with a probability of 25%.
    The maximum volume is 50 and the maximum distance the sound is played is 20.

    The call script command should be like this:
     
    @>Control Variables:[0021:Miau] = Random No.(0..100)
    @>Conditional Branch; Variable[0021:Miau]<=25
      @>Script: RPG::SE.new("Cat", volume(@event_id,20,50), 100).play
      @>Wait:300 frame(s)
      @>
    : Else
      @>Wait:300 frame(s)
      @>
    : Branch End
    @>
     
    Author's Note
    Free for use in commercial/noncommercial games.
    Credits are welcome. 
     
    Script




    Spoiler#------------------------------------------------------------------------------
    # weilhalt scripts
    # peter.guettinger@gmail.com
    #------------------------------------------------------------------------------
    #
    #------------------------------------------------------------------------------
    # Title : Sound Volume
    # Author : Peter Guettinger



    # Version 1.01# Date : Nov 15, 2013
    #------------------------------------------------------------------------------
    # Parameters:
    # eventID : ID of the event that produces the SE
    # md : maximum distance up to which you can hear the SE
    # mv : maximum volume of the SE
    # return : actual volume depending on the actual distance
    #
    # Example:
    # RPG::SE.new("Cat", volume(@event_id,20,50), 100).play
    #------------------------------------------------------------------------------


    def volume(eventID, md, mv)

      x1 = $game_player.x

      y1 = $game_player.y

      x2 = $game_map.events[eventID].x

      y2 = $game_map.events[eventID].y

      d = Math.sqrt((x2-x1)**2 + (y2-y1)**2).round

      v = mv-(mv*d/md).round

      if v < 0 then

        v = 0

      end

      return(v)

    end


    本贴来自国际rpgmaker官方论坛作者:neoscully处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/se-volume-change-over-distance.19990/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 17:12 , Processed in 0.084397 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表