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

Project1

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

[RMVA发布] 全灭后待机成员参战(2015年6月4日更新)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
跳转到指定楼层
1
发表于 2015-5-31 07:25:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 企鹅达达 于 2015-6-5 03:50 编辑
  1. $imported = {} if $imported.nil?
  2. $imported["Sub_Party"] = true
  3. #==============================================================================
  4. # 全灭后待机成员参战 v1.2
  5. #------------------------------------------------------------------------------
  6. #    2015.05.31 by 企鹅达达
  7. #    2015.06.03 修正事件扣血时不更换队员的bug
  8. #    2015.06.04 防止整队类脚本对为加入队伍的成员调用draw_actor_simple_status等出错
  9. #==============================================================================
  10. #       如题,这个脚本的功能就是让非战斗人员按照序号编成小队,全灭后一个小队一个
  11. #   小队上场战斗。嗯,感觉不是很好用,反正是自用的╮(╯_╰)╭
  12. #       用这个脚本建议把濒死设置成战斗后解除,这样可以避免某些小队战斗
  13. #   时空了一些死掉的队员。
  14. #       顺带一提这脚本和战斗中整队、战斗中添加成员(比如召唤)类型的脚本天生不对头,
  15. #   如果因为这些原因报错,本人也无能为力了 ← ←
  16. #==============================================================================

  17. #参战时显示的信息,可以使用转义符,%s取代角色名。
  18. #    JION_MESSAGE = "\ec[6]%s\ec[0] 参战!"

  19. #如果不想要这个信息,可以设置为 nil
  20. #    JION_MESSAGE = nil

  21. JION_MESSAGE = "%s 参战!"

  22. # 在菜单里显示的名字,SUB_PARTY_NAME里没有的话会用下面的SUB_PARTY_DEFAULT_NAME

  23. SUB_PARTY_SHOW_IN_MENU = true

  24. SUB_PARTY_NAME = ["第一小队","第二小队",]

  25. SUB_PARTY_DEFAULT_NAME = "候补小队"


  26. #==============================================================================
  27. # ■ Game_Battler
  28. #------------------------------------------------------------------------------
  29. #  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
  30. #==============================================================================

  31. class Game_Battler < Game_BattlerBase
  32.   attr_accessor :battle_formation_order          #队伍顺序标记
  33.   #--------------------------------------------------------------------------
  34.   # ● 保存队伍顺序
  35.   #--------------------------------------------------------------------------
  36.   def save_battle_formation_order
  37.     @battle_formation_order = index
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 行动结束
  41.   #--------------------------------------------------------------------------
  42.   alias sub_party_on_action_end on_action_end
  43.   def on_action_end
  44.     sub_party_on_action_end
  45.     while $game_party.all_dead?
  46.       break if $game_party.sub_party_now >= $game_party.sub_party_max
  47.       $game_party.sub_party_jion_battle
  48.     end
  49.   end
  50. end
  51. #==============================================================================
  52. # ■ Game_Party
  53. #------------------------------------------------------------------------------
  54. #  管理队伍的类。保存有金钱及物品的信息。本类的实例请参考 $game_party 。
  55. #==============================================================================
  56. class Game_Party < Game_Unit
  57.   attr_accessor :sub_party_now          #参战分队编号
  58.   attr_accessor :sub_party_max          #参战分队最大编号
  59.   #--------------------------------------------------------------------------
  60.   # ● 战斗开始处理
  61.   #--------------------------------------------------------------------------
  62.   def sub_party_jion_battle
  63.     @sub_party_now += 1
  64.     max_battle_members.times do |i|
  65.       next if all_members[ max_battle_members * @sub_party_now + i ].nil?
  66.       next if all_members[ max_battle_members * @sub_party_now + i ].dead?
  67.       swap_order( i, max_battle_members * @sub_party_now + i)
  68.       if JION_MESSAGE
  69. #       BattleManager.log_window.add_text(sprintf(JION_MESSAGE, $game_party.all_members[i].name))
  70. #       BattleManager.log_window.abs_wait(90)
  71.         $game_message.add(sprintf(JION_MESSAGE, $game_party.all_members[i].name))
  72.         BattleManager.wait_for_message
  73.       end
  74.     end
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 队伍顺序恢复
  78.   #--------------------------------------------------------------------------
  79.   def sub_party_reset_order
  80.     @actors.sort! {|a, b|$game_actors[a].battle_formation_order <=> $game_actors[b].battle_formation_order }
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 保存队伍顺序
  84.   #--------------------------------------------------------------------------
  85.   def sub_party_save_order
  86.     all_members.each do |member|
  87.       member.save_battle_formation_order
  88.     end
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 初始化参战分队信息,顺带让第一个有成活队员的分队上阵。
  92.   #--------------------------------------------------------------------------
  93.   def make_sub_party
  94.     @sub_party_now = 0
  95.     @sub_party_max = all_members.size / max_battle_members
  96.     @sub_party_max -= 1 if all_members.size == max_battle_members * @sub_party_max
  97.     while battle_members.select {|member|member.alive?}.empty?
  98.       break if @sub_party_now >= @sub_party_max
  99.       sub_party_jion_battle
  100.     end
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 战斗开始处理
  104.   #--------------------------------------------------------------------------
  105.   alias sub_party_on_battle_start on_battle_start
  106.   def on_battle_start
  107.     sub_party_save_order
  108.     make_sub_party
  109.     sub_party_on_battle_start
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 战斗结束处理
  113.   #--------------------------------------------------------------------------
  114.   alias sub_party_on_battle_end on_battle_end
  115.   def on_battle_end
  116.     sub_party_reset_order
  117.     sub_party_on_battle_end
  118.   end
  119. end
  120. #==============================================================================
  121. # ■ Game_Interpreter
  122. #------------------------------------------------------------------------------
  123. #  事件指令的解释器。
  124. #   本类在 Game_Map、Game_Troop、Game_Event 类的内部使用。
  125. #==============================================================================

  126. class Game_Interpreter
  127.   #--------------------------------------------------------------------------
  128.   # ● 增减 HP                   v 1.1更新
  129.   #--------------------------------------------------------------------------
  130.   def command_311
  131.     value = operate_value(@params[2], @params[3], @params[4])
  132.     iterate_actor_var(@params[0], @params[1]) do |actor|
  133.       next if actor.dead?
  134.       actor.change_hp(value, @params[5])
  135.       actor.perform_collapse_effect if actor.dead?
  136.     end
  137.     ##############################################
  138.     if SceneManager.scene_is?(Scene_Battle)
  139.       while $game_party.all_dead?
  140.         break if $game_party.sub_party_now >= $game_party.sub_party_max
  141.         $game_party.sub_party_jion_battle
  142.       end
  143.     end
  144.     ##############################################
  145.     SceneManager.goto(Scene_Gameover) if $game_party.all_dead?
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 更改状态                   v 1.1更新
  149.   #--------------------------------------------------------------------------
  150.   alias sub_party_command_313 command_313
  151.   def command_313
  152.    sub_party_command_313
  153.     ##############################################
  154.     if SceneManager.scene_is?(Scene_Battle)
  155.       while $game_party.all_dead?
  156.         break if $game_party.sub_party_now >= $game_party.sub_party_max
  157.         $game_party.sub_party_jion_battle
  158.       end
  159.     end
  160.     ##############################################
  161.   end
  162. end
  163. if SUB_PARTY_SHOW_IN_MENU
  164. #==============================================================================
  165. # ■ Window_Base
  166. #------------------------------------------------------------------------------
  167. #  游戏中所有窗口的父类
  168. #==============================================================================
  169. class Window_Base < Window
  170.   #--------------------------------------------------------------------------
  171.   # ● 绘制分队名
  172.   #--------------------------------------------------------------------------
  173.   def draw_actor_sub_party(actor, x, y, width = 112)
  174.     return if actor.index.nil?                           #   v1.2修改
  175.     change_color(system_color)
  176.     sub_party_index = actor.index / $game_party.max_battle_members
  177.     text = SUB_PARTY_NAME[sub_party_index].nil? ? SUB_PARTY_DEFAULT_NAME : SUB_PARTY_NAME[sub_party_index]
  178.     draw_text(x, y, width, line_height, text)
  179.     change_color(normal_color)
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 绘制简单的状态
  183.   #--------------------------------------------------------------------------
  184.   alias sub_party_draw_actor_simple_status draw_actor_simple_status
  185.   def draw_actor_simple_status(actor, x, y)
  186.     sub_party_draw_actor_simple_status(actor, x, y)
  187.     draw_actor_sub_party(actor, x-108, y+56)
  188.   end
  189. end

  190. #encoding:utf-8
  191. #==============================================================================
  192. # ■ Window_Status
  193. #------------------------------------------------------------------------------
  194. #  显示队伍成员状态的窗口
  195. #==============================================================================

  196. class Window_Status < Window_Selectable
  197.   #--------------------------------------------------------------------------
  198.   # ● 绘制基本区域
  199.   #--------------------------------------------------------------------------
  200.   alias sub_party_draw_basic_info draw_basic_info
  201.   def draw_basic_info(x, y)
  202.     sub_party_draw_basic_info(x, y)
  203.     draw_actor_sub_party(@actor, x -132, y+72, 100)
  204.   end
  205. end

  206. end # if SUB_PARTY_SHOW_IN_MENU
