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

Project1

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

[已经过期] 关于这个脚本的问题

[复制链接]

Lv1.梦旅人

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

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

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

x
我因为用了下面这个脚本,而导致我使用导力魔法的话地方也会模仿使用我的导力魔法,而使用战技或普通攻击会像下图所示的一样会出问题,求解决方案。

=begin

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

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

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

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


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

=end


# KGH模块的一些小扩展
module KGH
  # 指令【攻击】获得的cp
  CP_GAIN_ATT = 5
  # 指令【防御】获得的cp
  CP_GAIN_GUA = 4
  # 挨打时获得的cp
  CP_GAIN_DAM = 3
end


#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
#  处理战斗画面的类。
#==============================================================================

class Scene_Battle
  
  #--------------------------------------------------------------------------
  # ☆ 获取基础命令(攻击、防御)的CP
  #--------------------------------------------------------------------------
  def get_cp
    # 攻击
    if @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 0
      cp_get = KGH::CP_GAIN_ATT
    # 防御
    elsif @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 1
      cp_get = KGH::CP_GAIN_GUA
    # 其他
    else
      cp_get = 0
    end
    @active_battler.gain_cp(cp_get)
  end
  
  #--------------------------------------------------------------------------
  # ☆ 生成基本行动结果
  #--------------------------------------------------------------------------
  alias :old_make_basic_action_result :make_basic_action_result
  def make_basic_action_result
    ## 获取基本行动CP(只给我方角色增加)
    get_cp if @active_battler.is_a?(Game_Actor)
    # 刷新状态窗口
    @status_window.refresh
    ##############
   
    # 进行原本流程
    old_make_basic_action_result
  end
      
  #--------------------------------------------------------------------------
  # ● 生成特技行动结果
  #--------------------------------------------------------------------------
  alias old_kgh_make_skill_action_result make_skill_action_result
  def make_skill_action_result
   
   
   
    # 如果不是强制行动
    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
  
  
  #--------------------------------------------------------------------------
  # ☆ 刷新画面 (主回合步骤 5 : 显示伤害)
  #--------------------------------------------------------------------------
  alias :old_update_phase4_step5 :update_phase4_step5
  def update_phase4_step5
    # 隐藏帮助窗口
    @help_window.visible = false
    # 刷新状态窗口
    @status_window.refresh
    # 显示伤害
    for target in @target_battlers
      if target.damage != nil
        target.damage_pop = true
      end
      ##挨打时对象获得的CP(只给我方角色增加)
      if target.is_a?(Game_Actor)
        target.gain_cp(KGH::CP_GAIN_DAM)
        # 刷新状态窗口
        @status_window.refresh
      end
      ###########################
    end
    # 移至步骤 6
    @phase4_step = 6
  end
  
  
end

#==============================================================================
# ■ Game_Actor 追加
#------------------------------------------------------------------------------
#    角色结晶槽的升级接口函数为:
#    <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

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
2
发表于 2014-7-6 19:30:40 | 只看该作者
请楼主把帖子内的脚本用代码扩上,或者请指明一下哪里是第97行,谢谢了。
偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
帖子
215
3
发表于 2014-7-6 19:56:26 | 只看该作者
CP脚本的文件头给删除了~~!!!
# 异界的月追加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)

在这里添加!

# KGH模块的一些小扩展
module KGH
  # 指令【攻击】获得的cp
  CP_GAIN_ATT = 5
  # 指令【防御】获得的cp
  CP_GAIN_GUA = 4
  # 挨打时获得的cp
  CP_GAIN_DAM = 3
end

定义 Crafts_Skill 还有 S_Crafts_Skill

不知道是你自己不小心删的呢~~!!

还是自己添加忘记写上去了~~!!
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
帖子
235
4
 楼主| 发表于 2014-7-7 10:41:51 | 只看该作者
可问题还没解决呀!我照你说的做还是一样的,待会我把工程发上来。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
帖子
235
5
 楼主| 发表于 2014-7-7 10:53:29 | 只看该作者
本帖最后由 艾孜哈尔 于 2014-7-7 11:13 编辑

工程下载地址:http://pan.baidu.com/s/1pJ3AAAf
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
帖子
235
6
 楼主| 发表于 2014-7-9 17:00:04 | 只看该作者
@batfjtn ,帮人帮到底,而且你好像没弄清楚问题,我方发动战技都没问题,问题在敌方,我把问题重新问一遍:
为 什 么 我 方 的 人 使 用 一 种 敌 方 不 会 的 导 力 魔 法 时 敌 方 也 会 使 用 那 种 魔 法,
而 我 方 使 用 完 战 技 时 轮 到 敌 方 行 动 的 时 候 会 出 现 一 楼 显 示 的 错 误。

点评

行~~!!好了直接发消息给我~!!  发表于 2014-7-9 17:09
还有,如果问题真解决了,就请版主从我这里抽走500经验给你。  发表于 2014-7-9 17:08
我上传到115吧!  发表于 2014-7-9 17:04
工程地址有问题~~!! 没办法访问~~!!!  发表于 2014-7-9 17:03
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 11:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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