查看: 6768|回复: 14

[RMVA发布] 【国庆补完计划Ⅰ】技能冷却加强版

[复制链接]
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-10-1 10:25:30 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 chd114 于 2014-10-1 02:58 编辑

[pre lang="ruby" line="1"]=begin
在VA默认战斗系统上增加技能冷却时间系统。使用一个技能后在一定回合内不可以使用。
需要在技能备注里添加<CD x>
调用脚本
$game_actors[x].skill_cool_add(y,z)可以使x号角色的y号技能的剩余冷却时间增加z,如果z为负数则减少剩余冷却时间
=end
class RPG::Skill < RPG::UsableItem
  def cool_time
    @note.each_line{|line|
    case line
    when /\<(?:CD)[ ]*(\d+)\>/
      return $1.to_i
    end
    }
    return 0
  end
end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
#  管理角色的类。
#   本类在 Game_Actors 类 ($game_actors) 的内部使用。
#   具体使用请查看 Game_Party 类 ($game_party) 。
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias skill_cool_time_initialize initialize
  def initialize
    skill_cool_time_initialize
    @skill_cool_time=[]
  end
  #--------------------------------------------------------------------------
  # ● 应用技能/物品的效果★
  #--------------------------------------------------------------------------
  alias skill_cool_time_item_apply item_apply
  def item_apply(user, item)
    skill_cool_time_item_apply(user,item)
    if item.is_a?(RPG::Skill)
      user.set_cool_time(item)
    end
  end
  #--------------------------------------------------------------------------
  # ● 设置技能冷却时间
  #--------------------------------------------------------------------------
  def set_cool_time(skill)
    if skill.cool_time
      @skill_cool_time[skill.id] = skill.cool_time
    end
  end
  #--------------------------------------------------------------------------
  # ● 回合结束处理
  #--------------------------------------------------------------------------
  alias skill_cool_time_on_turn_end on_turn_end
  def on_turn_end
    skill_cool_time_on_turn_end
    @skill_cool_time.each_index{|index|
    @skill_cool_time[index] -= 1 if @skill_cool_time[index] and @skill_cool_time[index] > 0
    }
  end
  #--------------------------------------------------------------------------
  # ● 技能是否正在冷却
  #--------------------------------------------------------------------------
  def skill_cooling?(skill)
    @skill_cool_time[skill.id] and @skill_cool_time[skill.id] != 0
  end
  #--------------------------------------------------------------------------
  # ● 获取冷却回合
  #--------------------------------------------------------------------------
  def skill_cool_turn(skill)
    @skill_cool_time[skill.id] ? @skill_cool_time[skill.id] : 0
  end
  #--------------------------------------------------------------------------
  # ★ 增加与减少冷却回合
  #--------------------------------------------------------------------------
  def skill_cool_add(skill,y)
    if y<0
      if @skill_cool_time[skill.id]>-y
        @skill_cool_time[skill.id]+=y
      else
        @skill_cool_time[skill.id]=0
      end
    else
      @skill_cool_time[skill.id]+=y
    end
  end
  #--------------------------------------------------------------------------
  # ● 检查技能的使用条件
  #--------------------------------------------------------------------------
  alias skill_cool_time_skill_conditions_met? skill_conditions_met?
  def skill_conditions_met?(skill)
    skill_cool_time_skill_conditions_met?(skill) && !skill_cooling?(skill)
  end
  #--------------------------------------------------------------------------
  # ● 战斗结束处理
  #--------------------------------------------------------------------------
  alias skill_cool_time_on_battle_end on_battle_end
  def on_battle_end
      skill_cool_time_on_battle_end
      @skill_cool_time.clear
  end
end
#==============================================================================
# ■ Window_SkillList
#------------------------------------------------------------------------------
#  技能画面中,显示技能的窗口。
#==============================================================================

class Window_SkillList < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 绘制项目★
  #--------------------------------------------------------------------------
  alias skill_cool_time_draw_item draw_item
  def draw_item(index)
    skill = @data[index]
    if skill
      if @actor.skill_cooling?(skill)
        rect = item_rect(index)
        w = (skill.cool_time - @actor.skill_cool_turn(skill)).to_f / skill.cool_time
        draw_gauge(rect.x,rect.y,rect.width,w,text_color(5),text_color(13))
      end
    end
    skill_cool_time_draw_item(index)
  end
end[/pre]


顺便上传一个附件,按照惯例脚本免费工程收费且与脚本有出入······ 技能CD强化版.rar (1.54 MB, 下载次数: 212, 售价: 10 星屑)

同时感谢@invwindy 提供的一些支持以及群里某人的指点什么的 顺便祝各位6R的童鞋们国庆快乐

点评

这么简单的一个脚本,出范例我还能理解,为了帮助那些根本不懂脚本的新人,只用卖1经验就行了,你为何如此的buyaolian  发表于 2014-10-3 23:44
↓贬值这种事情很正常的好伐  发表于 2014-10-3 21:44
↓你可以选择去死  发表于 2014-10-3 21:20
↓价格会陆续降低,你也可以选择等几个月···  发表于 2014-10-3 20:54
虽然‘150经验登录3天就有了’,但是这是一个脚本而不是一dui.  发表于 2014-10-3 20:34

评分

参与人数 1星屑 +10 收起 理由
永燃的狂炎 + 10 我是第一个登入此页面的人

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
梦石
0
星屑
49
在线时间
200 小时
注册时间
2014-7-17
回帖
372
发表于 2014-10-1 11:40:33 | 显示全部楼层
150经验太坑爹,一个ARPG系统都只要50经验

知其然,而不欲知其所以然,耻也!
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-10-1 11:43:55 | 显示全部楼层
羁绊的守望者 发表于 2014-9-30 18:40
150经验太坑爹,一个ARPG系统都只要50经验

{:2_276:}不至于吧···150经验登录3天就有了···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

卑微的梦

梦石
0
星屑
547
在线时间
820 小时
注册时间
2013-2-23
回帖
1121

短篇九勇士组季军

发表于 2014-10-1 19:49:41 | 显示全部楼层
哇CHD聚聚你还真是厉害啊,这样就卖了150经验,我就卖个1经验的标题画面加强你就要唧唧歪歪半天
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2014-10-9 16:13:36 | 显示全部楼层
没有办法对指定目标进行CD加减吗?
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-10-9 21:09:59 | 显示全部楼层
lirn 发表于 2014-10-8 23:13
没有办法对指定目标进行CD加减吗?

$game_actors[x].skill_cool_add(y,z)就是对X号角色的Y技能的冷却增加Z个回合,Z如果是负的就减少,但是不会减到负数
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
78
在线时间
45 小时
注册时间
2014-6-27
回帖
19
发表于 2014-10-9 21:47:03 | 显示全部楼层
先码着,做完手上的游戏就要用到这个 了
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-10-9 21:49:49 | 显示全部楼层
bloodsand 发表于 2014-10-9 04:47
先码着,做完手上的游戏就要用到这个 了

如果用到了其他的技能相关的脚本最好还是先放这个试一下,快要做完的时候出现致命BUG会很蛋疼···目前我只发现日站有个攻击扩展范围的脚本会和这个冲突
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
50
在线时间
97 小时
注册时间
2013-12-30
回帖
6
发表于 2014-10-12 07:02:20 | 显示全部楼层
範例無法下載...
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-10-12 07:44:08 | 显示全部楼层
a7926447 发表于 2014-10-11 14:02
範例無法下載...

网络问题吧···我这里能下到
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部