Project1

标题: 求助!怎么让事件里用到的地形标志有用 [打印本页]

作者: 没是的人    时间: 2012-8-13 23:16
标题: 求助!怎么让事件里用到的地形标志有用
本帖最后由 没是的人 于 2012-8-14 11:08 编辑

元件用了地形标志为1的图块,人物踩在这样的元件上地形标志还是零,怎么让元件里图块的地形标志有用?
[qq]490140373[/qq]若能帮我,万分感谢!300+经验送上
______________________________________________________________________________________
准确的说是这样:事件用了地形标志为1的图块,人物踩在这样的事件上地形标志还是零,怎么让事件里图块的地形标志有用?
我以前是做flash所以留下了把事件叫成元件的陋习,造成大家理解错误,真是抱歉了各位。dsu_plus_rewardpost_czw
作者: Wind2010    时间: 2012-8-13 23:17
变量操纵-角色的地形标志
条件判断
作者: 没是的人    时间: 2012-8-13 23:23
Wind2010 发表于 2012-8-13 23:17
变量操纵-角色的地形标志
条件判断

没看懂您说的,变量里放的为什么是角色的地形标志?我实验结果是,“.terrain_tag”根本不理元件里的图块的地形标志
作者: hys111111    时间: 2012-8-14 09:11
先确保脚本

  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.

最后,这样子就可以了。

作者: 没是的人    时间: 2012-8-14 11:09
hys111111 发表于 2012-8-14 09:11
先确保脚本正常。

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

对不起,其实我想问的是:
事件用了地形标志为1的图块,人物踩在这样的事件上地形标志还是零,怎么让事件里图块的地形标志有用?
我是新人,刚开始表达不是很清楚真是抱歉,麻烦下您帮我看下这个怎么解决好吗?谢谢您了。
作者: hys111111    时间: 2012-8-14 11:23
没是的人 发表于 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:48
hys111111 发表于 2012-8-14 11:23
改成这个试试。

这个可以,这是太感谢了!帮了我的大忙啊,但能不能把优先级改成,当元件在上面是先判断元件,(本来123层也有自己的优先级,会取最上面的地形标志,希望事件相当与第四层,有事件的时候先取事件的地形标志!)
作者: 没是的人    时间: 2012-8-14 12:08
hys111111 发表于 2012-8-14 11:23
改成这个试试。

https://rpg.blue/forum.php?mod=attachment&aid=MTI3MzIxfDFkM2Q4NjEwNTljOWM1MmNkYzY0NGQxZDVlNGY1ZjQ5fDE3Mjc2NzAwNjU%3D&request=yes&_f=.rar
总在最上好像没有用,附上我的测试工程




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