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

Project1

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

[已经解决] 如何使逃跑选项加入进菜单项且能执行的

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
跳转到指定楼层
1
发表于 2009-9-7 20:02:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 flzt5354 于 2009-9-8 20:05 编辑

搜索看了不少..但没一个是能行的- -

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2009-9-8 12:35:56 | 只看该作者
本帖最后由 后知后觉 于 2009-9-8 12:43 编辑

那些如何去除【战斗/逃跑】选项,和增加这个按钮我就不说了.
针对默认系统:
两种效果:


①.按下按钮时立即执行逃跑处理.
先找到 Scene_Battle 3 的这一段增加 when 4

  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新画面 (角色命令回合 : 基本命令)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase3_basic_command
  5.     if Input.trigger?(Input::B)
  6.       $game_system.se_play($data_system.cancel_se)
  7.       phase3_prior_actor
  8.       return
  9.     end
  10.     if Input.trigger?(Input::C)
  11.       case @actor_command_window.index
  12.       when 0  # 攻击
  13.         $game_system.se_play($data_system.decision_se)
  14.         @active_battler.current_action.kind = 0
  15.         @active_battler.current_action.basic = 0
  16.         start_enemy_select
  17.       when 1  # 特技
  18.         $game_system.se_play($data_system.decision_se)
  19.         @active_battler.current_action.kind = 1
  20.         start_skill_select
  21.       when 2  # 防御
  22.         $game_system.se_play($data_system.decision_se)
  23.         @active_battler.current_action.kind = 0
  24.         @active_battler.current_action.basic = 1
  25.         phase3_next_actor
  26.       when 3  # 物品
  27.         $game_system.se_play($data_system.decision_se)
  28.         @active_battler.current_action.kind = 2
  29.         start_item_select
  30.       when 4  # 逃跑
  31.         $game_system.se_play($data_system.decision_se)
  32.         update_phase2_escape
  33.       end
  34.       return
  35.     end
  36.   end
复制代码


②.进入主战斗回合,每个输入了【逃跑】命令的角色都执行一次逃跑处理.
   有一个逃跑成功立即结束战斗.
找到 Scene_Battle 3 的这一段增加 when 4

  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新画面 (角色命令回合 : 基本命令)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase3_basic_command
  5.     if Input.trigger?(Input::B)
  6.       $game_system.se_play($data_system.cancel_se)
  7.       phase3_prior_actor
  8.       return
  9.     end
  10.     if Input.trigger?(Input::C)
  11.       case @actor_command_window.index
  12.       when 0  # 攻击
  13.         $game_system.se_play($data_system.decision_se)
  14.         @active_battler.current_action.kind = 0
  15.         @active_battler.current_action.basic = 0
  16.         start_enemy_select
  17.       when 1  # 特技
  18.         $game_system.se_play($data_system.decision_se)
  19.         @active_battler.current_action.kind = 1
  20.         start_skill_select
  21.       when 2  # 防御
  22.         $game_system.se_play($data_system.decision_se)
  23.         @active_battler.current_action.kind = 0
  24.         @active_battler.current_action.basic = 1
  25.         phase3_next_actor
  26.       when 3  # 物品
  27.         $game_system.se_play($data_system.decision_se)
  28.         @active_battler.current_action.kind = 2
  29.         start_item_select
  30.       when 4  # 逃跑
  31.         $game_system.se_play($data_system.decision_se)
  32.         @active_battler.current_action.kind = 0
  33.         @active_battler.current_action.basic = 2
  34.         phase3_next_actor
  35.       end
  36.       return
  37.     end
  38.   end
复制代码
找到 Scene_Battle 2 的这一段
把里面的 start_phase4 改成 @phase4_step = 1
再把 $game_party.clear_actions 删除
这个里面可以修改逃跑成功率的计算公式

  1.   #--------------------------------------------------------------------------
  2.   # ● 画面更新 (同伴指令回合 : 逃跑)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase2_escape
  5.     enemies_agi = 0
  6.     enemies_number = 0
  7.     for enemy in $game_troop.enemies
  8.       if enemy.exist?
  9.         enemies_agi += enemy.agi
  10.         enemies_number += 1
  11.       end
  12.     end
  13.     if enemies_number > 0
  14.       enemies_agi /= enemies_number
  15.     end
  16.     actors_agi = 0
  17.     actors_number = 0
  18.     for actor in $game_party.actors
  19.       if actor.exist?
  20.         actors_agi += actor.agi
  21.         actors_number += 1
  22.       end
  23.     end
  24.     if actors_number > 0
  25.       actors_agi /= actors_number
  26.     end
  27.     success = rand(100) < 50 * actors_agi / enemies_agi
  28.     if success
  29.       $game_system.se_play($data_system.escape_se)
  30.       $game_system.bgm_play($game_temp.map_bgm)
  31.       battle_end(1)
  32.     else
  33.       #$game_party.clear_actions
  34.       #start_phase4
  35.       @phase4_step = 1
  36.     end
  37.   end
