Project1

标题: 一个语句编写问题 [打印本页]

作者: mariofans    时间: 2013-12-30 13:35
标题: 一个语句编写问题
本帖最后由 mariofans 于 2013-12-30 15:09 编辑

for i in XX如果要判定i不在XX范围内该怎么写?
作者: batfjtn    时间: 2013-12-30 13:54
本帖最后由 batfjtn 于 2013-12-30 13:56 编辑

for是赋予....

你都赋予了数字怎么弄不在这个方位~~!!

for i 10...20

i的值在10到20之间~~!!!

你的要求应该是另外的写法~~!!
  1. i = rand(100) # 随机赋予I值在0到100
  2. case i
  3.   when 0..29
  4.     p i
  5.   when 30..49
  6.     p i
  7.   when 50..79
  8.     p i
  9.   when 80..100
  10.     p i
  11. end
复制代码

作者: mariofans    时间: 2013-12-30 14:37
batfjtn 发表于 2013-12-30 13:54
for是赋予....

你都赋予了数字怎么弄不在这个方位~~!!

额好吧我换种方向……(@xeup之前已经被赋值)
  1. if @xeup != $game_map.events.values
  2.       for eupn in $game_map.events.values
  3.         for eupo in @xeup
  4.           @nid = eupn.id
  5.           @oid = eupo.id
  6.           #if eupn != eupo
  7.           if @nid != @oid
  8.             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  9.             @xeup = $game_map.events.values
  10.           end
  11.         end
  12.       end
  13.     end
复制代码
这段脚本是在地图事件总数变化的情况下运用events.values的差异选取新生成的事件。
可不知道为什么只生成一个事件的情况下@nid却有一组数据……

如何让@nid只代表新生成的那一个事件?
作者: batfjtn    时间: 2013-12-30 14:46
本帖最后由 batfjtn 于 2013-12-30 14:52 编辑

是你表达错误吧??

if @nid < @oid

应该是小于吧~!!!

刚刚说错了~!!

应该是小于~~!!

在新的ID号没有超过旧的ID号的情况下执行一种方式~~!!

如果新ID超过之后执行另外一种方式~~!!!

作者: mariofans    时间: 2013-12-30 14:51
batfjtn 发表于 2013-12-30 14:46
是你表达错误吧??

if @nid > @oid

还是一样……
作者: mariofans    时间: 2013-12-30 14:56
batfjtn 发表于 2013-12-30 14:46
是你表达错误吧??

if @nid < @oid

怎么可能……新生成的事件ID怎么会比其他的小……
还有还是没变化啊……
作者: batfjtn    时间: 2013-12-30 15:02
mariofans 发表于 2013-12-30 14:51
还是一样……

      if @nid != @oid
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        @xeup = $game_map.events.values
      end

你要把这边的逻辑理清楚了就行了.....

这只是数值间的对比~!!

没有范围内的对比~!!
作者: mariofans    时间: 2013-12-30 15:04
☆————————————此帖已经终结————————————☆
  1. if @xeup != $game_map.events.keys.max
  2.       eupn = $game_map.events.keys.max
  3.       eupo = @xeup
  4.       if eupn > eupo
  5.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  6.         @xeup = $game_map.events.keys.max
  7.       end
  8.     end
复制代码
果然还是利用了events.keys.max只增不减的特性做成了判断。
感谢@batfjtn 提供了思路。
作者: 无脑之人    时间: 2014-1-1 17:14
$game_map.events是一个hash表,$game_map.events.values将会返回一个数组,里面存储了所有的事件
而$game_map.events.keys将会返回一个数组,里面是所有事件的编号【大概吧?】在加.max就会返回最大的id
for event in $game_map.events.values将会依次返回每一个事件




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