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

Project1

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

[已经解决] VA里 难道没 被动技能的吗

[复制链接]

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
跳转到指定楼层
1
发表于 2012-6-29 07:14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 z2z4 于 2012-6-29 10:29 编辑

没被动技能  就没法 做 养成技能类的了   请高手指点
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV

Lv1.梦旅人

梦石
0
星屑
50
在线时间
66 小时
注册时间
2011-9-1
帖子
21
2
发表于 2012-6-29 09:19:24 | 只看该作者
從日本的網站轉來的
原址:http://www002.upp.so-net.ne.jp/usagimask/top.htm

#==============================================================================
# ■ UMSSSS
#------------------------------------------------------------------------------
# ▼ウサギマスクが製作したゲームシステムの基本設定を扱うモジュールです。
#   ※ UMSSSS は UsagiMaskSystemScriptSynthesisSetting の略です(ぇ
#==============================================================================
class UMSSSS
  
  # 簡易パッシブスキルとして使用するスキルタイプの名称
  UseSimplePassiveName = "主動技能"
  
end
#==============================================================================
# ■ RPG::Skill
#------------------------------------------------------------------------------
#  スキルのデータクラス。
#==============================================================================
class RPG::Skill < RPG::UsableItem
  def real_note
    return @note.clone
  end
  def simple_passive?
    s_name = $data_system.skill_types[@stype_id]
    return s_name == UMSSSS::UseSimplePassiveName
  end
end
#==============================================================================
# ■ Game_BattlerBase
#------------------------------------------------------------------------------
#  バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
# のクラスは Game_Battler クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_BattlerBase
  alias ums_simple_passive_skill_state_resist_set state_resist_set
  alias ums_simple_passive_skill_recover_all recover_all
  #--------------------------------------------------------------------------
  # ● 無効化するステートの配列を取得
  #--------------------------------------------------------------------------
  def state_resist_set
    result = ums_simple_passive_skill_state_resist_set
    if self.actor?
      result += @passive_m_states unless @passive_m_states.nil?
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● 全回復
  #--------------------------------------------------------------------------
  def recover_all
    ums_simple_passive_skill_recover_all
    check_simple_passive if self.actor?
  end
  #--------------------------------------------------------------------------
  # ● 無効化する能力強化の配列を取得
  #--------------------------------------------------------------------------
  def buff_resist_set
    return []
  end
  #--------------------------------------------------------------------------
  # ● 無効化する能力弱体の配列を取得
  #--------------------------------------------------------------------------
  def debuff_resist_set
    return []
  end
end
#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
#  スプライトや行動に関するメソッドを追加したバトラーのクラスです。このクラス
# は Game_Actor クラスと Game_Enemy クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_Battler < Game_BattlerBase
  alias ums_simple_passive_skill_remove_state remove_state
  alias ums_simple_passive_skill_add_buff add_buff
  alias ums_simple_passive_skill_add_debuff add_debuff
  alias ums_simple_passive_skill_item_effect_add_buff item_effect_add_buff
  alias ums_simple_passive_skill_item_effect_add_debuff item_effect_add_debuff
  #--------------------------------------------------------------------------
  # ● ステートの解除
  #--------------------------------------------------------------------------
  def remove_state(state_id)
    if self.actor?
      return if passive_plus_states.include?(state_id)
    end
    ums_simple_passive_skill_remove_state(state_id)
  end
  #--------------------------------------------------------------------------
  # ● 能力強化
  #--------------------------------------------------------------------------
  def add_buff(param_id, turns)
    if self.actor?
      return if buff_resist_set.include?(param_id)
    end
    ums_simple_passive_skill_add_buff(param_id, turns)
  end
  #--------------------------------------------------------------------------
  # ● 能力弱体
  #--------------------------------------------------------------------------
  def add_debuff(param_id, turns)
    if self.actor?
      return if debuff_resist_set.include?(param_id)
    end
    ums_simple_passive_skill_add_debuff(param_id, turns)
  end
  #--------------------------------------------------------------------------
  # ● 使用効果[能力強化]
  #--------------------------------------------------------------------------
  def item_effect_add_buff(user, item, effect)
    if self.actor?
      return if buff_resist_set.include?(effect.data_id)
    end
    ums_simple_passive_skill_item_effect_add_buff(user, item, effect)
  end
  #--------------------------------------------------------------------------
  # ● 使用効果[能力弱体]
  #--------------------------------------------------------------------------
  def item_effect_add_debuff(user, item, effect)
    if self.actor?
      return if debuff_resist_set.include?(effect.data_id)
    end
    ums_simple_passive_skill_item_effect_add_debuff(user, item, effect)
  end
