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

Project1

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

指令窗口怎么搞

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-3
帖子
25
跳转到指定楼层
1
发表于 2008-4-2 08:29:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问在战斗中 下达指令的窗口怎么改变 控制他的脚本是哪部分?谢谢
版务信息:本贴由楼主自主结贴~
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
2
发表于 2008-4-2 13:27:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

史上最强粉丝

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-20
帖子
5574

贵宾

3
发表于 2008-4-2 15:39:47 | 只看该作者
对了,如果使用了战斗指令图标化等脚本则要在这种最下面的脚本中进行搜索,所以如果你修改保存后无效的话记得Window_Command.new看看是不是有没有改全的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-3
帖子
25
4
 楼主| 发表于 2008-4-2 19:28:16 | 只看该作者
以下引用wy29于2008-4-2 5:27:10的发言:

请查看class Scene_Battle第25行:

   本帖相关代码如下:
# 生成角色命令窗口
   s1 = $data_system.words.attack
   s2 = $data_system.words.skill
   s3 = $data_system.words.guard
   s4 = $data_system.words.item
   @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
   @actor_command_window.y = 160
   @actor_command_window.back_opacity = 160
   @actor_command_window.active = false
   @actor_command_window.visible = false

角色的命令窗口就是class Window_Command

如果要战斗画面、选择战斗与逃跑的窗口,
可以看看class Window_PartyCommand

我想问下 如果要增加变量的话 比如把“逃跑”定义在指令里 而不是象范例那样在开头 那应该在哪里面定义逃跑这个变量?谢谢~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-3
帖子
25
5
 楼主| 发表于 2008-4-2 19:37:15 | 只看该作者
以下引用wy29于2008-4-2 5:27:10的发言:

请查看class Scene_Battle第25行:

   本帖相关代码如下:
# 生成角色命令窗口
   s1 = $data_system.words.attack
   s2 = $data_system.words.skill
   s3 = $data_system.words.guard
   s4 = $data_system.words.item
   @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
   @actor_command_window.y = 160
   @actor_command_window.back_opacity = 160
   @actor_command_window.active = false
   @actor_command_window.visible = false

角色的命令窗口就是class Window_Command

如果要战斗画面、选择战斗与逃跑的窗口,
可以看看class Window_PartyCommand

补充一下 刚才我试着在下面加了个s5="逃跑" 虽然显示了 但是点他没什么用 在哪定义他的功能?谢谢
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
6
发表于 2008-4-2 19:38:53 | 只看该作者
如果只是逃跑的问题的话……

引用一下

首先按照取消战斗、逃跑的办法取消战斗、逃跑项
在Scene_Battle 2选项里面修改
  # 有效化同伴指令窗口
  @party_command_window.active = false
  @party_command_window.visible = false
然后再把第62行后面的
def update_phase 2
后面的东西全部注释掉,留下start_phase3一项,即改成这样:
#--------------------------------------------------------------------------
# ● 刷新画面 (同伴命令回合)
#--------------------------------------------------------------------------
def update_phase2
  # 按下 C 键的情况下
  #if Input.trigger?(Input::C)
    # 同伴指令窗口光标位置分支
    #case @party_command_window.index
   # when 0  # 战斗
      # 演奏确定 SE
      #$game_system.se_play($data_system.decision_se)
      # 开始角色的命令回合
      start_phase3
    #when 1  # 逃跑
      # 不能逃跑的情况下
      #if $game_temp.battle_can_escape == false
        # 演奏冻结 SE
        #$game_system.se_play($data_system.buzzer_se)
        #return
      #end
      # 演奏确定 SE
      #$game_system.se_play($data_system.decision_se)
      # 逃走处理
      #update_phase2_escape
    #end
    #return
  #end
end
留下带彩色的一项。
然后在Scene_battle 1 的第30行修改为……

@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4,"逃跑"])
  @actor_command_window.y = 128

然后在Scene_battle 3里面修改这项
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合 : 基本命令)
#--------------------------------------------------------------------------
def update_phase3_basic_command
  # 按下 B 键的情况下
  if Input.trigger?(Input::B)
    # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    # 转向前一个角色的指令输入
    phase3_prior_actor
    return
  end
  # 按下 C 键的情况下
  if Input.trigger?(Input::C)
    # 角色指令窗口光标位置分之
    case @actor_command_window.index
    when 0  # 攻击
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 设置行动
      @active_battler.current_action.kind = 0
      @active_battler.current_action.basic = 0
      # 开始选择敌人
      start_enemy_select
    when 1  # 特技
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 设置行动
      @active_battler.current_action.kind = 1
      # 开始选择特技
      start_skill_select
    when 2  # 防御
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 设置行动
      @active_battler.current_action.kind = 0
      @active_battler.current_action.basic = 1
      # 转向下一位角色的指令输入
      phase3_next_actor
    when 3  # 物品
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 设置行动
      @active_battler.current_action.kind = 2
      # 开始选择物品
      start_item_select
###########################################################################
    when 4  # 逃跑
      if $game_temp.battle_can_escape == false
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 逃走处理
      update_phase2_escape
###########################################################################
     end
     return
  end
end

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
7
发表于 2008-4-2 19:55:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-3
帖子
25
8
 楼主| 发表于 2008-4-2 20:31:10 | 只看该作者
以下引用wy29于2008-4-2 11:55:35的发言:

请看Scene_Battle3,def update_phase3_basic_command


   本帖相关代码如下:
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合 : 基本命令)
#--------------------------------------------------------------------------
def update_phase3_basic_command
   # 按下 B 键的情况下
   if Input.trigger?(Input::B)
     # 演奏取消 SE
     $game_system.se_play($data_system.cancel_se)
     # 转向前一个角色的指令输入
     phase3_prior_actor
     return
   end
   # 按下 C 键的情况下
   if Input.trigger?(Input::C)
     # 角色指令窗口光标位置分之
     case @actor_command_window.index
     when 0  # 攻击
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 设置行动
       @active_battler.current_action.kind = 0
       @active_battler.current_action.basic = 0
       # 开始选择敌人
       start_enemy_select
     when 1  # 特技
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 设置行动
       @active_battler.current_action.kind = 1
       # 开始选择特技
       start_skill_select
     when 2  # 防御
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 设置行动
       @active_battler.current_action.kind = 0
       @active_battler.current_action.basic = 1
       # 转向下一位角色的指令输入
       phase3_next_actor
     when 3  # 物品
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 设置行动
       @active_battler.current_action.kind = 2
       # 开始选择物品
       start_item_select
     end
     return

还有个问题就是怎么设置指令窗口的坐标 原本的算法是@actor_command_window.x = @actor_index * 160   @actor_command_window.y = 160
我想手动设置每个人的坐标 因为是两排人物 所以递增这方法不适用 我应该怎么编写呢?我写好了每个人的坐标了 用的是 when 0 return *** 这个方法 这个该怎么些?能不能写一个出来示范一下?谢谢了~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
9
发表于 2008-4-2 21:02:43 | 只看该作者
写成一个方法好了

比如

@actor_command_window.x = s_x(@actor_index)
@actor_command_window.x = s_y(@actor_index)

然后另外写两个方法


def s_x(index)
case index
when 0
  return
when 1
  ……
end
end

def s_y(index)
case index
when 0
……
end
end
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
10
发表于 2008-4-2 21:04:15 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 05:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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