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

Project1

 找回密码
 注册会员
搜索
查看: 2403|回复: 4
打印 上一主题 下一主题

[已经解决] XP有没有办法调整事件的优先级?

[复制链接]

Lv2.观梦者

梦石
0
星屑
775
在线时间
924 小时
注册时间
2006-6-26
帖子
1529
跳转到指定楼层
1
发表于 2015-4-25 21:13:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
VX 和 VA 貌似都有这个功能,,,用XP做游戏做了一半。。。

不知道XP有没有办法通过一些简单的东西,或者脚本,来调整事件的优先级?


就是事件设置成可以穿透,,但是要让事件在主角脚下。
我是不是可以签名了?

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

来自 4楼
发表于 2015-4-25 22:16:30 | 只看该作者
本帖最后由 cinderelmini 于 2017-4-24 14:59 编辑

参考VA做了一下,因为不知道怎么读取注释,所以只能用名字来设置了,
设置方法为:在事件命名的时候,末尾用“#n”的形式设置优先级,n为-1~1,,-1为角色下,0为同层,1为角色上,
但是穿透需要自行设置。
代码如下(Mian前Insert,冲突未知):


  1. class Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   alias sny46_170424_init initialize
  6.   def initialize
  7.     sny46_170424_init
  8.     # 默认角色优先级
  9.     @priority_type = 0
  10.   end
  11.   
  12.   #--------------------------------------------------------------------------
  13.   # ● 获取画面 Z 坐标
  14.   #     height : 角色的高度
  15.   #--------------------------------------------------------------------------
  16.   def screen_z(height = 0)
  17.     # 在最前显示的标志为 ON 的情况下
  18.     if @always_on_top
  19.       # 无条件设置为 999
  20.       return 999
  21.     end
  22.     # 通过实际坐标和地图的显示位置来求得画面坐标
  23.     z = (@real_y - $game_map.display_y + 3) / 4 + 32
  24.     # 元件的情况下
  25.     if @tile_id > 0
  26.       # 元件的优先不足 * 32
  27.       return z + $game_map.priorities[@tile_id] * 32
  28.     # 角色的场合
  29.     else
  30.       # 如果高度超过 32 就判定为满足 31(加上优先级计算)
  31.       return z + ((height > 32) ? 31 : 0) + @priority_type * 100
  32.     end
  33.   end
  34. end


  35. class Game_Event < Game_Character
  36.   #--------------------------------------------------------------------------
  37.   # ● 初始化对像
  38.   #     map_id : 地图 ID
  39.   #     event  : 事件 (RPG::Event)
  40.   #--------------------------------------------------------------------------
  41.   alias sny46_170424_init_event initialize
  42.   def initialize(map_id, event)
  43.     sny46_170424_init_event(map_id, event)
  44.     # 初始化优先级并刷新
  45.     @priority_type = @event.priority_type
  46.     refresh
  47.   end
  48.   
  49. end

  50. module RPG
  51.   attr_accessor :priority_type
  52.   class Event
  53.     # 初始化
  54.     alias old_init initialize
  55.     def initialize(x, y)
  56.       old_init(x, y)
  57.       # 初始化优先级
  58.       @priority_type = priority_type
  59.     end
  60.    
  61.     # 重新获取名字
  62.     def name
  63.       if @name.split(/#/)[1] == nil
  64.         return @name
  65.       else
  66.         return @name.split(/#/)[0]
  67.       end
  68.     end
  69.    
  70.     # 获取优先级,同名字写在一起,用#分开
  71.     def priority_type
  72.       return @name.split(/#/)[1] ? @name.split(/#/)[1].to_f : 0
  73.     end
  74.   end
  75. end

复制代码

点评

多谢,暂时没有BUG。  发表于 2015-4-26 09:15

评分

参与人数 2星屑 +15 梦石 +1 收起 理由
RyanBern + 1 认可答案
1243852 + 15 不多了,表示一下。

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

梦石
0
星屑
2315
在线时间
5539 小时
注册时间
2011-1-10
帖子
6619

青铜编剧史诗剧作家剧作品鉴家

2
发表于 2015-4-25 21:41:45 | 只看该作者

点评

╮(╯_╰)╭那我不造了……刚刚找到了相关脚本但不知道怎么下手改……  发表于 2015-4-25 22:16
我指的是在角色脚下,,就是角色比他高。  发表于 2015-4-25 21:43
。我就是不想让他在最前面显示啊。。。。  发表于 2015-4-25 21:42
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
3
发表于 2015-4-25 22:13:56 | 只看该作者
把z值调低就可以吧。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
775
在线时间
924 小时
注册时间
2006-6-26
帖子
1529
5
 楼主| 发表于 2015-4-26 10:53:09 | 只看该作者
cinderelmini 发表于 2015-4-25 22:16
参考VA做了一下,因为不知道怎么读取注释,所以只能用名字来设置了,
设置方法为:在事件命名的时候,末尾 ...

有BUG,看有没有办法解决? 我把地图元件的优先级调到了  ★3  也比主角矮。。导致了,主角可以踩着墙或者桌子,。而不是被墙或者桌子遮挡。

点评

目前没问题,就是麻烦点。有些瑕疵。  发表于 2015-4-28 12:11
啊啊……不行啊……得找到优先级的算法才行,但是找不到……-1,0,1的话没问题就暂时先用着吧?那个*100也别改了……  发表于 2015-4-26 23:11
啊,疏忽了墙体什么,那个*100改成*64基本能解决……  发表于 2015-4-26 22:59
墙的图块优先级我设置的是★3  发表于 2015-4-26 21:05
不是,没有电始终最前端。BUG,不是出在事件上。是出在地图元件上。就是那些墙啊,地板啊这些。之前主角是1的时候,他直接在墙的上面。  发表于 2015-4-26 21:04
我是不是可以签名了?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 03:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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