end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
#  アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
# の内部で使用され、Game_Party クラス($game_party)からも参照されます。
#==============================================================================
class Game_Actor < Game_Battler
  alias ums_simple_passive_skill_setup setup
  alias ums_simple_passive_skill_learn_skill learn_skill
  alias ums_simple_passive_skill_forget_skill forget_skill
  #--------------------------------------------------------------------------
  # ● セットアップ
  #--------------------------------------------------------------------------
  def setup(actor_id)
    ums_simple_passive_skill_setup(actor_id)
    check_simple_passive
  end
  #--------------------------------------------------------------------------
  # ● スキルを覚える
  #--------------------------------------------------------------------------
  def learn_skill(skill_id)
    ums_simple_passive_skill_learn_skill(skill_id)
    skill = $data_skills[skill_id]
    unless skill.nil?
      check_simple_passive if skill.simple_passive?
    end
  end
  #--------------------------------------------------------------------------
  # ● スキルを忘れる
  #--------------------------------------------------------------------------
  def forget_skill(skill_id)
    ums_simple_passive_skill_forget_skill(skill_id)
    skill = $data_skills[skill_id]
    unless skill.nil?
      remove_simple_passive(skill) if skill.simple_passive?
    end
  end
  #--------------------------------------------------------------------------
  # ● 簡易パッシブスキルの取得
  #--------------------------------------------------------------------------
  def simple_passive_skills
    return skills.select {|v| v.simple_passive?}
  end
  #--------------------------------------------------------------------------
  # ● 簡易パッシブスキルのチェック
  #--------------------------------------------------------------------------
  def check_simple_passive
    # 変数初期化
    @passive_p_states = []
    @passive_m_states = []
    @passive_i_buff = []
    @passive_i_debuff = []
    # データ取得
    p_states = []
    m_states = []
    i_buff = []
    i_debuff = []
    for skill in simple_passive_skills
      for effect in skill.effects
        p_states << effect.data_id if effect.code == 21
        m_states << effect.data_id if effect.code == 22
        i_buff << effect.data_id if effect.code == 33
        i_debuff << effect.data_id if effect.code == 34
      end
    end
    # データ整理
    del_states = p_states & m_states
    p_states -= del_states
    m_states -= del_states
    del_buff = i_buff & i_debuff
    i_buff -= del_buff
    i_debuff -= del_buff
    # データ反映
    @passive_p_states = p_states
    @passive_m_states = m_states
    @passive_i_buff = i_buff
    @passive_i_debuff = i_debuff
    @result.clear
    for s in p_states
      add_state(s)
    end
    for s in m_states
      remove_state(s)
    end
    for b in i_buff
      erase_buff(b) if buff?(b)
    end
    for d in i_debuff
      erase_buff(d) if debuff?(d)
    end
  end
  #--------------------------------------------------------------------------
  # ● 簡易パッシブスキルを無効化
  #--------------------------------------------------------------------------
  def remove_simple_passive(skill)
    check_simple_passive
    for effect in skill.effects
      if effect.code == 21
        remove_state(effect.data_id)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 簡易パッシブスキルで常時付加するステート
  #--------------------------------------------------------------------------
  def passive_plus_states
    return @passive_p_states
  end
  #--------------------------------------------------------------------------
  # ● 無効化する能力強化の配列を取得
  #--------------------------------------------------------------------------
  def buff_resist_set
    return @passive_i_buff
  end
  #--------------------------------------------------------------------------
  # ● 無効化する能力弱体の配列を取得
  #--------------------------------------------------------------------------
  def debuff_resist_set
    return @passive_i_debuff
  end
