Project1

标题: 如何设置限定对某人/职业才能使用的物品/技能? [打印本页]

作者: 3106345123    时间: 2014-3-10 20:31
标题: 如何设置限定对某人/职业才能使用的物品/技能?
本帖最后由 3106345123 于 2014-3-12 18:32 编辑

如何设置限定对某人/职业才能使用的物品/技能?(战斗时与平时都要
举几个例子:
    治疗,净化,心肺复苏,药水 只可对人有效;
    修车,装甲包 只可对车有效。

只搜索到这个:http://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=276977&pid=2086448
作者: 断电    时间: 2014-3-10 20:37
搜索“状态法”
作者: tseyik    时间: 2014-3-10 21:54
装備制限(RPGツクールVX Ace)
http://tycoon511.m2.coreserver.jp/rgss/material/rgss3/019.html
作者: 3106345123    时间: 2014-3-12 18:31
好吧看来要举几个例子:
          治疗,净化,心肺复苏,药水 只可对人有效;
          修车,装甲包 只可对车有效。
作者: Sion    时间: 2014-3-27 18:36
你是怎么定义人跟车的?
作者: Sion    时间: 2014-3-27 21:03
本帖最后由 Sion 于 2014-3-29 17:55 编辑


作者: Sion    时间: 2014-3-29 18:13
本帖最后由 Sion 于 2014-3-29 18:30 编辑

RUBY 代码复制
  1. # <ForClass2> 限定只有2号职业能用
  2. # <ForActor1> 限定只有1号角色能用
  3. # 可以限定多个职业与角色,但是限定了职业就不要限定角色了,这里是只能判断其中一个。
  4.  
  5. class RPG::UsableItem
  6.   def can_this_actor_use?(actor)
  7.     return @note.include?("<ForActor#{actor.id}>") if @note.include?("<ForActor")
  8.     return @note.include?("<ForClass#{actor.class_id}>") if\
  9.       @note.include?("<ForClass")
  10.     return true
  11.   end
  12. end
  13.  
  14. class Game_Battler
  15.   def item_test(user, item)
  16.     return false if item.for_dead_friend? != dead?
  17.     return true if $game_party.in_battle
  18.     return true if item.for_opponent?
  19.     return true if item.damage.recover? && item.damage.to_hp? && hp < mhp
  20.     return true if item.damage.recover? && item.damage.to_mp? && mp < mmp
  21.     return true if item_has_any_valid_effects?(user, item) &&
  22.       item.can_this_actor_use?(self)
  23.     return false
  24.   end
  25. end
  26.  
  27.  
  28. class Window_BattleActor
  29.   def item=(item)
  30.     return if @item== item
  31.     @item= item
  32.     refresh
  33.   end
  34.   def current_item_enabled?(i=index)
  35.     !@item || @item.can_this_actor_use?($game_party.battle_members[i])
  36.   end
  37.   #
  38.   alias_method :s20140329_draw_item, :draw_item
  39.   def draw_item(index)
  40.     @tmpindex = index
  41.     s20140329_draw_item(index)
  42.     @tmpindex = nil
  43.   end
  44.   def change_color(*args)
  45.     super
  46.     contents.font.color.alpha = translucent_alpha unless
  47.       current_item_enabled?(@tmpindex)
  48.   end
  49. end
  50.  
  51. class Window_BattleItem
  52.   def process_ok
  53.     super
  54.     item_ = item
  55.     SceneManager.scene.instance_eval { @actor_window.item = item_ }
  56.   end
  57. end
  58. class Window_BattleSkill
  59.   def process_ok
  60.     super
  61.     item_ = item
  62.     SceneManager.scene.instance_eval { @actor_window.item = item_ }
  63.   end
  64. end

作者: 紫苍焰    时间: 2014-3-30 13:55
3106345123 发表于 2014-3-12 18:31
好吧看来要举几个例子:
          治疗,净化,心肺复苏,药水 只可对人有效;
          修车,装甲包 只可 ...

……
学一学年代记里的方法吧,修车技能拿来修人是伤害……
作者: 紫苍焰    时间: 2014-3-30 14:34
本帖最后由 紫苍焰 于 2014-3-30 14:37 编辑

……
好吧,参考某帖子,可以在技能公式里加个条件判断,并且给特定的种族附加不同的常驻状态……
表示图书馆里有相关帖子……
物品的话我在实验……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1