复制代码

评分

参与人数 3星屑 +235 收起 理由
小小西 + 10 为了游戏完善,拿走了!
永恒の未知数 + 75 塞糖
牛肉面 + 150 塞糖!!

查看全部评分

新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
407
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
2
发表于 2015-5-31 15:05:09 | 只看该作者
感谢发布~~这个应该会用得到!

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
3
发表于 2015-6-1 20:43:10 | 只看该作者
支持一个~!留着备用
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
4
发表于 2015-6-2 23:56:29 | 只看该作者
你好,感谢你分享你的脚本,
我现在使用过程中,发现和其他脚本有点不兼容

我在测试的时候使用了一个佣兵系统,佣兵系统自动生成的人物不是正常在数据库里生成合法名字的人物

现在插入你的脚本后,就算队伍后还有活着的佣兵,但是全灭了后边的就无法上场,如果是数据库里正常建立的角色就可以

不知道你能否帮忙修改一下你的脚本,能不能兼容佣兵脚本呢?

或者修改佣兵脚本让一堆脚本自动生成的佣兵在数据库里拥有临时的合法的名字?

还有一个就是胜利显示脚本, 由于佣兵也是系统黑户,存在佣兵的情况下胜利显示的时候就会出错,

我知道要求挺过分的,但还是希望你看到后能帮帮忙