end
#==============================================================================
# ■ Window_Command
#------------------------------------------------------------------------------
#  一般的なコマンド選択を行うウィンドウです。
#==============================================================================
class Window_Command < Window_Selectable
  alias ums_simple_passive_skill_add_command add_command
  #--------------------------------------------------------------------------
  # ● コマンドの追加
  #     name    : コマンド名
  #     symbol  : 対応するシンボル
  #     enabled : 有効状態フラグ
  #     ext     : 任意の拡張データ
  #--------------------------------------------------------------------------
  def add_command(name, symbol, enabled = true, ext = nil)
    if self.is_a?(Window_ActorCommand)
      return if name == UMSSSS::UseSimplePassiveName
    end
    ums_simple_passive_skill_add_command(name, symbol, enabled, ext)
  end
end
#==============================================================================
# ■ Window_Selectable
#------------------------------------------------------------------------------
#  カーソルの移動やスクロールの機能を持つウィンドウクラスです。
#==============================================================================
class Window_Selectable < Window_Base
  alias ums_simple_passive_skill_process_ok process_ok
  #--------------------------------------------------------------------------
  # ● 決定ボタンが押されたときの処理
  #--------------------------------------------------------------------------
  def process_ok
    if self.is_a?(Window_SkillList)
      if item.is_a?(RPG::Skill)
        return if item.simple_passive?
      end
    end
    ums_simple_passive_skill_process_ok
  end
end
#==============================================================================
# ■ Window_SkillList
#------------------------------------------------------------------------------
#  スキル画面で、使用できるスキルの一覧を表示するウィンドウです。
#==============================================================================
class Window_SkillList < Window_Selectable
  alias ums_simple_passive_skill_enable? enable?
  #--------------------------------------------------------------------------
  # ● スキルを許可状態で表示するかどうか
  #--------------------------------------------------------------------------
  def enable?(item)
    if item.is_a?(RPG::Skill)
      return true if item.simple_passive?
    end
    return ums_simple_passive_skill_enable?(item)
  end
end


使用方法不難,就是添加一個技能類型叫做"主動技能"
這可以在UseSimplePassiveName = "主動技能" 這邊調整成你想要的字串
然後添加一個狀態,在狀態增加你想要的功能(如最大生命+50%之類的)
在技能那邊新增技能,類型主動技能,使用對象使用者,無法使用,然後附加狀態100%(怕附加不上去的可以加到1000%)
然後讓角色學會就會有效果了
只是這個的能力局限於狀態能夠得到的效果
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
110 小时
注册时间
2011-3-5
帖子
243
3
发表于 2012-6-29 09:44:01 | 只看该作者
可以在职业的特性里加一个【体力上限*120%】,然后在技能页加一个技能【体力上限(被动)】,附加一段说明并把这个技能设置成【不能使用】,玩家看起来就是一个被动技能
RPG Maker...最大的火箭弹制造商
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
4
 楼主| 发表于 2012-6-29 10:12:03 | 只看该作者
恩 我先试下
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
5
 楼主| 发表于 2012-6-29 10:23:38 | 只看该作者
已经可以了 不过 这个 脚本 没法 配合
http://temp.66rpg.com/forum.php? ... D368%26typeid%3D368
这个里的 养成技能类的  我刚刚把基恩那个卸掉 状态还在
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
66 小时
注册时间
2011-9-1
帖子
21
6
发表于 2012-6-29 17:33:40 | 只看该作者
有沒有出錯的狀況
這樣也比較好看哪裡的問題
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
7
 楼主| 发表于 2012-6-29 20:10:36 | 只看该作者
本来说 技能可以养成 被动类的  我把这个状态装备在武器上  武器拿下来了 状态还在   问题好像没什么问题
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
66 小时
注册时间
2011-9-1
帖子
21
8
发表于 2012-6-29 23:25:16 | 只看该作者
不太懂意思,如果是要給主動技能用的狀態讓技能附帶狀態就好了
不太明白為什麼要弄到武器上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
9
发表于 2012-6-30 09:50:59 | 只看该作者
不是太多的话,可以交由公共事件处理。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
10
 楼主| 发表于 2012-6-30 13:26:52 | 只看该作者
我5楼 不是发了个 网址吗  是配合那个 脚本的   是用来 做 技能 养成类的    不管是武器还是装备  我肯定 附带 被动技能当 养成  经验满了 装备卸掉了  技能一样 还在     问题是 我技能还没学成 把装备 卸掉  那个 状态技能还在
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-24 17:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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