设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3387|回复: 6

[交流讨论] 迷宫隐藏物品提示

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1078
在线时间
127 小时
注册时间
2017-9-27
帖子
42
发表于 2017-11-9 01:28:24 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 魔法☆梅莉 于 2017-11-9 19:23 编辑

RUBY 代码复制
  1. #这个脚本的功能是当主角行走到迷宫中的某个隐藏事件(不限于物品、暗道等)一定距离内时,发出语音提示。
  2. #要提示的迷宫隐藏事件,在事件的名称前缀写作<Hid=n>,n不为零即可。
  3. #ME文件夹下需要有一个名为remind的音乐文件,当然也可以自行指定。
  4. #作者:梅林
  5. #可以不标注作者随意拿去使用,需要注意的是可能与功能类似的脚本产生冲突。
  6. #有问题或者意见、以及功能修改需求时,可以找我。
  7.  
  8. class Game_Event < Game_Character
  9. #设定提示距离(x+y),默认为20
  10. REMIND_DISTANCE = 20
  11. #设定调用的公共事件,默认20
  12. REMIND_EVENT = 20
  13.  
  14. attr_accessor :style
  15. attr_accessor :action_reminded
  16.  
  17.     alias merlin20171109_initialize initialize
  18.     def initialize(map_id, event)
  19.      @style = 0
  20.      @action_reminded = 0
  21.      merlin20171109_initialize(map_id, event)
  22.     end
  23.     #取得事件的名字
  24.     def get_name
  25.       return @event.name
  26.     end
  27.    #当需要提示时,播放语音,默认为remind,并执行公共事件
  28.     def hidden_remind
  29.       if @style != 0
  30.         Audio.me_play("Audio/ME/remind", 100, 100)
  31.         $game_temp.reserve_common_event(REMIND_EVENT)
  32.       end
  33.     end
  34.    #判定某物体是否已被提示过,如已被提示过则不继续
  35.     def already_reminded?
  36.       return @action_reminded == 1  
  37.     end
  38.  
  39.    #若玩家距离指定事件距离以内则触发提示
  40.     def within_distance?
  41.      sx = distance_x_from($game_player.x).abs
  42.      sy = distance_y_from($game_player.y).abs
  43.      sx + sy < REMIND_DISTANCE
  44.     end
  45.  
  46.     #事件的更新
  47.     alias merlin20171109_update update
  48.     def update
  49.      if within_distance?
  50.       if already_reminded?
  51.         else
  52.           hidden_remind
  53.           @action_reminded = 1
  54.        end
  55.       else  
  56.       end
  57.       merlin20171109_update
  58.     end
  59.  
  60.   end
  61.  
  62. class Game_Map
  63.   alias merlin20171109_distance_setup_events setup_events
  64.   def setup_events
  65.     merlin20171109_distance_setup_events
  66.     for i in @map.events.keys
  67.       @events[i].style = $1.to_i if @events[i].get_name =~ /<Hid\s*=\s*(\d+)\s*>/
  68.     end
  69.   end
  70. end


评分

参与人数 1+1 收起 理由
濒临崩坏的木南 + 1 塞糖

查看全部评分

我是梅林,人称花之魔术师。

Lv3.寻梦者

梦石
0
星屑
2323
在线时间
274 小时
注册时间
2017-7-25
帖子
163
发表于 2017-11-9 18:22:46 | 显示全部楼层
可不可以……改个一定距离内直接触发事件或者打开开关,不用提示音的?

点评

↓已经改好了。突然被叫大佬好慌啊!  发表于 2017-11-9 19:25
我永远喜欢大佬  发表于 2017-11-9 18:33

评分

参与人数 1+1 收起 理由
魔法☆梅莉 + 1 可以的

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1592
在线时间
280 小时
注册时间
2017-10-17
帖子
81
发表于 2017-11-9 18:59:06 | 显示全部楼层
太好了这个,感谢分享。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
386
在线时间
63 小时
注册时间
2023-7-5
帖子
15
发表于 2023-7-17 21:45:11 | 显示全部楼层
显示63报错
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
386
在线时间
63 小时
注册时间
2023-7-5
帖子
15
发表于 2023-7-17 21:53:20 | 显示全部楼层
显示63报错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 08:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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