赞 | 46 |
VIP | 271 |
好人卡 | 233 |
积分 | 94 |
经验 | 181865 |
最后登录 | 2024-9-17 |
在线时间 | 2748 小时 |
Lv4.逐梦者 「Pemercyia」 泱 银 Urhurrenna
- 梦石
- 0
- 星屑
- 9397
- 在线时间
- 2748 小时
- 注册时间
- 2008-9-5
- 帖子
- 3543
|
本帖最后由 cinderelmini 于 2017-4-24 14:59 编辑
参考VA做了一下,因为不知道怎么读取注释,所以只能用名字来设置了,
设置方法为:在事件命名的时候,末尾用“#n”的形式设置优先级,n为-1~1,,-1为角色下,0为同层,1为角色上,
但是穿透需要自行设置。
代码如下(Mian前Insert,冲突未知):
- class Game_Character
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- alias sny46_170424_init initialize
- def initialize
- sny46_170424_init
- # 默认角色优先级
- @priority_type = 0
- end
-
- #--------------------------------------------------------------------------
- # ● 获取画面 Z 坐标
- # height : 角色的高度
- #--------------------------------------------------------------------------
- def screen_z(height = 0)
- # 在最前显示的标志为 ON 的情况下
- if @always_on_top
- # 无条件设置为 999
- return 999
- end
- # 通过实际坐标和地图的显示位置来求得画面坐标
- z = (@real_y - $game_map.display_y + 3) / 4 + 32
- # 元件的情况下
- if @tile_id > 0
- # 元件的优先不足 * 32
- return z + $game_map.priorities[@tile_id] * 32
- # 角色的场合
- else
- # 如果高度超过 32 就判定为满足 31(加上优先级计算)
- return z + ((height > 32) ? 31 : 0) + @priority_type * 100
- end
- end
- end
- class Game_Event < Game_Character
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # map_id : 地图 ID
- # event : 事件 (RPG::Event)
- #--------------------------------------------------------------------------
- alias sny46_170424_init_event initialize
- def initialize(map_id, event)
- sny46_170424_init_event(map_id, event)
- # 初始化优先级并刷新
- @priority_type = @event.priority_type
- refresh
- end
-
- end
- module RPG
- attr_accessor :priority_type
- class Event
- # 初始化
- alias old_init initialize
- def initialize(x, y)
- old_init(x, y)
- # 初始化优先级
- @priority_type = priority_type
- end
-
- # 重新获取名字
- def name
- if @name.split(/#/)[1] == nil
- return @name
- else
- return @name.split(/#/)[0]
- end
- end
-
- # 获取优先级,同名字写在一起,用#分开
- def priority_type
- return @name.split(/#/)[1] ? @name.split(/#/)[1].to_f : 0
- end
- end
- end
复制代码 |
评分
-
查看全部评分
|