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

Project1

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

[已经解决] 如何实现逃跑消耗SP

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-5-4
帖子
351
跳转到指定楼层
1
发表于 2012-5-23 18:23:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
每执行逃跑都消耗100SP
角色不足100SP会声音提示无法逃跑,要怎么做

点评

已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复已修复  发表于 2012-5-25 12:54

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
2
发表于 2012-5-23 20:09:43 | 只看该作者
Scene_Battle2找到def update_phase2_escape下面插入
  1.     for actor in $game_party.actors
  2.       if actor.axist?
  3.         actor.sp = [actor.sp - 这里是扣的数量,0].max
  4.       end
  5.     end
复制代码
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
71 小时
注册时间
2009-4-18
帖子
209
3
发表于 2012-5-23 21:33:21 | 只看该作者
本帖最后由 大东 于 2012-5-23 21:35 编辑

还可以做一个技能,脚底抹油,消耗sp,公共事件,条件,条件成立,逃跑!不过原有脚本中的逃跑得删除掉!应该在战斗相关的里面,楼主可到相关脚本中找一下!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
186 小时
注册时间
2012-5-8
帖子
987
4
发表于 2012-5-23 23:16:50 | 只看该作者
不会再逃跑那里把它弄成是技能吗..
然后用技能套用事件,就好了。
如条件分支...
执行....
...
看什么看,没看过大坑啊!
-------------------------炫翼-----------------------------
剧情:4%
地图:2%
系统:7%
优化:3%
脚本:25%
--------------------------炫翼----------------------------

      工作室


广告位招租....  
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2667
在线时间
1586 小时
注册时间
2010-10-22
帖子
1053
5
发表于 2012-5-24 12:40:06 | 只看该作者
本帖最后由 kangxi0109 于 2012-5-24 12:42 编辑

在Scene_Battle 2里面改:

  1.   #--------------------------------------------------------------------------
  2.   # ● 画面更新 (同伴指令回合 : 逃跑)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase2_escape
  5.     # 计算敌人速度的平均值
  6.     enemies_agi = 0
  7.     enemies_number = 0
  8.     for enemy in $game_troop.enemies
  9.       if enemy.exist?
  10.         enemies_agi += enemy.agi
  11.         enemies_number += 1
  12.       end
  13.     end
  14.     if enemies_number > 0
  15.       enemies_agi /= enemies_number
  16.     end
  17.     # 计算角色速度的平均值
  18.     actors_agi = 0
  19.     actors_number = 0
  20.     for actor in $game_party.actors
  21.       if actor.exist?
  22.         actors_agi += actor.agi
  23.         actors_number += 1
  24.       end
  25.     end
  26.     if actors_number > 0
  27.       actors_agi /= actors_number
  28.     end
  29.     # 逃跑成功判定
  30.     #------------------------------------------------
  31.     if @active_battler.sp >= 100
  32.       @active_battler.sp-=100
  33.       success = rand(100) < 50 * actors_agi / enemies_agi
  34.     else
  35.       success = false
  36.     end
  37.     #------------------------------------------------
  38.     # 成功逃跑的情况下
  39.     if success
  40.       # 演奏逃跑 SE
  41.       $game_system.se_play($data_system.escape_se)
  42.       # 还原为战斗开始前的 BGM
  43.       $game_system.bgm_play($game_temp.map_bgm)
  44.       # 战斗结束
  45.       battle_end(1)
  46.     # 逃跑失败的情况下
  47.     else
  48.       # 清除全体同伴的行动
  49.       $game_party.clear_actions
  50.     #------------------------------------------------
  51.       #  帮助窗口显示"逃跑"
  52.       @help_window.set_text("sp不足,无法逃跑!", 1)
  53.       @party_command_window.visible = false
  54.       @help_window.visible = true
  55.       @wait_count = 20#窗口显示的时间,帧
  56.     #------------------------------------------------
  57.       # 开始主回合
  58.       start_phase4
  59.     end
  60.   end
复制代码

点评