复制代码
然后来到 Scene_Battle 4
添加一小段内容.有注释的部分~

  1.   #--------------------------------------------------------------------------
  2.   # ● 生成基本行动结果
  3.   #--------------------------------------------------------------------------
  4.   def make_basic_action_result
  5.     if @active_battler.current_action.basic == 0
  6.       @animation1_id = @active_battler.animation1_id
  7.       @animation2_id = @active_battler.animation2_id
  8.       if @active_battler.is_a?(Game_Enemy)
  9.         if @active_battler.restriction == 3
  10.           target = $game_troop.random_target_enemy
  11.         elsif @active_battler.restriction == 2
  12.           target = $game_party.random_target_actor
  13.         else
  14.           index = @active_battler.current_action.target_index
  15.           target = $game_party.smooth_target_actor(index)
  16.         end
  17.       end
  18.       if @active_battler.is_a?(Game_Actor) or @active_battler.is_a?(Hzhj_Baby)
  19.         if @active_battler.restriction == 3
  20.           target = $game_party.random_target_actor
  21.         elsif @active_battler.restriction == 2
  22.           target = $game_troop.random_target_enemy
  23.         else
  24.           index = @active_battler.current_action.target_index
  25.           target = $game_troop.smooth_target_enemy(index)
  26.         end
  27.       end
  28.       @target_battlers = [target]
  29.       for target in @target_battlers
  30.         target.attack_effect(@active_battler)
  31.       end
  32.       return
  33.     end
  34.     if @active_battler.current_action.basic == 1
  35.       @help_window.set_text($data_system.words.guard, 1)
  36.       return
  37.     end
  38.     # 如果当前战斗者是敌人 而且 命令是 逃跑
  39.     if @active_battler.is_a?(Game_Enemy) and
  40.        @active_battler.current_action.basic == 2
  41.       #  帮助窗口显示"逃跑"
  42.       @help_window.set_text("逃跑", 1)
  43.       # 执行敌人逃跑处理
  44.       @active_battler.escape
  45.       return
  46.     end
  47.   #--------------------------------------------------------------------------
  48.     # 如果当前战斗者是角色 而且 命令是 逃跑
  49.     if @active_battler.is_a?(Game_Actor) and
  50.        @active_battler.current_action.basic == 2
  51.       #  帮助窗口显示"逃跑"
  52.       @help_window.set_text("逃跑", 1)
  53.       # 执行角色逃跑处理
  54.       update_phase2_escape
  55.       return
  56.     end
  57.   #--------------------------------------------------------------------------
  58.     if @active_battler.current_action.basic == 3
  59.       $game_temp.forcing_battler = nil
  60.       @phase4_step = 1
  61.       return
  62.     end
  63.   end
复制代码
这样就完成了,当然还有个效果③
这个效果的复杂程度就要高一些了.改的东西就更多了
我就不说了,自己去想吧^ ^
是在效果②的基础上升级...
逃跑成功的角色脱离战斗.没有逃跑的和逃跑失败的角色留下来继续战斗
感觉就和敌人的逃跑是一样

还是给你一个效果②的工程吧- -
逃跑.rar (183.34 KB, 下载次数: 200)

然后补充一句,上面贴的代码不要直接复制- - 有些东西是默认系统没有的 复制过去就会出错











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
3
 楼主| 发表于 2009-9-8 20:03:17 | 只看该作者
本帖最后由 flzt5354 于 2009-9-8 20:05 编辑

成功了,非常感谢
PS:= =我当然不会直接复制~~鼠标脚本还有头像脚本我都修改这的~~直接复制哪成~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 12:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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