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

Project1

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

[已经解决] 如何把指定的地形标志变得通行,其余地形标志变为不通行

[复制链接]

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
跳转到指定楼层
1
发表于 2018-6-12 06:55:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
例如,有不同的角色,A角色为鱼类,只能在地形标志为1(水)的地方通行,其余的地形标志不通行,
B角色为人,只能在地形标志0(陆地)通行。

评分

参与人数 1+1 收起 理由
89444640 + 1 非常感谢楼主提出问题

查看全部评分

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
2
发表于 2018-6-12 08:47:25 | 只看该作者
本帖最后由 89444640 于 2018-6-12 08:49 编辑

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

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

点评

=。= 不对,==1 那就各种回头了,原本的 != 1就是除了 1以外,其他地形都会回头,和你要的效果一样啊  发表于 2018-6-12 11:20
应该说,”只有设置移动类型为“随机移动”且事件名字里有包含“鱼”,才有效, 设置其他移动类型没影响,移动设置里的“随机移动”也没影响  发表于 2018-6-12 11:17
双引号里的标志随便你改,要改火星文都可以,只要电脑能识别那个字体-,-  发表于 2018-6-12 11:15
最后的 != 1 改为 == 1就可以了  发表于 2018-6-12 11:14
还有,这个事件只要包括 鱼 就都是按照这种操作吗?那就挺麻烦了,我改个繁体字好了,面得影响其他事件,不会认不出来吧?  发表于 2018-6-12 11:13
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
3
发表于 2018-6-12 09:59:36 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-6-12 10:16 编辑

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

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

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

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

点评

楼主刚才的回复太逗了,变成咸鱼,其实这也是极好的~角色以顺道去岸边守着捡咸鱼吃XD  发表于 2018-6-12 14:26
如果你也是为鱼乱游的问题的话,那用6楼的做法就可以了,不过要先给game event添加个name属性 attr_reader name 然后下面初始化 @name = event.name  发表于 2018-6-12 14:12
我目前是这样做,但有个很大问题,就是鱼必需上岸了才能判断不通行,造成一上岸就搁浅,变成咸鱼  发表于 2018-6-12 13:51
这也有个问题,如果是在池塘水中通行的鱼,由于水面是禁止角色和npc通行的,因此鱼得设定为穿透ON才能在水里游动。我再试试下面方法。  发表于 2018-6-12 10:44
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
4
发表于 2018-6-12 10:11:33 | 只看该作者
本帖最后由 灯笼菜刀王 于 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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
5
发表于 2018-6-12 11:18:37 | 只看该作者
本帖最后由 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

点评

这个不是猫大的问题,是咱的写法问题-。-, 不能 self.terrain_tag 那就换个写法,用下面的试试  发表于 2018-6-12 11:52
猫大又把咱给灭了,看看怎么解决?  发表于 2018-6-12 11:46
ORZ,这是要进化成两栖类,要我画肺鱼……  发表于 2018-6-12 11:38
或者把这句拉到这个方法的end前面,效果应该会更好些,否则貌似会先爬到岸上再回头....  发表于 2018-6-12 11:23
你不觉得鱼后面的括号颜色不对嘛= =  发表于 2018-6-12 11:21
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
6
发表于 2018-6-12 11:48:21 | 只看该作者
本帖最后由 灯笼菜刀王 于 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

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

点评

=.= @event_id 改成@id 就好了~  发表于 2018-6-12 13:40
= =,。 好吧,看起来是有些麻烦,我晚点实验下在修改  发表于 2018-6-12 11:58
undefined method terrain_tag for nil nilclass  发表于 2018-6-12 11:56
看到了,我试试……  发表于 2018-6-12 11:53
猫大那个脚本给咱灭了……先看看哪里冲突到了  发表于 2018-6-12 11:53

评分

参与人数 1+1 收起 理由
89444640 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
7
发表于 2018-6-12 14:19:59 | 只看该作者
灯笼菜刀王 发表于 2018-6-12 11:48
def move_type_random
    # 随机 0~5 的分支
    case rand(6)

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



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

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

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

点评

-.- 咱的潜艇确实是不能移动到陆地上,不过咱使用的不是这个方法就是了  发表于 2018-6-12 14:44
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14629
在线时间
2152 小时
注册时间
2016-9-20
帖子
861
8
发表于 2018-6-21 12:38:58 | 只看该作者
89444640 发表于 2018-6-12 14:19
效果不错~每次碰到边缘都会往回游动

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

点评

优先度调高就可以了.....  发表于 2018-6-21 13:42
鱼透明度150,单独做个事件,水的闪光色调和水一致,只保留高光,在最前面显示,设置通行范围让角色行走图够不到水面的闪光。  发表于 2018-6-21 13:41
我发的贴子大多未经整理是草稿抱歉
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 19:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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