查看: 2837|回复: 0

[RMVA发布] 多类型状态(给状态设置分类)

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

开拓者

发表于 2017-11-21 16:39:15 | 显示全部楼层 |阅读模式

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

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

×
看到MV区的ye屁插件整合清单就对着做了


【汉化】YEP.89 – State Categories - 简书
http://www.jianshu.com/p/35004d654cc6
这个插件允许你设置状态的分类,他们可以属于一个分类,也可以是多个甚至没有。
这样,这个插件就可以提供通过分类来消除状态的功能,或者忽略特定状态,
例如死亡自动移除或者全体恢复



VA数据库里,状态没有分类,用这个脚本可以给你的状态增加分类(这种分类如果放到DOTA2的话,就是可以驱散、仅强驱散、无法驱散)
添加多类型状态以后可以用这个脚本里面设定好的方法移除包含指定类型的状态

state类方法
types:输出指定状态包含的所有类型的数组
types_n:输出指定状态包含的所有类型的名字的数组

battler类方法
remove_state_type(tid):移除指定单位所持有状态中属于tid类型的状态(tid为该类型的编号)

[pre lang="ruby"]=begin
给一个状态多种类型分类
=end
module Vocab
  STATE_TYPE_NAME=["增益状态","减益状态","物理","魔法"]
end
module State
  Type = {
  1=>[2],
  20=>[0,3],
  }
end
(1..999).each{|i|State::Type||=[]}
class RPG::State
  def types
    State::Type[self.id].uniq
  end
  def types_n
    n=[]
    self.types.each{|i|n.push(Vocab::STATE_TYPE_NAME)}
    n
  end
end
#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
#  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
#==============================================================================

class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 解除指定类型的状态
  #--------------------------------------------------------------------------
  def remove_state_type(tid)
    states.each{|i|
    if state?(i.id) and i.types.include?(tid)
      revive if i.id == death_state_id
      erase_state(i.id)
      refresh
      @result.removed_states.push(i.id).uniq!
    end
    }
  end
end[/pre]
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

在本版发帖返回顶部