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

Project1

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

[已经解决] 为什么不能用实例变量?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3920
在线时间
254 小时
注册时间
2013-10-13
帖子
790
跳转到指定楼层
1
发表于 2022-8-4 23:11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  #------------------------------------------------------------------
  # ● 更改等级
  #     level : 新的等级
  #------------------------------------------------------------------
  def level=(level)
    # 检查上下限
    level = [[level, $data_actors[@actor_id].final_level].min, 1].max
    # 更改 EXP
    self.exp = @exp_list[level]
  end
在地图上设置加等级的NPC,等级+10,把level=(level)方法里面的第一行的level变成实变量,再把@exp_list[level]里面的level变成实变量,为什么等级是加了,但是技能只能学习初始化里的技能,升级后的技能却学不了?

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

2
发表于 2022-8-5 16:06:08 | 只看该作者
你需要继续查看exp=方法

点评

能指点一下吗?  发表于 2022-8-5 23:11
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3920
在线时间
254 小时
注册时间
2013-10-13
帖子
790
3
 楼主| 发表于 2022-8-5 23:12:32 | 只看该作者
顶起!顶起!顶起!顶起!顶起!顶起!别沉
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9275
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2022-8-5 23:23:40 | 只看该作者
因为升级学习到技能是一个完整的升级流程里的其中一部分,你直接用脚本简单粗暴调高等级只是把代表等级的变量调高了···
除了和当前等级绑定的东西会跟着变化,到了等级以后自动学习/遗忘的技能不会因为你直接调等级而变化
具体的到了等级自动学习/遗忘技能的流程你应该可以在game_actor之类的地方找到
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

5
发表于 2022-8-6 22:55:55 | 只看该作者
exp=方法的定义就在level=上面。很清楚的看出,在修改exp的时候,会逐步修改@level变量,并且添加相应的技能。
像你所做的,提前修改了@level,就会导致这个添加技能的步骤被跳过。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更改 EXP
  3.   #     exp : 新的 EXP
  4.   #--------------------------------------------------------------------------
  5.   def exp=(exp)
  6.     @exp = [[exp, 9999999].min, 0].max
  7.     # 升级
  8.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  9.       @level += 1
  10.       # 学会特技
  11.       for j in $data_classes[@class_id].learnings
  12.         if j.level == @level
  13.           learn_skill(j.skill_id)
  14.         end
  15.       end
  16.     end
  17.     # 降级
  18.     while @exp < @exp_list[@level]
  19.       @level -= 1
  20.     end
  21.     # 修正当前的 HP 与 SP 超过最大值
  22.     @hp = [@hp, self.maxhp].min
  23.     @sp = [@sp, self.maxsp].min
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 更改等级
  27.   #     level : 新的等级
  28.   #--------------------------------------------------------------------------
  29.   def level=(level)
  30.     # 检查上下限
  31.     level = [[level, $data_actors[@actor_id].final_level].min, 1].max
  32.     # 更改 EXP
  33.     self.exp = @exp_list[level]
  34.   end

点评

谢谢了 。我过后,去看了下,终于知道是怎么回事了  发表于 2022-8-8 23:09
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 21:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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