查看: 4148|回复: 12

[已经解决] 不在队伍的角色也能获的经验

[复制链接]
梦石
0
星屑
86
在线时间
140 小时
注册时间
2009-8-2
回帖
39
发表于 2014-5-19 21:29:09 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 llzc22 于 2014-5-23 10:59 编辑

{:2_280:}大绅士们有这种脚本吗?即使不在队伍(死亡除外),每次打怪胜利也可以获得经验。
斑竹绅士不要扣分,搜索了很多次,就是木有……人物仓库不适用啊。
--------------------------------------------------------------------
十分感谢楼下几位大绅hen士tai,已经解决了,原来只有加入过队伍,再离开的角色就可以实现了。
只是升级提示窗口就无效了,我来整合一下,帮助那些同样需要这个的。
↓插入main前↓
--------------------------------------------------
[pre lang="ruby" line="1"]class Game_Actors
  def each
    @data.compact.each {|actor| yield actor }
  end
end[/pre]
--------------------------------------------------
替换“Scene_Battle 2”167行之后的脚本。
--------------------------------------------------
[pre lang="ruby" line="1"]$game_actors.each do |actor|
      unless actor.cant_get_exp?
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level         
        end
      end
    end[/pre]

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2014-5-20 21:06:12 | 显示全部楼层
你是指所有没死亡的角色都能得到经验还是说要兼容人物仓库?==

点评

没死亡的角色都能获得经验~人物仓库的话,我的意思是不要推荐这个了,因为它的功能不是我想要的。  发表于 2014-5-21 12:57
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2014-5-21 15:03:09 | 显示全部楼层
  1. class Game_Actor
  2.   def each
  3.     @data.compact.each(&block)
  4.   end
  5. end
复制代码
这个插入main之前,然后把Scene_Battle获得exp的那段脚本换成
  1.     $game_actors.each do |actor|
  2.       unless actor.cant_get_exp?
  3.         last_level = actor.level
  4.         actor.exp += exp
  5.         if actor.level > last_level
  6.           @status_window.level_up(i)
  7.         end
  8.       end
  9.     end
复制代码

点评

当然知道。我一般会写个block_given? 然后没有block的话返回Enumerator  发表于 2014-5-22 06:18
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

梦石
0
星屑
86
在线时间
140 小时
注册时间
2009-8-2
回帖
39
 楼主| 发表于 2014-5-21 18:38:16 | 显示全部楼层
英顺的马甲 发表于 2014-5-21 15:03
这个插入main之前,然后把Scene_Battle获得exp的那段脚本换成

是从“Scene_Battle 2”168行覆盖没错吧,打死怪物之后出现了这个……

错误

错误
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-5-21 18:52:54 | 显示全部楼层
llzc22 发表于 2014-5-21 18:38
是从“Scene_Battle 2”168行覆盖没错吧,打死怪物之后出现了这个……

不懂XP,不过根据我对Ruby的理解,应该把上半段改为
  1. class Game_Actors
  2.   def each
  3.     @data.compact.each {|actor| yield actor }
  4.   end
  5. end
复制代码

点评

除了yield之外也能写成def each(&block); @data.compact.each(&block);end,上面是我少打字了 == 写成@data.compact.each{|a|block.call(a)};end也行,只是效果有些小差别==   发表于 2014-5-21 22:02
回复

使用道具 举报

梦石
0
星屑
86
在线时间
140 小时
注册时间
2009-8-2
回帖
39
 楼主| 发表于 2014-5-21 19:15:04 | 显示全部楼层
taroxd 发表于 2014-5-21 18:52
不懂XP,不过根据我对Ruby的理解,应该把上半段改为


虽然打怪之后不弹出刚才那个对话框,但是没有加入队伍的角色不能获得经验,但是只要有个角色升级就弹出这个。
QQ图片20140521191347.jpg

点评

好吧,谢谢大绅士的帮忙  发表于 2014-5-21 19:54
不用XP,这种还是问3L吧 我也很好奇i是什么东西  发表于 2014-5-21 19:26
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45739
在线时间
7952 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-5-21 19:33:22 | 显示全部楼层
llzc22 发表于 2014-5-21 18:38
是从“Scene_Battle 2”168行覆盖没错吧,打死怪物之后出现了这个……

把2楼的class Game_Actor改成class Game_Actors
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
86
在线时间
140 小时
注册时间
2009-8-2
回帖
39
 楼主| 发表于 2014-5-21 19:48:34 | 显示全部楼层
fux2 发表于 2014-5-21 19:33
把2楼的class Game_Actor改成class Game_Actors

这次出这个了……
QQ图片20140521194807.jpg

点评

纯理论没测试过果然出错了 def each(&block)  发表于 2014-5-21 21:59
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45739
在线时间
7952 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-5-21 20:25:35 | 显示全部楼层
llzc22 发表于 2014-5-21 19:48
这次出这个了……

把后半段换成5楼的。

点评

还是不行啊,依然173行出错  发表于 2014-5-21 23:44
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2014-5-21 22:19:22 | 显示全部楼层
本帖最后由 英顺的马甲 于 2014-5-22 09:05 编辑

先前竟然回复错人了,呼叫@taroxd {:6_334:}

干脆在这里总结好了==
@fux2 我没测试过,如果有错帮忙纠正==
  1. class Test
  2.   def initialize
  3.     @data = []
  4.   end
  5.   def a
  6.     @data.each{|a|yield a} if block_given?
  7.   end
  8.   def b
  9.     @data.each{|a|yield a}
  10.   end
  11.   def c(&block)
  12.     @data.each(&block)
  13.   end
  14.   def d(&block)
  15.     @data.each{|a|block.call(a)}
  16.   end
  17. end
  18. test = Test.new

  19. test.a # 运行成功
  20. test.b # 报错
  21. test.c # 报错
  22. test.d # 报错

  23. test.a{} # 运行成功
  24. test.b{} # 运行成功
  25. test.c{} # 运行成功
  26. test.d{} # 报错

  27. test.a{|a|} # 运行成功
  28. test.b{|a|} # 运行成功
  29. test.c{|a|} # 运行成功
  30. test.d{|a|} # 运行成功
复制代码
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部