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

Project1

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

[已经解决] 逃跑加入战斗菜单的脚本有BUG,请教

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
105 小时
注册时间
2016-4-3
帖子
78
跳转到指定楼层
1
发表于 2016-6-26 20:47:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 452234679 于 2016-6-26 20:54 编辑

脚本功能:去掉战斗开始时候的 战斗/逃跑 的选择过程,并把逃跑加入到角色命令菜单当中

如果使用事件——战斗处理,不选择“可以逃跑”,则一开始战斗就会脚本报错

报错的代码是这部分

    unless $game_temp.battle_can_escape
      @actor_command_window.disable_item(commands.size - 1)
    end

我想可能是因为无法判断逃跑按钮的状态,我希望可以进入战斗后,逃跑按钮是失效状态的

希望可以得到大神的指导,谢谢!

该脚本的全部代码如下:

RUBY 代码复制
  1. #=======================================================================
  2. # ■ 本脚本来自 [url]www.66rpg.com[/url] 转载和使用时请保留此信息
  3. #-----------------------------------------------------------------------
  4. #   脚本功能:去掉战斗开始时候的 战斗/逃跑 的选择过程.
  5. #             并把逃跑加入到角色命令菜单当中
  6. #   脚本作者:后知后觉  2010-8-11 13:46:59
  7. #   使用方法:直接在 Main 前插入即可
  8. #=======================================================================
  9. class Window_PartyCommand < Window_Selectable
  10.   def visible=(value)
  11.     super(false)
  12.   end
  13.   def active=(value)
  14.     super(false)
  15.   end
  16. end
  17. class Scene_Battle
  18.   alias hzhj_old_start_phase1 start_phase1
  19.   def start_phase1
  20.     class << @actor_command_window
  21.       attr_reader :commands
  22.       def commands=(value)
  23.         @commands = value
  24.         @item_max = @commands.size
  25.         self.height = @item_max * 32 + 32
  26.         self.y = [self.y - 32, 0].max
  27.         self.contents.dispose
  28.         self.contents = Bitmap.new(width - 32, height - 32)
  29.         refresh
  30.       end
  31.     end
  32.  
  33.     unless $game_temp.battle_can_escape
  34.       @actor_command_window.disable_item(commands.size - 1)
  35.     end
  36.     hzhj_old_start_phase1
  37.   end
  38.   alias hzhj_old_start_phase2 start_phase2
  39.   def start_phase2
  40.     hzhj_old_start_phase2
  41.     if @phase == 2
  42.       start_phase3
  43.     end
  44.   end
  45.   alias hzhj_old_update_phase3_basic_command update_phase3_basic_command
  46.   def update_phase3_basic_command
  47.     hzhj_old_update_phase3_basic_command
  48.     if Input.trigger?(13)
  49.       if @actor_command_window.index == @actor_command_window.commands.size - 1
  50.         unless $game_temp.battle_can_escape
  51.           $game_system.se_play($data_system.buzzer_se)
  52.           return
  53.         end
  54.         $game_system.se_play($data_system.decision_se)
  55.         update_phase2_escape
  56.         return
  57.       end
  58.     end
  59.   end
  60. end
  61.  
  62. #=======================================================================
  63. # ■ 本脚本来自 [url]www.66rpg.com[/url] 转载和使用时请保留此信息
  64. #=======================================================================

Lv1.梦旅人

梦石
0
星屑
55
在线时间
105 小时
注册时间
2016-4-3
帖子
78
17
 楼主| 发表于 2016-7-16 22:03:13 | 只看该作者
本帖最后由 452234679 于 2016-7-16 22:09 编辑

您好,非常感谢您回答,经过测试,这个问题彻底解决了,感谢您如此热心,请问可以加您为好友吗,以后如果遇到问题再向您请教。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
1053 小时
注册时间
2013-3-28
帖子
390

开拓者

16
发表于 2016-7-16 17:27:10 | 只看该作者
452234679 发表于 2016-7-16 13:16
您好,非常感谢您回答,但是这样改的话,当不允许逃跑时,前面4个选项不会显示 ...

真不好意思,这回应该没问题了
RUBY 代码复制
  1. def refresh
  2.     self.contents.clear
  3.     for i in 0...@item_max
  4.       if !$game_temp.battle_can_escape and i == 5 #如果你把"逃"和"撤退"合并了就在后面添一个"-1"
  5.         disable_item(i)
  6.       else
  7.         draw_item(i)
  8.       end
  9.     end
  10.   end

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
105 小时
注册时间
2016-4-3
帖子
78
15
 楼主| 发表于 2016-7-16 13:16:45 | 只看该作者
