查看: 1807|回复: 6

[已经过期] 帮我把脚本整合一下。

[复制链接]
梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
回帖
189
发表于 2014-7-18 23:02:57 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 hys111111 于 2014-7-20 15:16 编辑

是这样的,我想把阿尔西斯战记里的战旗系统移到我的游戏里,我的游戏用的是空轨菜单,但我不知道它俩咋整合,所以上网寻求帮助。由于我没啥VIP币,开不了悬赏,所以只能用3000经验来代替了。
注意!整合时请认真看完以下脚本后再进行整合,免得出问题。
[pre lang="ruby" line="1"]=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
    @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(-@skill.sp_cost)
    else
      @active_battler.sp -= @skill.sp_cost
    end  
   # 技能增加CP
    if @skill.element_set.include?(1)
      @active_battler.gain_cp(+3)
    end
    # 技能增加CP
    if @skill.element_set.include?(2)
      @active_battler.gain_cp(+3)
    end  
    # 技能增加CP
    if @skill.element_set.include?(3)
      @active_battler.gain_cp(+3)
    end  
    # 技能增加CP
    if @skill.element_set.include?(4)
      @active_battler.gain_cp(+3)
    end      
   # 技能增加CP
    if @skill.element_set.include?(5)
      @active_battler.gain_cp(+3)
    end   
   # 技能增加CP
    if @skill.element_set.include?(6)
      @active_battler.gain_cp(+3)
    end
    # 技能增加CP
    if @skill.element_set.include?(7)
      @active_battler.gain_cp(+3)
    end  
     # 技能增加CP
    if @skill.element_set.include?(8)
      @active_battler.gain_cp(+3)
    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
[/pre]
在这里我有几点要求:
1.不是在战斗中将光标指向谁就会出现状态栏吗?分别是HP、SP和DELAY条,我的请求是把那个CP条也加上去、上限全部人的都是200。
2.数据库里的状态我只要阿尔西斯战记中的18、19和50,其他都不要,而属性栏里的1~8、20~21、26~30号状态不动。
3.阿尔西斯战记里除了我不要的那3个脚本以外(我标注过了)其他的都移到另一个去。
4.请教我一下这套脚本的用法~~
工程下载地址:http://dl.vmall.com/c0zanuxzq0
梦石
0
星屑
1748
在线时间
485 小时
注册时间
2006-1-7
回帖
996
发表于 2014-7-19 14:18:00 | 显示全部楼层
你的工程 文件审核中 无法下载
首先说一下想法
其实这两个脚本,一个是战斗系统的应用,另外一个是菜单窗口,理论上是不会冲突的
就看战斗系统是否有涉及系统基础的东西。
并且菜单窗口是否有重新定义系统基础的东西。
理论上,就只是在战斗系统中加入一个CP系统和CP窗口
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
回帖
189
 楼主| 发表于 2014-7-19 14:50:16 | 显示全部楼层
白鬼 发表于 2014-7-19 14:18
你的工程 文件审核中 无法下载
首先说一下想法
其实这两个脚本,一个是战斗系统的应用,另外一个是菜单窗口 ...

@白鬼 审核已完毕,请帮帮忙。我是不会整合才会发帖的,因为每次我想整合时都会出现错误,所以才发帖,但这只占50%,另外的50%是关于CP的~~~而且有那个CP脚本,如果整合不当,出现错误是难免的。
回复

使用道具 举报

梦石
0
星屑
1748
在线时间
485 小时
注册时间
2006-1-7
回帖
996
发表于 2014-7-19 19:43:12 | 显示全部楼层
艾孜哈尔 发表于 2014-7-19 14:50
@白鬼 审核已完毕,请帮帮忙。我是不会整合才会发帖的,因为每次我想整合时都会出现错误,所以才发帖,但 ...

我只是提个思路
要我来整合的话很慢很慢
6R社团我的社团名字叫做 低产社
加入6R至今未出过一个完整的游戏demo都没有
倒是有个自动存档案+自动读档的范例
但是估计也找不到了
最主要的是,我没有时间
工作忙得下班了一动不想动
要不是肚子饿……
我有空会看看的
但是不保证能动手整合
更不保证能整合好
别太期待啊~~~~
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-7-19 22:07:00 | 显示全部楼层
这两个系统貌似是不冲突的···是不是你自己用了其他冲突的脚本?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
回帖
189
 楼主| 发表于 2014-7-20 00:28:21 | 显示全部楼层
chd114 发表于 2014-7-19 22:07
这两个系统貌似是不冲突的···是不是你自己用了其他冲突的脚本?

没有啊!只是我不会整合而已,如果你要说有的话我认为就是我发的那个CP脚本了,然后顺便在战斗中显示的状态栏里加个CP条而已
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-7-20 11:06:07 | 显示全部楼层
艾孜哈尔 发表于 2014-7-19 07:28
没有啊!只是我不会整合而已,如果你要说有的话我认为就是我发的那个CP脚本了,然后顺便在战斗中显示的状 ...

那么你的问题解决了?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部