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

Project1

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

[已经解决] [已解决]上下船,陆地和海洋通行度切换如何解决?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14636
在线时间
2198 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2019-9-1 16:07:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2019-9-2 18:13 编辑

我把海洋正常是设置不可通行的状态,
角色在陆地时,陆地可以通行,海洋不可通行。
角色上船后,   就只可以在海洋图块可以通行。

我的做法是,角色坐上船后,开启穿透,用脚本设置,航船时只允许穿透地形标志为2的图块(也就是海洋图块),效果是达到了。
出现的问题:现在的问题是海洋图块如果是相连的话,并且是两条小河流的话,会发生穿越河流。
如何解决。


之后我又改了河流的通行度,关闭船只事件里面的穿越功能,河流穿越问题解决了,但是角色如果是经过中心那个河流图块,角色又能过河了,悲剧!!!
更多图片 小图 大图
组图打开中,请稍候......

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
2
发表于 2019-9-1 19:49:27 | 只看该作者
本帖最后由 灯笼菜刀王 于 2019-9-1 19:51 编辑

既然如此, 那就直接搞两套通行度,  在数据库把图块设置复制一份, 通行度设置成不一样的, 然后, 到game map 里加一句

def 通行替换(n)
   @passages = $data_tilesets[n].passages
end

然后,上船的时候  $game_map.通行替换(10086),
下船的时候,  $game_map.通行替换(10087), 搞定收工,还省了个穿透呢

点评

完美解决了,遇敌不会影响吧。  发表于 2019-9-1 21:16
属实有点变态了,移花接木,那我这么干了,我的这个图块是256*2048,一张陆地通行度,一张水中通行度,看样还可以一张空中通行度。  发表于 2019-9-1 21:16

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14636
在线时间
2198 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

3
 楼主| 发表于 2019-9-1 21:27:56 | 只看该作者
本帖最后由 miantouchi 于 2019-9-2 07:52 编辑
灯笼菜刀王 发表于 2019-9-1 19:49
既然如此, 那就直接搞两套通行度,  在数据库把图块设置复制一份, 通行度设置成不一样的, 然后, 到 ...


最后一个问题就是,水中的荷花,开始的时候是不可通行,当使用一个宝物后,
船就可以通行荷花了。
也就是使用宝物后更改荷花的通行度。
我也不至于为了水中个别几个屏障,再弄个这么大工程吧

是这个样子,不单单几片荷叶的。

111111.png (17.42 KB, 下载次数: 25)

111111.png

1.png (12.54 KB, 下载次数: 25)

1.png

点评

纠结在与用脚本怎么表述,如果条件达成,地图里面所有的荷叶通行度设置可通行。  发表于 2019-9-2 07:55
实际情况是刚刚传上来的下面的图片,荷叶遍布很多,总不能把每个荷叶一个事件,铺满事件吧。  发表于 2019-9-2 07:53
搞了半天最基本的东西反而忘了2333  发表于 2019-9-2 00:04
事件处理 , 分两页, 1页不可通行, 2页可通行, 条件为 船开关打开 + (通行开关打开 or 主线变量 > 某个值的时候)  发表于 2019-9-1 23:11
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
4
发表于 2019-9-2 11:57:23 | 只看该作者
本帖最后由 灯笼菜刀王 于 2019-9-2 11:59 编辑

那就用你前面的方法呗, 用地形标志, 满足条件后放行  或者用元件ID判断

# 从层按从上到下的顺序调查循环
    for i in [2, 1, 0]
      # 取得元件 ID
      tile_id = data[x, y, i]
      # 取得元件 ID 失败
      if tile_id == nil
        # 不能通行
        return false
      elsif [10086,10087,10088].include?(tile_id)  and $game_switches[10086]
          return true

      # 如果障碍物的接触被设置的情况下
      elsif @passages[tile_id] & bit != 0
        # 不能通行
        return false

点评

菜刀大大如果看到..上一下Q..有事请教  发表于 2019-9-14 20:27
好用,果然厉害,打了一下午尽然,自己把括号打错了,-_-||。  发表于 2019-9-2 18:13

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 07:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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