查看: 8902|回复: 26

[已经解决] 那个,能不能帮我看看这段代码,出问题了

[复制链接]
梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
发表于 2021-3-22 13:54:34 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 1390959782 于 2021-3-24 11:28 编辑

  def jjns
    if 1<=level<=10
      jjns = 10
    end
    if 11<=level<=20
      jjns = 30
    end
    if 21<=level<=30
      jjns = 60
    end
    if 31<=level<=40
      jjns = 100
    end
    if 41<=level<=50
      jjns = 150
    end
  end

Project1.rar

181.08 KB, 下载次数: 63

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
 楼主| 发表于 2021-3-22 13:55:19 | 显示全部楼层
就是if那一行出问题了,程序说是这样
回复

使用道具 举报

梦石
0
星屑
14720
在线时间
2175 小时
注册时间
2016-9-20
回帖
777
发表于 2021-3-22 14:18:28 | 显示全部楼层
要and和括号
    if (1<=level) and (level<=10)
      jjns = 10
    end
    if (11<=level) and (level<=20)
      jjns = 30
    end
   
贴子只供参考我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
回复

使用道具 举报

梦石
0
星屑
29896
在线时间
5733 小时
注册时间
2016-3-8
回帖
1653
发表于 2021-3-22 14:41:18 | 显示全部楼层
本帖最后由 alexncf125 于 2021-3-22 14:56 编辑

class Game_Interpreter
  def jjns(level = 23.3)
    result = [10, 30, 60, 100, 150]
    index = (level.to_i - 1) / 10
    jjns = result[index]
  end
end

p jjns            #=>60
p jjns(44)     #=>150

咦...这里是xp区不是va区啊...
那么代码可能不通用...当我没来过好了...

点评

仔细看一下LZ的情况发现竟然是序列……O.O  发表于 2021-3-23 01:03
return ((1 + (level/10.0).ceil) * (level/10.0).ceil / 2) * 10  发表于 2021-3-23 01:02
回复

使用道具 举报

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
 楼主| 发表于 2021-3-22 22:38:13 | 显示全部楼层
alexncf125 发表于 2021-3-22 14:41
class Game_Interpreter
  def jjns(level = 23.3)
    result = [10, 30, 60, 100, 150]

哥,你这
回复

使用道具 举报

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
 楼主| 发表于 2021-3-22 22:39:39 | 显示全部楼层
ppspssss 发表于 2021-3-22 14:18
要and和括号
    if (1

啊,谢谢大哥
回复

使用道具 举报

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
 楼主| 发表于 2021-3-22 22:43:04 | 显示全部楼层
ppspssss 发表于 2021-3-22 14:18
要and和括号
    if (1

还是不行,那个end错报了,哥

点评

大佬写的脚本是以有class Game_Interpreter为前的..对应一个END..你没有自然会报错..删掉报错的END即可..  发表于 2021-3-22 23:07
回复

使用道具 举报

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
回帖
2014
发表于 2021-3-22 23:17:43 | 显示全部楼层
1. 运算符只有左边与右边,不是左边,中间,右边。
2. ruby括号非必要,主要问题还是出在(1)。

当要判断level介于1到10必须拆分成两个语句:level大过或等于1,level小过或等于10,两个表达式用and做合并判断。

错误写法 1 <= level <= 10
正确写法:1 <= level and level <= 10

点评

还有(1..10).include?(5) #=> true  发表于 2021-3-22 23:56
5.between?(1, 10) #=> true  发表于 2021-3-22 23:50
回复

使用道具 举报

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
 楼主| 发表于 2021-3-23 12:40:41 | 显示全部楼层
试了一下,各位大佬的说法都是正确的,原来是这样
回复

使用道具 举报

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
回帖
35
 楼主| 发表于 2021-3-23 12:44:54 | 显示全部楼层
enghao_lim 发表于 2021-3-22 23:17
1. 运算符只有左边与右边,不是左边,中间,右边。
2. ruby括号非必要,主要问题还是出在(1)。

那个,哥,能不能帮我看一下,这段代码又错了
    n = [[(base_maxhp + @maxhp_plus)*((level+jjns)*0.1+1), 1].max, 9999].min

点评

的确是需要报错信息,但一行脚本无法抓虫。  发表于 2021-3-24 00:39
Game_Battler子类Game_Actor与Game_Enemy;Game_Actor才有level,另外也不知道jjns写在哪了…… 血量计算一般要结果整数化  发表于 2021-3-23 14:43
你要发报错信的截图..  发表于 2021-3-23 14:01
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部