| 赞 | 7 |
| VIP | |
| 好人卡 | |
| 积分 | 11 |
| 经验 | |
| 最后登录 | 2018-11-19 |
| 在线时间 | 127 小时 |
- 梦石
- 0
- 星屑
- 1078
- 在线时间
- 127 小时
- 注册时间
- 2017-9-27
- 回帖
- 32
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 魔法☆梅莉 于 2017-11-9 19:23 编辑
[pre lang="ruby"]
#这个脚本的功能是当主角行走到迷宫中的某个隐藏事件(不限于物品、暗道等)一定距离内时,发出语音提示。
#要提示的迷宫隐藏事件,在事件的名称前缀写作<Hid=n>,n不为零即可。
#ME文件夹下需要有一个名为remind的音乐文件,当然也可以自行指定。
#作者:梅林
#可以不标注作者随意拿去使用,需要注意的是可能与功能类似的脚本产生冲突。
#有问题或者意见、以及功能修改需求时,可以找我。
class Game_Event < Game_Character
#设定提示距离(x+y),默认为20
REMIND_DISTANCE = 20
#设定调用的公共事件,默认20
REMIND_EVENT = 20
attr_accessor :style
attr_accessor :action_reminded
alias merlin20171109_initialize initialize
def initialize(map_id, event)
@style = 0
@action_reminded = 0
merlin20171109_initialize(map_id, event)
end
#取得事件的名字
def get_name
return @event.name
end
#当需要提示时,播放语音,默认为remind,并执行公共事件
def hidden_remind
if @style != 0
Audio.me_play("Audio/ME/remind", 100, 100)
$game_temp.reserve_common_event(REMIND_EVENT)
end
end
#判定某物体是否已被提示过,如已被提示过则不继续
def already_reminded?
return @action_reminded == 1
end
#若玩家距离指定事件距离以内则触发提示
def within_distance?
sx = distance_x_from($game_player.x).abs
sy = distance_y_from($game_player.y).abs
sx + sy < REMIND_DISTANCE
end
#事件的更新
alias merlin20171109_update update
def update
if within_distance?
if already_reminded?
else
hidden_remind
@action_reminded = 1
end
else
end
merlin20171109_update
end
end
class Game_Map
alias merlin20171109_distance_setup_events setup_events
def setup_events
merlin20171109_distance_setup_events
for i in @map.events.keys
@events.style = $1.to_i if @events.get_name =~ /<Hid\s*=\s*(\d+)\s*>/
end
end
end[/pre]
|
评分
-
查看全部评分
|