陈大帅帅帅哥 发表于 2016-7-16 10:42
找到*Plugin_BattleCommand里的def refresh,下面改成这样

您好,非常感谢您回答,但是这样改的话,当不允许逃跑时,前面4个选项不会显示
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
1053 小时
注册时间
2013-3-28
帖子
390

开拓者

14
发表于 2016-7-16 10:42:49 | 只看该作者
452234679 发表于 2016-7-15 23:44
您好,我将"逃"和"撤退"合并了,但是如果战斗允许逃跑,这个时候“逃”字不会显示 ...

找到*Plugin_BattleCommand里的def refresh,下面改成这样
  1. def refresh
  2.     self.contents.clear
  3.     for i in 0...@item_max
  4.       unless $game_temp.battle_can_escape
  5.         if i == 5#如果你把"逃"和"撤退"合并了就在后面添一个"-1"
  6.           disable_item(i)
  7.         end
  8.       else
  9.         draw_item(i)
  10.       end
  11.     end
  12.   end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
105 小时
注册时间
2016-4-3
帖子
78
13
 楼主| 发表于 2016-7-15 23:44:00 | 只看该作者
陈大帅帅帅哥 发表于 2016-7-15 17:16
把*Plugin_BattleCommand改成
#===================================================================== ...

您好,我将"逃"和"撤退"合并了,但是如果战斗允许逃跑,这个时候“逃”字不会显示
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
1053 小时
注册时间
2013-3-28
帖子
390

开拓者

12
发表于 2016-7-15 17:16:08 | 只看该作者
452234679 发表于 2016-7-15 12:01
您好,这样确实可以了,但是当无法逃跑时,如何将逃跑按钮变成灰色呢,谢谢  ...

把*Plugin_BattleCommand改成
RUBY 代码复制
  1. #==============================================================================
  2.  
  3. class Window_BattleCommand < Window_Selectable
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     super(0, 0, 180, 60)
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.     self.back_opacity = 160
  9.     @commands = ["攻","技","防","物","逃"]
  10.     @item_max = 5
  11.     @column_max = 5
  12.     refresh
  13.     self.active = false
  14.     self.visible = false
  15.     self.index = 0
  16.   end
  17.   #---------------------------------------------------------------------------
  18.   def refresh
  19.     self.contents.clear
  20.     for i in 0...@item_max
  21.       if i == 5#如果你把"逃"和"撤退"合并了就在后面添一个"-1"
  22.         unless $game_temp.battle_can_escape
  23.           disable_item(i)
  24.         end
  25.       else
  26.         draw_item(i)
  27.       end
  28.     end
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   def draw_item(index,color=normal_color)
  32.     x = index % 5 * 30
  33.     y = index / 5 * 30
  34.     self.contents.font.color = color#Color.new(255, 255, 255, 128)#normal_color
  35.     self.contents.draw_text(x, y, 30, 30, @commands[index], 1)
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   def update_cursor_rect
  39.     x = index % 5 * 30
  40.     y = index / 5 * 30
  41.     self.cursor_rect.set(x, y, 30, 30)
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # 卐 项目无效化
  45.   #     index : 项目编号
  46.   #--------------------------------------------------------------------------
  47.   def disable_item(index)
  48.     draw_item(index,disabled_color)
  49.   end
  50. end
  51. #===============================================================================
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
105 小时
注册时间
2016-4-3
帖子
78
11
 楼主| 发表于 2016-7-15 12:01:24 | 只看该作者
陈大帅帅帅哥 发表于 2016-7-15 11:19
在*Plugin_BattleCommand的末尾(end之前)添加
#------------------------------------------------------ ...

您好,这样确实可以了,但是当无法逃跑时,如何将逃跑按钮变成灰色呢,谢谢
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
1053 小时
注册时间
2013-3-28
帖子
390

开拓者

10
发表于 2016-7-15 11:19:49 | 只看该作者
本帖最后由 陈大帅帅帅哥 于 2016-7-15 11:20 编辑

在*Plugin_BattleCommand的末尾(end之前)添加
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 项目无效化
  3.   #     index : 项目编号
  4.   #--------------------------------------------------------------------------
  5.   def disable_item(index)
  6.     draw_item(index)
  7.   end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
105 小时
注册时间
2016-4-3
帖子
78
9
 楼主| 发表于 2016-7-15 00:05:50 | 只看该作者
陈大帅帅帅哥 发表于 2016-7-13 17:52
还是没有问题,可不可以把Data文件夹里的Scripts.rxdata文件发给我

您好,这是Scripts.rxdata,非常感谢您愿意帮我。

Scripts.rar

119.66 KB, 下载次数: 46

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 02:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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