Project1
标题: 不在队伍的角色也能获的经验 [打印本页]
作者: llzc22 时间: 2014-5-19 21:29
标题: 不在队伍的角色也能获的经验
本帖最后由 llzc22 于 2014-5-23 10:59 编辑
{:2_280:}大绅士们有这种脚本吗?即使不在队伍(死亡除外),每次打怪胜利也可以获得经验。
斑竹绅士不要扣分,搜索了很多次,就是木有……人物仓库不适用啊。
--------------------------------------------------------------------
十分感谢楼下几位大绅hen士tai,已经解决了,原来只有加入过队伍,再离开的角色就可以实现了。
只是升级提示窗口就无效了,我来整合一下,帮助那些同样需要这个的。
↓插入main前↓
--------------------------------------------------
class Game_Actors
def each
@data.compact.each {|actor| yield actor }
end
end
class Game_Actors
def each
@data.compact.each {|actor| yield actor }
end
end
--------------------------------------------------
替换“Scene_Battle 2”167行之后的脚本。
--------------------------------------------------
$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
$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
作者: 英顺的马甲 时间: 2014-5-20 21:06
你是指所有没死亡的角色都能得到经验还是说要兼容人物仓库?==
作者: 英顺的马甲 时间: 2014-5-21 15:03
- class Game_Actor
- def each
- @data.compact.each(&block)
- end
- end
复制代码 这个插入main之前,然后把Scene_Battle获得exp的那段脚本换成- $game_actors.each do |actor|
- unless actor.cant_get_exp?
- last_level = actor.level
- actor.exp += exp
- if actor.level > last_level
- @status_window.level_up(i)
- end
- end
- end
复制代码
作者: llzc22 时间: 2014-5-21 18:38
英顺的马甲 发表于 2014-5-21 15:03
这个插入main之前,然后把Scene_Battle获得exp的那段脚本换成
是从“Scene_Battle 2”168行覆盖没错吧,打死怪物之后出现了这个……
-
QQ图片20140521183525.jpg
(15.5 KB, 下载次数: 8)
错误
作者: taroxd 时间: 2014-5-21 18:52
llzc22 发表于 2014-5-21 18:38
是从“Scene_Battle 2”168行覆盖没错吧,打死怪物之后出现了这个……
不懂XP,不过根据我对Ruby的理解,应该把上半段改为- class Game_Actors
- def each
- @data.compact.each {|actor| yield actor }
- end
- end
复制代码
作者: llzc22 时间: 2014-5-21 19:15
taroxd 发表于 2014-5-21 18:52
不懂XP,不过根据我对Ruby的理解,应该把上半段改为
虽然打怪之后不弹出刚才那个对话框,但是没有加入队伍的角色不能获得经验,但是只要有个角色升级就弹出这个。
-
QQ图片20140521191347.jpg
(17.15 KB, 下载次数: 12)
作者: fux2 时间: 2014-5-21 19:33
llzc22 发表于 2014-5-21 18:38
是从“Scene_Battle 2”168行覆盖没错吧,打死怪物之后出现了这个……
把2楼的class Game_Actor改成class Game_Actors
作者: llzc22 时间: 2014-5-21 19:48
fux2 发表于 2014-5-21 19:33
把2楼的class Game_Actor改成class Game_Actors
这次出这个了……
-
QQ图片20140521194807.jpg
(17.2 KB, 下载次数: 13)
作者: fux2 时间: 2014-5-21 20:25
llzc22 发表于 2014-5-21 19:48
这次出这个了……
把后半段换成5楼的。
作者: 英顺的马甲 时间: 2014-5-21 22:19
本帖最后由 英顺的马甲 于 2014-5-22 09:05 编辑
先前竟然回复错人了,呼叫@taroxd {:6_334:}
干脆在这里总结好了==
@fux2 我没测试过,如果有错帮忙纠正==- class Test
- def initialize
- @data = []
- end
- def a
- @data.each{|a|yield a} if block_given?
- end
- def b
- @data.each{|a|yield a}
- end
- def c(&block)
- @data.each(&block)
- end
- def d(&block)
- @data.each{|a|block.call(a)}
- end
- end
- test = Test.new
- test.a # 运行成功
- test.b # 报错
- test.c # 报错
- test.d # 报错
- test.a{} # 运行成功
- test.b{} # 运行成功
- test.c{} # 运行成功
- test.d{} # 报错
- test.a{|a|} # 运行成功
- test.b{|a|} # 运行成功
- test.c{|a|} # 运行成功
- test.d{|a|} # 运行成功
复制代码
作者: llzc22 时间: 2014-5-21 23:48
英顺的马甲 发表于 2014-5-21 22:19
干脆在这里总结好了==
@fux2 我没测试过,如果有错帮忙纠正==
用这个插在MAIN前面并替换上次的脚本吗?但是会出现"Scene_Battle 2"168行的错误……
作者: taroxd 时间: 2014-5-22 11:36
英顺的马甲 发表于 2014-5-21 22:19
先前竟然回复错人了,呼叫@taroxd
干脆在这里总结好了==
建议这样写(xp可能版本太低)
def some_iterator(some_arg)
return to_enum(__method__, some_arg) unless block_given?
# start iteration
end
def some_iterator(some_arg)
return to_enum(__method__, some_arg) unless block_given?
# start iteration
end
作者: llzc22 时间: 2014-5-22 23:44
本帖最后由 llzc22 于 2014-5-22 23:59 编辑
@英顺的马甲 @fux2 用了他的办法还是没办法解决, 没升级的话是不弹出什么,而且打完怪,没加入队伍的同伴不能获取经验,角色一旦升级,就会提示Scene_Battle 2 173行出错。
-
QQ图片20140521191347.jpg
(17.15 KB, 下载次数: 12)
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |