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

Project1

 找回密码
 注册会员
搜索

[已解决]如何做到开启穿透后,不与门发生事件?

查看数: 3239 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-8-30 08:26

正文摘要:

本帖最后由 miantouchi 于 2019-8-30 21:17 编辑 如何做到开启穿透后,不与门发生事件? 人物开启穿透功能后,还能进去帐篷里面,我想让他开启穿透后,不与门事件发生。 (其实我就是想做个飞行功能,开启后改下 ...

回复

灯笼菜刀王 发表于 2019-8-30 10:17:29
本帖最后由 灯笼菜刀王 于 2019-8-30 10:38 编辑

一句话就可以了,  当10086开关打开的时候, 中断执行,  注意check_event_trigger_touch 这个函数有两个, game player 和 game event , 一个是主角碰事件,一个是事件碰主角, 要禁止的话要都禁了哦  还有一个 check_event_trigger_here 也要一起禁

  #--------------------------------------------------------------------------
  # ● 接触事件启动判定
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    return false if $game_switches[10086]
    result = false
    # 事件执行中的情况下
    if $game_system.map_interpreter.running?
      return result
    end
    # 全事件的循环
    for event in $game_map.events.values
      # 事件坐标与目标一致的情况下
      if event.x == x and event.y == y and [1,2].include?(event.trigger)
        # 跳跃中以外的情况下、启动判定是正面的事件
        if not event.jumping? and not event.over_trigger?
          event.start
          result = true
        end
      end
    end
    return result
  end

后排提醒, 虽然禁止是很容易, 但是要应用可不容易, 要好好考虑如何安排这个开关的启动和关闭, 打开它是"所有接触启动的事件都无效了哦"

当然, 也可以增加条件, 让它不"禁止全部"

先加入这个插件

class Game_Event < Game_Character
   def  name ; return @event.name ; end
end

然后, 把条件改为   return false if $game_switches[10086] && name.include?("门")   这样,打开10086开关的时候, 只有事件名字带"门"字的会被禁止触发

根据需要, 好好考虑用什么条件吧

点评

对船不能上岸,只能在海洋图块里面活动,行驶船的时候遇敌是海里的怪物,如果有啥问题,继续开贴。  发表于 2019-8-31 21:05
船你要啥效果,只能在海中行驶不能上岸吗,那个我感觉可以根据地形编号来处理  发表于 2019-8-31 17:39
接下来研究船,1楼展示下效果图,嘚瑟下,^_^  发表于 2019-8-30 21:18
多谢!for event in $game_map.events.values,下面加上就好用了。  发表于 2019-8-30 21:00
因为name是定义到event的方法, 所以自然就要找event的对象来调用, 自己研究下game player里在哪里调用event, 就可以用它了  发表于 2019-8-30 20:19

评分

参与人数 2星屑 +100 +1 收起 理由
RyanBern + 100 认可答案
miantouchi + 1 认可答案

查看全部评分

89444640 发表于 2019-8-30 09:03:11
加个开关多省事,事件页加个分歧,当开关打开时 空白 中断事件处理 开关关闭时,该咋地咋地,中断事件处理,
不过缺点,每个角色和每个事件页都得加,除非能用脚本写个方法,当开关10086打开时,所有事件均不触发。
缺点,飞起来就只能满地逛了,想触发事件必须落下才可以,然后你还得写落脚点地形通行情况判断,不可通行位置不可降落,避免落到水里。

点评

o(╥﹏╥)o 丢人了。  发表于 2019-8-30 19:36
10086是菜刀老师教出来的“任意开关”表达方式XD  发表于 2019-8-30 16:49
老实人啊,10086只是个举例,你想用1-5000里面的哪个开关还不是你自己说了算  发表于 2019-8-30 15:43
开关总共5000个,拟怎么写10086,有什么特殊用途?  发表于 2019-8-30 11:42
那就用变量来分歧,0、都触发,1、触发空中不触发低下,2、都不触发  发表于 2019-8-30 10:14

评分

参与人数 1+1 收起 理由
miantouchi + 1 塞糖

查看全部评分

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

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

GMT+8, 2024-11-26 19:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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