Project1

标题: 实在不好意思,又来请教了,Window_Target里的一些问题。 [打印本页]

作者: filia2012    时间: 2012-7-16 11:29
标题: 实在不好意思,又来请教了,Window_Target里的一些问题。
      这个类定义的是,在菜单画面的时候使用特技和物品,浏览角色的画面?  修改哪些可以做到不浏览直接主角为使用者,因为只有一个主角所以想把浏览画面去掉,使用恢复道具的时候直接为选定了主角使用。dsu_plus_rewardpost_czw
作者: liuziyuan201019    时间: 2012-7-16 12:32
如果只有一个人的话,设置对象为己方全体不久OK了?
作者: 灯笼菜刀王    时间: 2012-7-16 12:46

2楼的方法好, 能不改脚本就尽量不改,这样才是绿色环保的

只要在技能或者道具的使用对象那调整为,对自己全体, 这样就都是直接使用不需要选择目标
作者: 灯笼菜刀王    时间: 2012-7-16 14:04

如果不想弹出那个目标窗口,那就直接在使用道具的时候不激活就行了.

在SCENE ITEM这里,刷新道具窗口里面 update item这里, 从i按下确定键 if Input.trigger?(Input::C) 下面全部不要了, 然后把刷新目标窗口update target, 按下C键这一大段全部塞进去就行了,注意end的数量, 然后update target就不要了,注销掉

这样就是可以用的道具直接使用在1号的身上了
作者: filia2012    时间: 2012-7-16 15:33
@hys111111 召唤大神,脚本到底怎么才能学好啊。。。。。
作者: 灯笼菜刀王    时间: 2012-7-16 15:43
filia2012 发表于 2012-7-16 15:33
@hys111111 召唤大神,脚本到底怎么才能学好啊。。。。。

刚开始动手惹脚本错误是难免的, 怕错误就学不好脚本的, 记得多备份,多尝试就可以一步一步的来的,其实,脚本和事件的道理是一样的,区别是一个是给计算机看的,一个是给人看的而已


改好的脚本是这样的

#--------------------------------------------------------------------------
  # ● 刷新画面 (物品窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_item
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Menu.new(0)
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 获取物品窗口当前选中的物品数据
      @item = @item_window.item
      # 不使用物品的情况下
      unless @item.is_a?(RPG::Item)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 不能使用的情况下
      unless $game_party.item_can_use?(@item.id)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 效果范围是我方的情况下
      if @item.scope >= 3
        if $game_party.item_number(@item.id) == 0
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 目标是全体的情况下
      if @target_window.index == -1
        # 对同伴全体应用物品使用效果
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@item)
        end
      end
      # 目标是单体的情况下
      if @target_window.index >= 0
        # 对目标角色应用物品的使用效果
        target = $game_party.actors[@target_window.index]
        used = target.item_effect(@item)
      end
      # 使用物品的情况下
      if used
        # 演奏物品使用时的 SE
        $game_system.se_play(@item.menu_se)
        # 消耗品的情况下
        if @item.consumable
          # 使用的物品数减 1
          $game_party.lose_item(@item.id, 1)
          # 再描绘物品窗口的项目
          @item_window.draw_item(@item_window.index)
        end
        # 再生成目标窗口的内容
        @target_window.refresh
        # 全灭的情况下
        if $game_party.all_dead?
          # 切换到游戏结束画面
          $scene = Scene_Gameover.new
          return
        end
        # 公共事件 ID 有效的情况下
        if @item.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @item.common_event_id
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      # 无法使用物品的情况下
      unless used
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (目标窗口被激活的情况下)
=begin  #--------------------------------------------------------------------------
  def update_target
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 由于物品用完而不能使用的场合
      unless $game_party.item_can_use?(@item.id)
        # 再次生成物品窗口的内容
        @item_window.refresh
      end
      # 删除目标窗口
      @item_window.active = true
      @target_window.visible = false
      @target_window.active = false
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 如果物品用完的情况下
      if $game_party.item_number(@item.id) == 0
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 目标是全体的情况下
      if @target_window.index == -1
        # 对同伴全体应用物品使用效果
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@item)
        end
      end
      # 目标是单体的情况下
      if @target_window.index >= 0
        # 对目标角色应用物品的使用效果
        target = $game_party.actors[@target_window.index]
        used = target.item_effect(@item)
      end
      # 使用物品的情况下
      if used
        # 演奏物品使用时的 SE
        $game_system.se_play(@item.menu_se)
        # 消耗品的情况下
        if @item.consumable
          # 使用的物品数减 1
          $game_party.lose_item(@item.id, 1)
          # 再描绘物品窗口的项目
          @item_window.draw_item(@item_window.index)
        end
        # 再生成目标窗口的内容
        @target_window.refresh
        # 全灭的情况下
        if $game_party.all_dead?
          # 切换到游戏结束画面
          $scene = Scene_Gameover.new
          return
        end
        # 公共事件 ID 有效的情况下
        if @item.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @item.common_event_id
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      # 无法使用物品的情况下
      unless used
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
=end

只经过初步测试, 可能会有点后遗症,哈哈, 碰到的话尝试自己解决试试




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1