设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 7448|回复: 26
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
跳转到指定楼层
1
发表于 2021-3-22 13:54:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 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

Lv2.观梦者

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

鸭哥,我看了一下帮助里面的Ruby语法,感觉和c#的语法好像,是不是像网上说的编程语言都是互通的,如果我学会了ruby,是不是c语言也就会了

点评

语法不一样,可是逻辑是相通的,当你熟悉一门语法并且可以解决问题后很自然很快速的就可以学会第二第三种,毕竟编程语法只是很小的一部分。  发表于 2021-3-25 23:36
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
15
 楼主| 发表于 2021-3-25 12:26:28 | 只看该作者
enghao_lim 发表于 2021-3-24 20:55
首先,函数必须返回值不然调用会返回nil。

其次,比起把jjns放在game_batller,它更适合game_actor。

那个,鸭哥,就是在RPG XP里面那个帮助书里面包含了所有的ruby语言语法了吗?可以在那里面学吗?

点评

包含了RMXP足够的rgss语法了,一些形式上可是作用相同的语法根据以后书写习惯或者运行要求再去考虑也不迟。  发表于 2021-3-25 23:35
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
14
 楼主| 发表于 2021-3-24 23:09:38 | 只看该作者
enghao_lim 发表于 2021-3-24 20:55
首先,函数必须返回值不然调用会返回nil。

其次,比起把jjns放在game_batller,它更适合game_actor。

谢谢鸭哥,我也打算从基础学起,只不过高三了,没时间,又不知从何学起,没有头绪,谢谢鸭哥建议

点评

学脚本先学语法不是最基础的吗……可以找下ruby语言的菜鸟教程对着学  发表于 2021-3-25 00:32
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
13
 楼主| 发表于 2021-3-24 23:07:47 | 只看该作者
enghao_lim 发表于 2021-3-24 20:55
首先,函数必须返回值不然调用会返回nil。

其次,比起把jjns放在game_batller,它更适合game_actor。

好的好的,对不住,谢谢小哥哥,谢谢鸭哥
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
12
发表于 2021-3-24 20:55:50 | 只看该作者
本帖最后由 enghao_lim 于 2021-3-24 21:01 编辑

首先,函数必须返回值不然调用会返回nil。
def jjns
    if 1<=level and level<=10
      jjns = 10
    end
    if 11<=level and level<=20
      jjns = 30
    end
    if 21<=level and level<=30
      jjns = 60
    end
    if 31<=level and level<=40
      jjns = 100
    end
    if 41<=level and level<=50
      jjns = 150
    end
    return jjns
  end

其次,比起把jjns放在game_batller,它更适合game_actor。
game_enemy和game_actor都是game_battler的子类,可是game_enemy不具有level变脸。

还有LZ,下次提问更建议你把问题详细描述而不是一句话一个工程。工程起码要告知如何触发问题,更何况你的工程还素材缺失,要不是当下有空通常我看到这类工程都会直接无视。
从楼主提问和写法,我猜你没有编程经验,更简易百度一些ruby的基本菜鸟教程,搞懂一些基本语法这样才事半功倍,不求马上学会解决问题的能力,但是察觉问题的能力是编程非常重要的一环。

评分

参与人数 1星屑 +70 收起 理由
RyanBern + 70 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
11
 楼主| 发表于 2021-3-24 12:30:17 | 只看该作者
enghao_lim 发表于 2021-3-22 23:17
1. 运算符只有左边与右边,不是左边,中间,右边。
2. ruby括号非必要,主要问题还是出在(1)。

怪我怪我,忘记发附件了,现在补上了,大佬
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
10
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
47 小时
注册时间
2016-9-25
帖子
41
9
 楼主| 发表于 2021-3-23 12:40:41 | 只看该作者
试了一下,各位大佬的说法都是正确的,原来是这样
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
8
发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-1 14:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表