Project1

标题: 为啥我的时间系统工作不正常? [打印本页]

作者: gaofei677    时间: 2013-2-21 09:52
标题: 为啥我的时间系统工作不正常?
本帖最后由 gaofei677 于 2013-2-21 11:17 编辑

-------------------update(start)--------------------------------
自己研究了半天,最后自己找出了问题

问题1,把所有的逻辑或(or)取消,写成并列条件,虽然不知道为什么,大概是 or 的用法没写对
问题2,年份进制写法错误,应该修改成
RUBY 代码复制
  1. if $game_variables[31][1] == 1 and $game_variables[31][2] == 2 and $game_variables[31][3] == 3 and $game_variables[31][4] == 2
  2. $game_variables[31][3] = 0
  3. $game_variables[31][4] = 1
  4. $game_variables[31][1] = 0
  5. $game_variables[31][2] = 1
  6. $game_variables[31][0] += 1
  7. end
  8.  
  9. if  $game_variables[31][1] > 0 and $game_variables[31][2] > 2
  10. $game_variables[31][3] = 0
  11. $game_variables[31][4] = 1
  12. $game_variables[31][1] = 0
  13. $game_variables[31][2] = 1
  14. $game_variables[31][0] += 1
  15. end

-------------------update(end)--------------------------------
我在执行以下的时间系统的时候,当时间从 2014,01,01 增加到 2014,03,31 的时候没有问题
但是当时间应该为2014,04,01的时候,系统却显示为 2014,03,32
往后我再怎么增加天,只有号数增加正常,号数甚至可以到100,但是月份和年份就是不增加
这两天被这个时间系统弄得心力交瘁
求大侠帮我纠正一下错误

RUBY 代码复制
  1. #此定义了一个2014-2016 的时间系统
  2. #game_variables[31][0] 为2014年
  3. #game_variables[31][1] 为月份的十位
  4. #game_variables[31][2] 为月份的个位
  5. #game_variables[31][3] 为天数的十位
  6. #game_variables[31][4] 为天数的个位
  7.  
  8. $game_variables[31] = [4,0,1,0,1]
  9.  
  10. #此定义了号数的个位到十位的十进制
  11. if $game_variables[31][4] > 9
  12. $game_variables[31][3] += 1
  13. $game_variables[31][4] = 0
  14. end
  15.  
  16. #此定义了月份的个位到十位的十进制
  17. if $game_variables[31][2] > 9
  18. $game_variables[31][1] += 1
  19. $game_variables[31][2] = 0
  20. end
  21.  
  22. #此定义了年份满12月,年数进一位
  23. if $game_variables[31][1] == 1 and $game_variables[31][2] == 3
  24. $game_variables[31][1] = 0
  25. $game_variables[31][2] = 1
  26. $game_variables[31][0] += 1
  27. end
  28.  
  29. #此定义了大月31天月份进一位
  30. if ($game_variables[31][1] == 0 and $game_variables[31][2] == 1 or 3 or 5 or 7 or 8) or ($game_variables[31][1] == 1 and $game_variables[31][2] == 0 or 2)
  31. if $game_variables[31][3] == 3 and $game_variables[31][4] == 2
  32.   $game_variables[31][3] = 0
  33.   $game_variables[31][4] = 1
  34.   $game_variables[31][2] += 1
  35. end
  36. end
  37.  
  38. #此定义了小月30天月份进一位
  39. if ($game_variables[31][1] == 0 and $game_variables[31][2] == 4 or 6 or 9) or ($game_variables[31][1] == 1 and $game_variables[31][2] == 1)
  40. if $game_variables[31][3] == 3 and $game_variables[31][4] == 1
  41.   $game_variables[31][3] = 0
  42.   $game_variables[31][4] = 1
  43.   $game_variables[31][2] += 1
  44. end
  45. end
  46.  
  47. #此定义了2月28天月份进一位(2014年到2016年没有闰年)
  48. if $game_variables[31][1] == 0 and $game_variables[31][2] == 2
  49. if $game_variables[31][3] == 2 and $game_variables[31][4] == 9
  50.   $game_variables[31][3] = 0
  51.   $game_variables[31][4] = 1
  52.   $game_variables[31][2] += 1
  53. end
  54. end

作者: Password    时间: 2013-2-21 10:07
我只是在想……为什么不把这一大段做成公共事件,然后目标——并行处理?
好像无非也就是变量操作和条件分歧……而且条件分歧也可以判断脚本……
作者: gaofei677    时间: 2013-2-21 10:09
本来使用事件写的,只是懒得截图,所以就直接写代码在论坛上了




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