我不会写脚本,也就到跟着注释改改数据的水平了

附件是我测试用的工程,
Project2 - 副本.part1.rar (1.8 MB, 下载次数: 116)
Project2 - 副本.part2.rar (1.8 MB, 下载次数: 104)
Project2 - 副本.part3.rar (191.88 KB, 下载次数: 98)

点评

话说创建佣兵其实用一句$game_actors[模板人物id].setup(新人物id)就可以做到,这样备注啥的都能复制到新人物上,出错几率就少了 = =  发表于 2015-6-3 10:41
呃,你给我的工程我测试着没问题哦,你还放有其他脚本不?看看有没有修改def all_member 的方法?或者你给一个会报错的存档给我试试?  发表于 2015-6-3 09:34
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
5
 楼主| 发表于 2015-6-3 09:39:07 | 只看该作者
本帖最后由 企鹅达达 于 2015-6-3 10:28 编辑
hitomisky 发表于 2015-6-2 23:56
你好,感谢你分享你的脚本,
我现在使用过程中,发现和其他脚本有点不兼容



look,测试着没问题。
胜利脚本貌似是本身的bug,找到下面这段脚本的位置把对应的地方改掉就好
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # new method: victory_quotes
  3.   #--------------------------------------------------------------------------
  4.   def victory_quotes(type)
  5.     case type
  6.     when :win
  7.       return self.actor.win_quotes if self.actor.win_quotes != nil && self.actor.win_quotes != [""]#修改
  8.       return self.class.win_quotes
  9.     when :level
  10.       return self.actor.level_quotes if self.actor.level_quotes != nil && self.actor.level_quotes != [""]#修改
  11.       return self.class.level_quotes
  12.     when :drops
  13.       return self.actor.drops_quotes if self.actor.drops_quotes != nil && self.actor.drops_quotes != [""] #修改
  14.       return self.class.drops_quotes
  15.     else
  16.       return ["NOTEXT"]
  17.     end
  18.   end
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
6
发表于 2015-6-3 11:02:09 | 只看该作者
企鹅达达 发表于 2015-6-3 09:39
look,测试着没问题。
胜利脚本貌似是本身的bug,找到下面这段脚本的位置把对应的地方改掉就好
  #----- ...

