查看: 2854|回复: 7

[已经解决] 求助!怎么让事件里用到的地形标志有用

[复制链接]
梦石
0
星屑
1093
在线时间
881 小时
注册时间
2012-6-28
回帖
972
发表于 2012-8-13 23:16:30 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 没是的人 于 2012-8-14 11:08 编辑

元件用了地形标志为1的图块,人物踩在这样的元件上地形标志还是零,怎么让元件里图块的地形标志有用?
若能帮我,万分感谢!300+经验送上
______________________________________________________________________________________
准确的说是这样:事件用了地形标志为1的图块,人物踩在这样的事件上地形标志还是零,怎么让事件里图块的地形标志有用?
我以前是做flash所以留下了把事件叫成元件的陋习,造成大家理解错误,真是抱歉了各位。
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
回帖
3515
发表于 2012-8-13 23:17:53 | 显示全部楼层
变量操纵-角色的地形标志
条件判断
回复

使用道具 举报

梦石
0
星屑
1093
在线时间
881 小时
注册时间
2012-6-28
回帖
972
 楼主| 发表于 2012-8-13 23:23:54 | 显示全部楼层
Wind2010 发表于 2012-8-13 23:17
变量操纵-角色的地形标志
条件判断

没看懂您说的,变量里放的为什么是角色的地形标志?我实验结果是,“.terrain_tag”根本不理元件里的图块的地形标志
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-8-14 09:11:23 | 显示全部楼层
先确保脚本

  1. class Game_Map
  2.   def terrain_tag(x, y)
  3.     if @map_id != 0
  4.       for i in [2, 1, 0]
  5.         tile_id = data[x, y, i]
  6.         if tile_id == nil
  7.           return 0
  8.         elsif @terrain_tags[tile_id] > 0
  9.           return @terrain_tags[tile_id]
  10.         end
  11.       end
  12.     end
  13.     return 0
  14.   end
  15. end
复制代码
正常。

如果这一段脚本正常了,它会按照图层3、2、1层的顺序判断。
如果图块的地形≠0,那就返回当前地形。如果最终没有,则返回0.

最后,这样子就可以了。
null15.jpg
回复

使用道具 举报

梦石
0
星屑
1093
在线时间
881 小时
注册时间
2012-6-28
回帖
972
 楼主| 发表于 2012-8-14 11:09:52 | 显示全部楼层
hys111111 发表于 2012-8-14 09:11
先确保脚本正常。

如果这一段脚本正常了,它会按照图层3、2、1层的顺序判断。

对不起,其实我想问的是:
事件用了地形标志为1的图块,人物踩在这样的事件上地形标志还是零,怎么让事件里图块的地形标志有用?
我是新人,刚开始表达不是很清楚真是抱歉,麻烦下您帮我看下这个怎么解决好吗?谢谢您了。
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-8-14 11:23:36 | 显示全部楼层
没是的人 发表于 2012-8-14 11:09
对不起,其实我想问的是:
事件用了地形标志为1的图块,人物踩在这样的事件上地形标志还是零,怎么让事件 ...
  1. class Game_Map
  2.   def terrain_tag(x, y)
  3.     if @map_id != 0
  4.       for i in [2, 1, 0]
  5.         tile_id = data[x, y, i]
  6.         if tile_id == nil
  7.           return 0
  8.         elsif @terrain_tags[tile_id] > 0
  9.           return @terrain_tags[tile_id]
  10.         end
  11.       end
  12.     end
  13.     for event in @events.values
  14.       if event.x == x and event.y == y
  15.         tile_id = event.tile_id
  16.         if tile_id == nil
  17.         #  return 0
  18.         elsif @terrain_tags[tile_id] > 0
  19.           return @terrain_tags[tile_id]
  20.         end
  21.       end
  22.     end
  23.     return 0
  24.   end
  25. end
复制代码
改成这个试试。

点评

很好有用!太感谢了,已经很接近我要的答案了。希望能再帮我修改一下,我会把修改后的答案认可为最佳答案,谢谢了  发表于 2012-8-14 11:50

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1093
在线时间
881 小时
注册时间
2012-6-28
回帖
972
 楼主| 发表于 2012-8-14 11:48:15 | 显示全部楼层
hys111111 发表于 2012-8-14 11:23
改成这个试试。

这个可以,这是太感谢了!帮了我的大忙啊,但能不能把优先级改成,当元件在上面是先判断元件,(本来123层也有自己的优先级,会取最上面的地形标志,希望事件相当与第四层,有事件的时候先取事件的地形标志!)

点评

好像没有用。。。勾选了以后还是判断了地面的地形标志  发表于 2012-8-14 11:55
勾选事件“总在最前面显示”  发表于 2012-8-14 11:52
回复

使用道具 举报

梦石
0
星屑
1093
在线时间
881 小时
注册时间
2012-6-28
回帖
972
 楼主| 发表于 2012-8-14 12:08:32 | 显示全部楼层
hys111111 发表于 2012-8-14 11:23
改成这个试试。

https://rpg.blue/forum.php?mod=attachment&aid=MTI3MzIxfDU5ZmM0MjU2fDE3OTE0MDY1ODh8MHw%3D
总在最上好像没有用,附上我的测试工程
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部