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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
86
在线时间
140 小时
注册时间
2009-8-2
帖子
49
跳转到指定楼层
1
发表于 2014-5-19 21:29:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

{:2_280:}大绅士们有这种脚本吗?即使不在队伍(死亡除外),每次打怪胜利也可以获得经验。
斑竹绅士不要扣分,搜索了很多次,就是木有……人物仓库不适用啊。
--------------------------------------------------------------------
十分感谢楼下几位大绅hen士tai,已经解决了,原来只有加入过队伍,再离开的角色就可以实现了。
只是升级提示窗口就无效了,我来整合一下,帮助那些同样需要这个的。
↓插入main前↓
--------------------------------------------------
RUBY 代码复制
  1. class Game_Actors
  2.   def each
  3.     @data.compact.each {|actor| yield actor }
  4.   end
  5. end

--------------------------------------------------
替换“Scene_Battle 2”167行之后的脚本。
--------------------------------------------------
RUBY 代码复制
  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.         end
  7.       end
  8.     end

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
2
发表于 2014-5-20 21:06:12 | 只看该作者
你是指所有没死亡的角色都能得到经验还是说要兼容人物仓库?==

点评

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

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
3
发表于 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方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

QQ图片20140521183525.jpg (15.5 KB, 下载次数: 8)

错误

错误
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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


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

QQ图片20140521191347.jpg (17.15 KB, 下载次数: 12)

QQ图片20140521191347.jpg

点评

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

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42404
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

7
发表于 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
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
86
在线时间
140 小时
注册时间
2009-8-2
帖子
49
8
 楼主| 发表于 2014-5-21 19:48:34 | 只看该作者
fux2 发表于 2014-5-21 19:33
把2楼的class Game_Actor改成class Game_Actors

这次出这个了……

QQ图片20140521194807.jpg (17.2 KB, 下载次数: 13)

QQ图片20140521194807.jpg

点评

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

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42404
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

9
发表于 2014-5-21 20:25:35 | 只看该作者
llzc22 发表于 2014-5-21 19:48
这次出这个了……

把后半段换成5楼的。

点评

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

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
10
发表于 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方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 13:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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