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

Project1

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

[已经解决] 想找一个战斗中换装的脚本,知道的请告诉一下哈!

[复制链接]

Lv2.观梦者

梦石
0
星屑
574
在线时间
169 小时
注册时间
2008-10-29
帖子
431
跳转到指定楼层
1
发表于 2010-8-19 23:02:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,突然想用这个脚本,但一时找不到了,知道的请告诉下。非常感谢。

Lv2.观梦者

梦石
0
星屑
574
在线时间
169 小时
注册时间
2008-10-29
帖子
431
2
 楼主| 发表于 2010-8-19 23:17:39 | 只看该作者
就是在战斗中更换装备

点评

应该不算,谢谢 因为前面有位仁兄问我 什么叫战斗换装 我回答 但是后来他的一楼不见了- -  发表于 2010-8-21 13:51
这算连贴么?  发表于 2010-8-20 09:26

评分

参与人数 1星屑 -40 收起 理由
六祈 -40 连帖扣一扣,明显可以在首楼编辑的 ...

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

宛若

梦石
0
星屑
1568
在线时间
526 小时
注册时间
2007-8-19
帖子
1493

极短24参与开拓者

3
发表于 2010-8-19 23:37:14 | 只看该作者
  1. #==============================================================================
  2. # ■ Scene_Equip
  3. #------------------------------------------------------------------------------
  4. #  处理装备画面的类。
  5. #==============================================================================

  6. class Scene_Battle
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor_index : 角色索引
  10.   #     equip_index : 装备索引
  11.   #--------------------------------------------------------------------------
  12.   def equip_begin(actor_index = 0, equip_index = 0)
  13.     @actor_index = actor_index
  14.     @equip_index = equip_index
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 主处理
  18.   #--------------------------------------------------------------------------
  19.   def equip_main
  20.     # 获取角色
  21.     @actor = $game_party.actors[@actor_index]
  22.     # 生成窗口
  23.     @help_equip_window = Window_Help.new
  24.     @left_window = Window_EquipLeft.new(@actor)
  25.     @right_window = Window_EquipRight.new(@actor)
  26.     @item_equip_window1 = Window_EquipItem.new(@actor, 0)
  27.     @item_equip_window2 = Window_EquipItem.new(@actor, 1)
  28.     @item_equip_window3 = Window_EquipItem.new(@actor, 2)
  29.     @item_equip_window4 = Window_EquipItem.new(@actor, 3)
  30.     @item_equip_window5 = Window_EquipItem.new(@actor, 4)
  31.     # 生成窗口
  32.     @help_equip_window.z = 10000
  33.     @left_window.z = 10000
  34.     @right_window.z = 10000
  35.     @item_equip_window1.z = 10000
  36.     @item_equip_window2.z = 10000
  37.     @item_equip_window3.z = 10000
  38.     @item_equip_window4.z = 10000
  39.     @item_equip_window5.z = 10000
  40.     # 关联帮助窗口
  41.     @right_window.help_window = @help_equip_window
  42.     @item_equip_window1.help_window = @help_equip_window
  43.     @item_equip_window2.help_window = @help_equip_window
  44.     @item_equip_window3.help_window = @help_equip_window
  45.     @item_equip_window4.help_window = @help_equip_window
  46.     @item_equip_window5.help_window = @help_equip_window
  47.     # 设置光标位置
  48.     @right_window.index = @equip_index
  49.     @breaker = false
  50.     equip_refresh
  51.     # 执行过渡
  52.     Graphics.transition
  53.     # 主循环
  54.     loop do
  55.       # 刷新游戏画面
  56.       Graphics.update
  57.       # 刷新输入信息
  58.       Input.update
  59.       # 刷新画面
  60.       equip_update
  61.       # 如果画面切换的话的就中断循环
  62.       if @breaker
  63.         break
  64.       end
  65.     end
  66.     # 准备过渡
  67.     Graphics.freeze
  68.     # 释放窗口
  69.     @help_equip_window.dispose
  70.     @left_window.dispose
  71.     @right_window.dispose
  72.     @item_equip_window1.dispose
  73.     @item_equip_window2.dispose
  74.     @item_equip_window3.dispose
  75.     @item_equip_window4.dispose
  76.     @item_equip_window5.dispose
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 刷新
  80.   #--------------------------------------------------------------------------
  81.   def equip_refresh
  82.     # 设置物品窗口的可视状态
  83.     @item_equip_window1.visible = (@right_window.index == 0)
  84.     @item_equip_window2.visible = (@right_window.index == 1)
  85.     @item_equip_window3.visible = (@right_window.index == 2)
  86.     @item_equip_window4.visible = (@right_window.index == 3)
  87.     @item_equip_window5.visible = (@right_window.index == 4)
  88.     # 获取当前装备中的物品
  89.     item1 = @right_window.item
  90.     # 设置当前的物品窗口到 @item_equip_window
  91.     case @right_window.index
  92.     when 0
  93.       @item_equip_window = @item_equip_window1
  94.     when 1
  95.       @item_equip_window = @item_equip_window2
  96.     when 2
  97.       @item_equip_window = @item_equip_window3
  98.     when 3
  99.       @item_equip_window = @item_equip_window4
  100.     when 4
  101.       @item_equip_window = @item_equip_window5
  102.     end
  103.     # 右窗口被激活的情况下
  104.     if @right_window.active
  105.       # 删除变更装备后的能力
  106.       @left_window.set_new_parameters(nil, nil, nil)
  107.     end
  108.     # 物品窗口被激活的情况下
  109.     if @item_equip_window.active
  110.       # 获取现在选中的物品
  111.       item2 = @item_equip_window.item
  112.       # 变更装备
  113.       last_hp = @actor.hp
  114.       last_sp = @actor.sp
  115.       @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
  116.       # 获取变更装备后的能力值
  117.       new_atk = @actor.atk
  118.       new_pdef = @actor.pdef
  119.       new_mdef = @actor.mdef
  120.       # 返回到装备
  121.       @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
  122.       @actor.hp = last_hp
  123.       @actor.sp = last_sp
  124.       # 描画左窗口
  125.       @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
  126.     end
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● 刷新画面
  130.   #--------------------------------------------------------------------------
  131.   def equip_update
  132.     # 刷新窗口
  133.     @left_window.update
  134.     @right_window.update
  135.     @item_equip_window.update
  136.     equip_refresh
  137.     # 右侧窗口被激活的情况下: 调用 update_right
  138.     if @right_window.active
  139.       update_right
  140.       return
  141.     end
  142.     # 物品窗口被激活的情况下: 调用 update_item
  143.     if @item_equip_window.active
  144.       update_item
  145.       return
  146.     end
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 刷新画面 (右侧窗口被激活的情况下)
  150.   #--------------------------------------------------------------------------
  151.   def update_right
  152.     # 按下 B 键的情况下
  153.     if Input.trigger?(Input::B)
  154.       # 演奏取消 SE
  155.       $game_system.se_play($data_system.cancel_se)
  156.       # 切换到菜单画面
  157.       #$scene = Scene_Menu.new(2)
  158.       @breaker = true
  159.       return
  160.     end
  161.     # 按下 C 键的情况下
  162.     if Input.trigger?(Input::C)
  163.       # 固定装备的情况下
  164.       if @actor.equip_fix?(@right_window.index)
  165.         # 演奏冻结 SE
  166.         $game_system.se_play($data_system.buzzer_se)
  167.         return
  168.       end
  169.       # 演奏确定 SE
  170.       $game_system.se_play($data_system.decision_se)
  171.       # 激活物品窗口
  172.       @right_window.active = false
  173.       @item_equip_window.active = true
  174.       @item_equip_window.index = 0
  175.       return
  176.     end
  177.     # 按下 R 键的情况下
  178.     if Input.trigger?(Input::R)
  179.       # 演奏光标 SE
  180.       $game_system.se_play($data_system.cursor_se)
  181.       # 移至下一位角色
  182.       @actor_index += 1
  183.       @actor_index %= $game_party.actors.size
  184.       # 切换到别的装备画面
  185.       $scene = Scene_Equip.new(@actor_index, @right_window.index)
  186.       return
  187.     end
  188.     # 按下 L 键的情况下
  189.     if Input.trigger?(Input::L)
  190.       # 演奏光标 SE
  191.       $game_system.se_play($data_system.cursor_se)
  192.       # 移至上一位角色
  193.       @actor_index += $game_party.actors.size - 1
  194.       @actor_index %= $game_party.actors.size
  195.       # 切换到别的装备画面
  196.       $scene = Scene_Equip.new(@actor_index, @right_window.index)
  197.       return
  198.     end
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 刷新画面 (物品窗口被激活的情况下)
  202.   #--------------------------------------------------------------------------
  203.   def update_item
  204.     # 按下 B 键的情况下
  205.     if Input.trigger?(Input::B)
  206.       # 演奏取消 SE
  207.       $game_system.se_play($data_system.cancel_se)
  208.       # 激活右侧窗口
  209.       @right_window.active = true
  210.       @item_equip_window.active = false
  211.       @item_equip_window.index = -1
  212.       return
  213.     end
  214.     # 按下 C 键的情况下
  215.     if Input.trigger?(Input::C)
  216.       # 演奏装备 SE
  217.       $game_system.se_play($data_system.equip_se)
  218.       # 获取物品窗口现在选择的装备数据
  219.       item = @item_equip_window.item
  220.       # 变更装备
  221.       @actor.equip(@right_window.index, item == nil ? 0 : item.id)
  222.       # 激活右侧窗口
  223.       @right_window.active = true
  224.       @item_equip_window.active = false
  225.       @item_equip_window.index = -1
  226.       # 再生成右侧窗口、物品窗口的内容
  227.       @right_window.refresh
  228.       @item_equip_window.refresh
  229.       return
  230.     end
  231.   end
  232. end
  233. class Scene_Battle
  234.   #--------------------------------------------------------------------------
  235.   # ● 主处理
  236.   #--------------------------------------------------------------------------
  237.   def main
  238.     # 初始化战斗用的各种暂时数据
  239.     $game_temp.in_battle = true
  240.     $game_temp.battle_turn = 0
  241.     $game_temp.battle_event_flags.clear
  242.     $game_temp.battle_abort = false
  243.     $game_temp.battle_main_phase = false
  244.     $game_temp.battleback_name = $game_map.battleback_name
  245.     $game_temp.forcing_battler = nil
  246.     # 初始化战斗用事件解释器
  247.     $game_system.battle_interpreter.setup(nil, 0)
  248.     # 准备队伍
  249.     @troop_id = $game_temp.battle_troop_id
  250.     $game_troop.setup(@troop_id)
  251.     # 生成角色命令窗口
  252.     s1 = $data_system.words.attack
  253.     s2 = $data_system.words.skill
  254.     s3 = $data_system.words.guard
  255.     s4 = $data_system.words.item
  256.     s5 = "装备"
  257.     @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4,s5])
  258.     @actor_command_window.y = 160 #此处修改Y坐标,自己DIY,丰衣足食
  259.     @actor_command_window.back_opacity = 160
  260.     @actor_command_window.active = false
  261.     @actor_command_window.visible = false
  262.     # 生成其它窗口
  263.     @party_command_window = Window_PartyCommand.new
  264.     @help_window = Window_Help.new
  265.     @help_window.back_opacity = 160
  266.     @help_window.visible = false
  267.     @status_window = Window_BattleStatus.new
  268.     @message_window = Window_Message.new
  269.     # 生成活动块
  270.     @spriteset = Spriteset_Battle.new
  271.     # 初始化等待计数
  272.     @wait_count = 0
  273.     # 执行过渡
  274.     if $data_system.battle_transition == ""
  275.       Graphics.transition(20)
  276.     else
  277.       Graphics.transition(40, "Graphics/Transitions/" +
  278.         $data_system.battle_transition)
  279.     end
  280.     # 开始自由战斗回合
  281.     start_phase1
  282.     # 主循环
  283.     loop do
  284.       # 刷新游戏画面
  285.       Graphics.update
  286.       # 刷新输入信息
  287.       Input.update
  288.       # 刷新画面
  289.       update
  290.       # 如果画面切换的话就中断循环
  291.       if $scene != self
  292.         break
  293.       end
  294.     end
  295.     # 刷新地图
  296.     $game_map.refresh
  297.     # 准备过渡
  298.     Graphics.freeze
  299.     # 释放窗口
  300.     @actor_command_window.dispose
  301.     @party_command_window.dispose
  302.     @help_window.dispose
  303.     @status_window.dispose
  304.     @message_window.dispose
  305.     if @skill_window != nil
  306.       @skill_window.dispose
  307.     end
  308.     if @item_window != nil
  309.       @item_window.dispose
  310.     end
  311.     if @result_window != nil
  312.       @result_window.dispose
  313.     end
  314.     # 释放活动块
  315.     @spriteset.dispose
  316.     # 标题画面切换中的情况
  317.     if $scene.is_a?(Scene_Title)
  318.       # 淡入淡出画面
  319.       Graphics.transition
  320.       Graphics.freeze
  321.     end
  322.     # 战斗测试或者游戏结束以外的画面切换中的情况
  323.     if $BTEST and not $scene.is_a?(Scene_Gameover)
  324.       $scene = nil
  325.     end
  326.   end
  327.   #--------------------------------------------------------------------------
  328.   # ● 刷新画面 (角色命令回合 : 基本命令)
  329.   #--------------------------------------------------------------------------
  330.   def update_phase3_basic_command
  331.     # 按下 B 键的情况下
  332.     if Input.trigger?(Input::B)
  333.       # 演奏取消 SE
  334.       $game_system.se_play($data_system.cancel_se)
  335.       # 转向前一个角色的指令输入
  336.       phase3_prior_actor
  337.       return
  338.     end
  339.     # 按下 C 键的情况下
  340.     if Input.trigger?(Input::C)
  341.       # 角色指令窗口光标位置分之
  342.       case @actor_command_window.index
  343.       when 0  # 攻击
  344.         # 演奏确定 SE
  345.         $game_system.se_play($data_system.decision_se)
  346.         # 设置行动
  347.         @active_battler.current_action.kind = 0
  348.         @active_battler.current_action.basic = 0
  349.         # 开始选择敌人
  350.         start_enemy_select
  351.       when 1  # 特技
  352.         # 演奏确定 SE
  353.         $game_system.se_play($data_system.decision_se)
  354.         # 设置行动
  355.         @active_battler.current_action.kind = 1
  356.         # 开始选择特技
  357.         start_skill_select
  358.       when 2  # 防御
  359.         # 演奏确定 SE
  360.         $game_system.se_play($data_system.decision_se)
  361.         # 设置行动
  362.         @active_battler.current_action.kind = 0
  363.         @active_battler.current_action.basic = 1
  364.         # 转向下一位角色的指令输入
  365.         phase3_next_actor
  366.       when 3  # 物品
  367.         # 演奏确定 SE
  368.         $game_system.se_play($data_system.decision_se)
  369.         # 设置行动
  370.         @active_battler.current_action.kind = 2
  371.         # 开始选择物品
  372.         start_item_select
  373.       when 4
  374.         if @active_battler.is_a?(Game_Actor)
  375.           $game_system.se_play($data_system.decision_se)
  376.           equip_begin(@active_battler.id-1)
  377.           equip_main
  378.           Graphics.transition
  379.         end
  380.       end
  381.       return
  382.     end
  383.   end
  384. end
复制代码
SceneInScene

评分

参与人数 2星屑 +224 收起 理由
六祈 + 200 认可答案
clap_pl + 24 非常感谢

查看全部评分

[url=http://rpg.blue/thread-219730-1-1.html]http://unhero.sinaapp.com/wi.php[/url]
[color=Red]如你所见这是个死坑,没错这就是打我的脸用的[/color]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 16:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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