Project1

标题: 能否做出那种角色离开后会自动恢复的按钮... [打印本页]

作者: 璀璨的璨    时间: 2014-6-3 05:02
标题: 能否做出那种角色离开后会自动恢复的按钮...
本帖最后由 璀璨的璨 于 2014-6-3 05:37 编辑

例:

需要在人物(或任意其他物件)踏在按钮上时,左边的门打开,直到人物(物件)离开按钮时,按钮恢复原状,门再次关闭。
也许可以调用本事件的坐标来实现,但是不知道具体怎么写
作者: 绝命崖    时间: 2014-6-3 05:41
这个可以尝试用开关解决吧?比如用两个开关。
作者: taroxd    时间: 2014-6-3 06:17
按钮外面的格子设事件,条件是主角接触,效果是关门
作者: tseyik    时间: 2014-6-3 11:09
本帖最后由 tseyik 于 2014-6-3 11:11 编辑

公共事件,
経過時間,移動次数
設定开关,変数
作者: moy    时间: 2014-6-3 11:20
  1. #==============================================================================
  2. # ☆ Custom Adventure 踩踏/置物判断
  3. # -- Last Updated: 2014.6.3
  4. # -- by Moy
  5. # -- 转载请保留以上信息
  6. #==============================================================================
  7. #   本脚本判断一个在人物下层的事件是否被其他事件/角色踩踏
  8. #   对本事件使用只需要在分歧脚本中使用get_character(0).stepped_on?即可。
  9. #   判断别的事件请自行获取实例后使用。
  10. #==============================================================================
  11. # ■ Game_Event
  12. #==============================================================================
  13. class Game_Event < Game_Character
  14.   #--------------------------------------------------------------------------
  15.   # ● 判断本事件是否被其他事件/角色踩踏
  16.   #--------------------------------------------------------------------------
  17.   def stepped_on?
  18.     stepped_by_events?(@x,@y) || stepped_by_player_characters?(@x, @y)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 判断某位置是否被其他事件踩踏
  22.   #--------------------------------------------------------------------------
  23.   def stepped_by_events?(x, y)
  24.     $game_map.events_xy_nt(x, y).any? do |event|
  25.       event.normal_priority?
  26.     end
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 判断某位置是否被主控角色踩踏
  30.   #--------------------------------------------------------------------------
  31.   def stepped_by_player_characters?(x, y)
  32.     @priority_type == 0 && $game_player.collide?(x, y)
  33.   end
  34. end
复制代码
自用,于是随手写了。注意设置为“在人物下方”以及“允许穿透(为了其他事件能推上去)”

作者: zhaoxun96    时间: 2014-6-4 18:39
本帖最后由 zhaoxun96 于 2014-6-5 10:37 编辑

在地图做一个并行事件,弄四个变量ABCD,变量A赋值开关X坐标,变量B赋值开关Y坐标,变量c赋值角色X坐标,变量d赋值角色Y坐标
然后:条件分歧,当A=C时
::条件分歧,当B=D时 开关开启
::否则 开关关闭
:否则 开关关闭
我手里没VA,无法测试,但应该是可行的。
-----以下为6月5日的改进内容-----
事件的判定我昨晚回去仔细思考了下,再加入变量EF,分别赋值事件XY值,并且加入判定变量GHIJ
于是就应该是这样的吧
并行事件
变量ABCDEF分别赋值
变量G赋值变量C
变量G+1
变量H赋值变量C
变量H-1
变量I赋值变量D
变量I+1
变量J赋值变量D
变量J-1
1条件分歧,当G=E时 开关(推石头模式)开启
1否则
2条件分歧,当H=E时 开关(推石头模式)开启
2否则
3条件分歧,当I=F时 开关(推石头模式)开启
3否则
4条件分歧,当J=F时 开关(推石头模式)开启
4否则开关(推石头模式)关闭
(注释:下面这是个新的分歧,也就是说是接在上面那个分歧的整个分歧后面而不是否则的后面)
1条件分歧 当开关(推石头模式)开启时 2条件分歧 当E=A时
3条件分歧 当F=B时 开关(机关)开启
3否则 开关(机关)关闭
2否则 开关(机关)关闭
1否则
2条件分歧,当开关(机关)关闭时(这个是接在1的否则后面,是为了分歧在不开启推石头开关的时候角色站上去的判定)
3条件分歧 当A=C时
4条件分歧,当B=D时 开关开启
4否则 开关(机关)关闭
3否则 开关(机关)关闭
2否则 (这后面不接东西)
我没有VA,所以只能弄出个这样,应该是可行的,唯一的问题是当石头在机关旁边时主角站上机关也没用,但是这个等我有时间调一调也是能解决的。
我为什么要做这个东西?我知道这东西有点麻烦,要占用10个变量3个开关。但其实我只是想说明,脚本确实很方便,但不用什么都依赖脚本,事件其实也能解决很多难题的。
作者: zhaoxun96    时间: 2014-6-5 10:45
moy 发表于 2014-6-3 11:20
自用,于是随手写了。注意设置为“在人物下方”以及“允许穿透(为了其他事件能推上去)”
...

嘛,主要是因为以前太贪心各种插脚本,结果不知道什么脚本冲突导致了很多问题,以后就有脚本恐惧症了.......
当然我是脚本废也是一大原因




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1