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

Project1

 找回密码
 注册会员
搜索
查看: 4744|回复: 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 塞糖!!

查看全部评分

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

Lv3.寻梦者

梦石
0
星屑
2377
在线时间
264 小时
注册时间
2015-4-11
帖子
45
16
发表于 2015-6-17 23:22:37 | 只看该作者
如果第一小队全灭,第二小队上场以后可以复活第一小队的人,然后随意调换,就完美了

点评

你需要一个战斗整队脚本  发表于 2015-6-18 11:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

使用道具 举报

Lv1.梦旅人

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
13
 楼主| 发表于 2015-6-5 02:46:15 | 只看该作者
本帖最后由 企鹅达达 于 2015-6-5 03:41 编辑
小小西 发表于 2015-6-5 00:18
我的是每横字就空一横,所以有264,玩家玩我游戏时候出现的,我测试也没有出现这个,所以想问问 ...


额,不知道是什么时候出现的,也不知道是哪一句……嗯,或许你可以不用这个脚本?反正也不是什么必要的功能 ← ←

这脚本两个地方用到除号,一个是all_members.size,一个是actor.index,前者一般不会变成nil,只能是后者出问题,有可能是你的整队脚本调用了def draw_actor_simple_status(actor, x, y)这个方法显示了未加入队伍的角色,所以出错了。

如果的确是这个原因,那v1.2更新后应该就没问题了。

如果是其他地方出问题,那之后再说吧 ← ←

点评

嗯嗯,好像没事了,嘻嘻  发表于 2015-6-5 23:14
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1346
在线时间
806 小时
注册时间
2013-8-3
帖子
455
12
发表于 2015-6-5 00:18:07 | 只看该作者
小小西 发表于 2015-6-4 18:58
怎么解决

我的是每横字就空一横,所以有264,玩家玩我游戏时候出现的,我测试也没有出现这个,所以想问问{:2_279:}

点评

如果的确是整队脚本里出问题,那v1.2之后应该没事了。  发表于 2015-6-5 03:38

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1346
在线时间
806 小时
注册时间
2013-8-3
帖子
455
11
发表于 2015-6-4 18:58:04 | 只看该作者
怎么解决{:2_276:}

QQ图片20150604185705.png (7.09 KB, 下载次数: 10)

QQ图片20150604185705.png

点评

这脚本不是一共才217行吗?264是哪行?  发表于 2015-6-4 22:20

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
回复 支持 反对

使用道具 举报

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
回复 支持 反对

使用道具 举报

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
8
发表于 2015-6-3 14:02:21 | 只看该作者
企鹅达达 发表于 2015-6-3 09:39
look,测试着没问题。
胜利脚本貌似是本身的bug,找到下面这段脚本的位置把对应的地方改掉就好
  #----- ...

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

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

点评

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-17 05:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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