你好,目前使用你修改的胜利显示脚本已经可以正常了,
但是默认使用候补战斗脚本佣兵还是不会自动上场
不知道是怎么一回事了

点评

顺带你可以贴一下报错的图  发表于 2015-6-3 11:59
你有没有放其他脚本?又或者你新建一个存档试试?反正你给我的测试工程没问题  发表于 2015-6-3 11:57
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
7
发表于 2015-6-3 13:21:46 | 只看该作者
hitomisky 发表于 2015-6-3 11:02
你好,目前使用你修改的胜利显示脚本已经可以正常了,
但是默认使用候补战斗脚本佣兵还是不会自动上场
不知 ...

嗯嗯,估计是我添加的其他脚本冲突了,我正在一个一个的添加进去测试 看看是哪里出问题 再次感谢你的帮忙

点评

要是检查起来太麻烦其实你可以选择不用的 /o\  发表于 2015-6-3 15:20
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
8
发表于 2015-6-3 14:02:21 | 只看该作者
企鹅达达 发表于 2015-6-3 09:39
look,测试着没问题。
胜利脚本貌似是本身的bug,找到下面这段脚本的位置把对应的地方改掉就好
  #----- ...

大大你好,请问该怎么限制佣兵脚本里游戏出战和仓库存放的数量呢?

现在用了佣兵脚本,后备队员可以一大堆,我想限制人数改怎么做?

点评

这个你可以开贴问其他高手 ← ← 另外,这个佣兵系统来自“ウサギマスクの隠れ家”,你脚本里的版权声明最好写一下。  发表于 2015-6-3 14:56
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
9
发表于 2015-6-3 14:17:06 | 只看该作者
企鹅达达 发表于 2015-6-3 09:39
look,测试着没问题。
胜利脚本貌似是本身的bug,找到下面这段脚本的位置把对应的地方改掉就好
  #----- ...

"话说创建佣兵其实用一句$game_actors[模板人物id].setup(新人物id)就可以做到"
不懂脚本,不太会改,
这个佣兵脚本还是挺不错的,自动取名 调整数值,(对于我这个伸手党而言)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2008-3-3
帖子
57
10
发表于 2015-6-3 17:49:42 | 只看该作者
对了,忘记说,关于第一小队,第二小队那里的字体,能否设置小一点默认字体太大,都把猪脚帅气的脸遮住了,还有,能不能设置自定义图片来代替中文名?类似在人物肖像那里加个图片的素材框

点评

能@到的 = =  发表于 2015-6-3 19:44
感谢哈,我自己试试看,点评只能针对某个回帖,应该不难@到你吧 所以才用回复功能  发表于 2015-6-3 18:32
http://cacaosoft.web.fc2.com/这个网站有个菜单脚本可以很简单做到用图片表示小队名,建议你等你脚本有一定基础之后试试使用  发表于 2015-6-3 18:30
图片版不打算写,我其实也是个正则都不会写的脚本小白,bitmap类型的都不敢碰……by the way,善用点评,你连贴太严重了……  发表于 2015-6-3 18:22
改字体是基础知识 ← ← 185行draw_text上面加上 contents.font.size =16  发表于 2015-6-3 18:20
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-30 04:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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