如果想要声音的话,可以在显示窗口下面加一行:$game_system.se_play($data_system.buzzer_se)  发表于 2012-5-25 08:13
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

6
发表于 2012-5-24 12:49:32 | 只看该作者
本帖最后由 hys111111 于 2012-5-25 12:53 编辑

已修复
  1. #==============================================================================
  2. # ■ Scene_Battle (分割定义 已被篡改)
  3. #------------------------------------------------------------------------------
  4. #  逃跑时,全体同伴都要逃跑。
  5. #==============================================================================

  6. class Scene_Battle
  7.   #--------------------------------------------------------------------------
  8.   # ● 刷新画面 (同伴命令回合)
  9.   #--------------------------------------------------------------------------
  10.   def update_phase2
  11.    
  12.     #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  13.     if $game_temp.battle_can_escape
  14.       @sp_can_escape = 1
  15.       for actor in $game_party.actors
  16.         if actor.sp < 100
  17.           @sp_can_escape = 0
  18.           break
  19.         end
  20.       end
  21.     else
  22.       @sp_can_escape = 0
  23.     end
  24.     #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  25.    
  26.     # 按下 C 键的情况下
  27.     if Input.trigger?(Input::C)
  28.       # 同伴指令窗口光标位置分支
  29.       case @party_command_window.index
  30.       when 0  # 战斗
  31.         # 演奏确定 SE
  32.         $game_system.se_play($data_system.decision_se)
  33.         # 开始角色的命令回合
  34.         start_phase3
  35.       when 1  # 逃跑
  36.         # 不能逃跑的情况下
  37.         if @sp_can_escape == 0 #修改部分
  38.           # 演奏冻结 SE
  39.           $game_system.se_play($data_system.buzzer_se)
  40.           return
  41.         end
  42.         
  43.         #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  44.         for actor in $game_party.actors
  45.           actor.sp -= 100
  46.         end
  47.         #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  48.          
  49.         # 演奏确定 SE
  50.         $game_system.se_play($data_system.decision_se)
  51.         # 逃走处理
  52.         update_phase2_escape
  53.       end
  54.       return
  55.     end
  56.   end
  57. end
  58. #==============================================================================
  59. # ■ Window_PartyCommand
  60. #------------------------------------------------------------------------------
  61. #  战斗画面、选择战斗与逃跑的窗口。
  62. #==============================================================================

  63. class Window_PartyCommand < Window_Selectable
  64.   #--------------------------------------------------------------------------
  65.   # ● 初始化对像
  66.   #--------------------------------------------------------------------------
  67.   def initialize
  68.     super(0, 0, 640, 64)
  69.     self.contents = Bitmap.new(width - 32, height - 32)
  70.     self.back_opacity = 160
  71.     @commands = ["战斗", "逃跑"]
  72.     @item_max = 2
  73.     @column_max = 2
  74.     draw_item(0, normal_color)
  75.    
  76.     #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  77.     if $game_temp.battle_can_escape
  78.       @sp_can_escape = 1
  79.       for actor in $game_party.actors
  80.         if actor.sp < 100
  81.           @sp_can_escape = 0
  82.           break
  83.         end
  84.       end
  85.     else
  86.       @sp_can_escape = 0
  87.     end
  88.     #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  89.    
  90.     draw_item(1, @sp_can_escape == 1 ? normal_color : disabled_color)
  91.     self.active = false
  92.     self.visible = false
  93.     self.index = 0
  94.   end
  95. end
复制代码

点评

无SP时会报错  发表于 2012-5-24 18:45
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2011-2-28
帖子
6
7
发表于 2012-5-24 15:59:34 | 只看该作者
应该可以做个逃跑技能吧
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2667
在线时间
1586 小时
注册时间
2010-10-22
帖子
1053
8
发表于 2012-5-25 08:14:13 | 只看该作者
本帖最后由 kangxi0109 于 2012-5-25 08:15 编辑

如果想要显示声音的话,可以在"帮助窗口显示"逃跑""下面加一行:$game_system.se_play($data_system.buzzer_se)
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-2 17:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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