Project1

标题: 如何把指定的地形标志变得通行,其余地形标志变为不通行 [打印本页]

作者: CCD0645    时间: 2018-6-12 06:55
标题: 如何把指定的地形标志变得通行,其余地形标志变为不通行
例如,有不同的角色,A角色为鱼类,只能在地形标志为1(水)的地方通行,其余的地形标志不通行,
B角色为人,只能在地形标志0(陆地)通行。
作者: 89444640    时间: 2018-6-12 08:47
本帖最后由 89444640 于 2018-6-12 08:49 编辑

我也一直发愁随机移动的鱼会游上岸,只能设定为固定路线巡航。
感觉可以考虑利用地形标记来区分。
设置事件N可以在地形标记1的范围内通行,其他范围不能通过。

足音系统就是这么做的,目前足音系统极其稳定。

作者: 灯笼菜刀王    时间: 2018-6-12 09:59
本帖最后由 灯笼菜刀王 于 2018-6-12 10:16 编辑

用事件就可以了,搞个并列事件,

当角色是A的时候
  当地形标志是0的时候
     更改角色通行ON
  当地形标志是1的时候
    更改角色通行OFF
END

或者,用铺事件法,把水边围起来,然后条件分歧更改通行

如果范围是方方正正的,那可以用咱的 那个接触范围插件省得铺一堆事件. 广了个告


作者: 灯笼菜刀王    时间: 2018-6-12 10:11
本帖最后由 灯笼菜刀王 于 2018-6-12 10:13 编辑

无耻连贴

不过嘛,最近的年轻人都不满足这种朴实绿色的做法

所以想动脚本主意的话,找到 game map 通行判定 passable?

if tile_id == nil
   # 不能通行
   return false
   
这下面,塞个分歧

if tile_id == nil
   # 不能通行
   return false
elsif terrain_tag(x, y) == 1 and XXXXXXX
  return true

terrain_tag(x, y) 表示目标元件的地形标志, 当它满足1的时候, 后面再and上你要的其他判定,开关打开啦,鱼人在队伍里啦,主角学会水上漂啦,装备避水珠啦, 骑着碧水晶睛兽啦, 今天天气很好啦 巴拉巴拉的加上去,

然后满足条件 return true 可以通行 return false 不可通行。

这个设置对事件NPC也一样有效,所以可能会引起一些副作用,想办法避免吧, 保重XD
作者: 89444640    时间: 2018-6-12 11:18
本帖最后由 89444640 于 2018-6-12 11:47 编辑


这样?
发生了
syntaxerroe

我存一下,免得忘了
  turn_180 if self.is_a?(Game_Event) and @name.include?("鱼")and self.terrain_tag = 33
  # 当事件名称包括鱼时,碰到地形标记33的原件,180度掉头




#--------------------------------------------------------------------------
  # ● 取得/设置备注值(泛用)
  #--------------------------------------------------------------------------
  def method_missing(param_name, *args, &block)
    return super unless respond_to?(param_name) #这行跳出的
    param_str = param_name.to_s.sub!(/^_/, "")
    # 备注赋值的情况下
    if param_str[-1] == 61
      param_key = param_str.chop
      self.class.send :define_method, param_name do |value|
        set_note(param_key, value)
      end
      set_note(param_key, *args)
    # 备注取值的情况下
    else
      self.class.send :define_method, param_name do |value|
        get_note(param_str, value)
      end
      return get_note(param_str, *args)
    end
  end

作者: 灯笼菜刀王    时间: 2018-6-12 11:48
本帖最后由 灯笼菜刀王 于 2018-6-12 13:38 编辑
89444640 发表于 2018-6-12 11:18
这样?
发生了
syntaxerroe


def move_type_random
    # 随机 0~5 的分支
    case rand(6)
    when 0..3  # 随机
      move_random
    when 4  # 前进一步
      move_forward
    when 5  # 暂时停止
      @stop_count = 0
    end
   if self.is_a?(Game_Event) and @name.include?("鱼") and $game_map.events[@id].terrain_tag != 1
     turn_180
     move_forward
  end
end

这样改吧,避免鱼们先爬到岸上去发呆下再回水里 =。=.....


作者: 89444640    时间: 2018-6-12 14:19
灯笼菜刀王 发表于 2018-6-12 11:48
def move_type_random
    # 随机 0~5 的分支
    case rand(6)

效果不错~每次碰到边缘都会往回游动



主角可以往神社池塘里面撒鱼了~
而且还可以做个收集系统,往神社后院,或者主角开荒的四季种菜农家院里面扔个大鱼缸~
钓上来的鱼可以选择每种放一只进去XD~
本来我家就鱼缸多~XD

这样海迷宫地图限制也会,可以出现场景中既有海底又有水面的情况,以前因为鱼类会游到天上的问题,没法做随机移动的鱼~

战舰少女~不来一发潜艇发射的鱼雷嘛~


作者: ppspssss    时间: 2018-6-21 12:38
89444640 发表于 2018-6-12 14:19
效果不错~每次碰到边缘都会往回游动

老哥我想問你怎么魚能被湖中的水覆蓋怎么做到的




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