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

Project1

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

[已经解决] 关于空轨菜单2.01的CP消耗问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
帖子
235
跳转到指定楼层
1
发表于 2014-3-8 16:05:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,我用了下面的这个脚本出了问题:

#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
#  处理战斗画面的类。
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 生成特技行动结果
  #--------------------------------------------------------------------------
  alias old_kgh_make_skill_action_result make_skill_action_result
  def make_skill_action_result
     @skill = $data_skills[@active_battler.current_action.skill_id]
    # 如果不是强制行动
    unless @active_battler.current_action.forcing
      # 因为 SP 耗尽而无法使用的情况下
      unless @active_battler.skill_can_use?(@skill.id)
        # 清除强制行动对像的战斗者
        $game_temp.forcing_battler = nil
        # 移至步骤 1
        @phase4_step = 1
        return
      end
    end
    # 消耗 SP
   
    # 异界的月追加CP消耗
    if @skill.element_set.include?(KGH::Crafts_Skill) or
      @skill.element_set.include?(KGH::S_Crafts_Skill)
      @active_battler.gain_cp([email protected]_cost)
    else
      @active_battler.sp -= @skill.sp_cost
    end  
      
    # 刷新状态窗口
    @status_window.refresh
    # 在帮助窗口显示特技名
    @help_window.set_text(@skill.name, 1)
    # 设置动画 ID
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    # 设置公共事件 ID
    @common_event_id = @skill.common_event_id
    # 设置对像侧战斗者
    set_target_battlers(@skill.scope)
    # 应用特技效果
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
  end
end
#==============================================================================
# ■ Game_Actor 追加
#------------------------------------------------------------------------------
#    角色结晶槽的升级接口函数为:
#    .cs_levelup(结晶槽ID, 升级幅度) 升级幅度省略则为1
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 检测技能是否可用,与默认方法略微不同
  #     skill_id   : 技能ID
  #--------------------------------------------------------------------------
  def skill_can_use?(skill_id)
    #如果是CP技能
    if $data_skills[skill_id].element_set.include?(KGH::Crafts_Skill) or
      $data_skills[skill_id].element_set.include?(KGH::S_Crafts_Skill)
      # CP 不足的情况下不能使用
      if $data_skills[skill_id].sp_cost > self.cp_store
        return false
      end
    end
    return super
  end
end

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2014-3-8 20:46:23 | 只看该作者
根据LZ的需求,稍微动了@kinguanghua 大大的脚本~
(其实用code代码框能去掉@的链接属性什么的。。。
具体就用这个代替之前月大大的那个main前插入就好了~~唔~

(另外,如果使用了其他战斗系统的话,请另外开贴找人整合或自己整合~
  1. =begin

  2. 根据需求增加了一些脚本,
  3. 但!是!只适用于默认战斗系统以及基本规则是默认系统的战斗脚本,
  4. 切必须至于任何战斗系统之下,否则会出错或者无效。

  5. 至于与其他战斗系统整合,已经是另一个程度的问题了。

  6. 一点简单的说明:
  7. 首先在【数据库】里面的【系统】页里的【属性】里,
  8. 增加最大值,找到20号,设定为【特技】,21号设定为【S-爆发技】。

  9. 之后,作为战技的技能,请在属性里勾上【特技】属性,
  10. 然后这类技能设定的【SP消耗】其实就是CP的消耗了。


  11. 下方有一些KGH模块的扩展,
  12. 是关于一些常规行动获得的CP量。
  13. 可以自行设定。

  14. =end


  15. # KGH模块的一些小扩展
  16. module KGH
  17.   # 指令【攻击】获得的cp
  18.   CP_GAIN_ATT = 5
  19.   # 指令【防御】获得的cp
  20.   CP_GAIN_GUA = 4
  21.   # 挨打时获得的cp
  22.   CP_GAIN_DAM = 3
  23. end


  24. #==============================================================================
  25. # ■ Scene_Battle (分割定义 4)
  26. #------------------------------------------------------------------------------
  27. #  处理战斗画面的类。
  28. #==============================================================================

  29. class Scene_Battle
  30.   
  31.   #--------------------------------------------------------------------------
  32.   # ☆ 获取基础命令(攻击、防御)的CP
  33.   #--------------------------------------------------------------------------
  34.   def get_cp
  35.     # 攻击
  36.     if @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 0
  37.       cp_get = KGH::CP_GAIN_ATT
  38.     # 防御
  39.     elsif @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 1
  40.       cp_get = KGH::CP_GAIN_GUA
  41.     # 其他
  42.     else
  43.       cp_get = 0
  44.     end
  45.     @active_battler.gain_cp(cp_get)
  46.   end
  47.   
  48.   #--------------------------------------------------------------------------
  49.   # ☆ 生成基本行动结果
  50.   #--------------------------------------------------------------------------
  51.   alias :old_make_basic_action_result :make_basic_action_result
  52.   def make_basic_action_result
  53.     ## 获取基本行动CP(只给我方角色增加)
  54.     get_cp if @active_battler.is_a?(Game_Actor)
  55.     # 刷新状态窗口
  56.     @status_window.refresh
  57.     ##############
  58.    
  59.     # 进行原本流程
  60.     old_make_basic_action_result
  61.   end
  62.       
  63.   #--------------------------------------------------------------------------
  64.   # ● 生成特技行动结果
  65.   #--------------------------------------------------------------------------
  66.   alias old_kgh_make_skill_action_result make_skill_action_result
  67.   def make_skill_action_result
  68.    
  69.     [url=home.php?mod=space&uid=260100]@skill[/url] = $data_skills[@active_battler.current_action.skill_id]
  70.    
  71.     # 如果不是强制行动
  72.     unless @active_battler.current_action.forcing
  73.       # 因为 SP 耗尽而无法使用的情况下
  74.       unless @active_battler.skill_can_use?(@skill.id)
  75.         # 清除强制行动对像的战斗者
  76.         $game_temp.forcing_battler = nil
  77.         # 移至步骤 1
  78.         @phase4_step = 1
  79.         return
  80.       end
  81.     end
  82.     # 消耗 SP

  83.     # 异界的月追加CP消耗
  84.     if @skill.element_set.include?(KGH::Crafts_Skill) or
  85.       @skill.element_set.include?(KGH::S_Crafts_Skill)
  86.       @active_battler.gain_cp([email protected]_cost)
  87.     else
  88.       @active_battler.sp -= @skill.sp_cost
  89.     end  

  90.     # 刷新状态窗口
  91.     @status_window.refresh
  92.     # 在帮助窗口显示特技名
  93.     @help_window.set_text(@skill.name, 1)
  94.     # 设置动画 ID
  95.     @animation1_id = @skill.animation1_id
  96.     @animation2_id = @skill.animation2_id
  97.     # 设置公共事件 ID
  98.     @common_event_id = @skill.common_event_id
  99.     # 设置对像侧战斗者
  100.     set_target_battlers(@skill.scope)
  101.     # 应用特技效果
  102.     for target in @target_battlers
  103.       target.skill_effect(@active_battler, @skill)
  104.     end
  105.   end
  106.   
  107.   
  108.   #--------------------------------------------------------------------------
  109.   # ☆ 刷新画面 (主回合步骤 5 : 显示伤害)
  110.   #--------------------------------------------------------------------------
  111.   alias :old_update_phase4_step5 :update_phase4_step5
  112.   def update_phase4_step5
  113.     # 隐藏帮助窗口
  114.     @help_window.visible = false
  115.     # 刷新状态窗口
  116.     @status_window.refresh
  117.     # 显示伤害
  118.     for target in @target_battlers
  119.       if target.damage != nil
  120.         target.damage_pop = true
  121.       end
  122.       ##挨打时对象获得的CP(只给我方角色增加)
  123.       if target.is_a?(Game_Actor)
  124.         target.gain_cp(KGH::CP_GAIN_DAM)
  125.         # 刷新状态窗口
  126.         @status_window.refresh
  127.       end
  128.       ###########################
  129.     end
  130.     # 移至步骤 6
  131.     @phase4_step = 6
  132.   end
  133.   
  134.   
  135. end

  136. #==============================================================================
  137. # ■ Game_Actor 追加
  138. #------------------------------------------------------------------------------
  139. #    角色结晶槽的升级接口函数为:
  140. #    <Game_Actor实例>.cs_levelup(结晶槽ID, 升级幅度) 升级幅度省略则为1
  141. #==============================================================================
  142. class Game_Actor < Game_Battler
  143.   #--------------------------------------------------------------------------
  144.   # ● 检测技能是否可用,与默认方法略微不同
  145.   #     skill_id   : 技能ID
  146.   #--------------------------------------------------------------------------
  147.   def skill_can_use?(skill_id)
  148.     #如果是CP技能
  149.     if $data_skills[skill_id].element_set.include?(KGH::Crafts_Skill) or
  150.       $data_skills[skill_id].element_set.include?(KGH::S_Crafts_Skill)
  151.       # CP 不足的情况下不能使用
  152.       if $data_skills[skill_id].sp_cost > self.cp_store
  153.         return false
  154.       end
  155.     end
  156.     return super
  157.   end
  158. end




复制代码

评分

参与人数 1梦石 +1 收起 理由
myownroc + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
帖子
235
3
 楼主| 发表于 2014-3-9 08:25:16 | 只看该作者
谢谢你!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 14:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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