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

Project1

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

[已经过期] 如何设置伤害反弹,还有选择人物

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2015-5-17
帖子
10
跳转到指定楼层
1
发表于 2015-5-24 10:32:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是一个荆棘光环这样的东西,可以反弹伤害,虽然自己不受伤,但不是百分百反弹
或者像LOL荆棘之甲这样,自己受伤害,但也可以反弹的
还有如何选择初期人物,比如10个中选4个这样

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2015-5-24 12:35:00 | 只看该作者
反伤挺麻烦的,粗糙的做可以通过改make_damage_value的方法做出效果,当然具体得按你的要求才能确定如何写。
详细的可以学习图书馆中《伤害公式的妙用》中的知识。

选择角色就是在游戏初期做一个事件,比如在一张地图里摆出10个人物事件,然后让玩家通过操作来选择人物。
也可以通过选项来做,但是不推荐。

点评

这个做法的话,初始行走图最好是个箭头  发表于 2015-5-27 08:01

评分

参与人数 1星屑 +200 收起 理由
taroxd + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2015-5-17
帖子
10
3
 楼主| 发表于 2015-5-24 14:54:35 | 只看该作者
三途亚梦 发表于 2015-5-24 12:35
反伤挺麻烦的,粗糙的做可以通过改make_damage_value的方法做出效果,当然具体得按你的要求才能确定如何写 ...

反伤觉得没指望了。但是如果通过对话事件选择角色应该不会很麻烦吧。

点评

…… 简单的说,你可以给选择角色专门做一张地图,角色行走图改为箭头……就照2楼给你的方法做,超简单……  发表于 2015-5-27 08:03
反伤那个其实挺简单的,就看你愿不愿意把设想说出来了。通过事件选择就是最简单的方法了呀,难不成你还想准备写个脚本?  发表于 2015-5-24 18:17
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

4
发表于 2015-5-24 19:09:37 | 只看该作者
  1. #==============================================================================
  2. # ■ RGSS3 一定割合ダメージ共有特徴 Ver1.01 by 星潟
  3. #------------------------------------------------------------------------------
  4. # ダメージを受けた際、相手にもダメージを与える特徴を作成します。
  5. # HP版とMP版をそれぞれ利用できます。
  6. # なお、ダメージが負の値(回復)の際には効果を発揮しません。
  7. #==============================================================================
  8. # 特徴(アクター/エネミー/ステート/装備品)設定例
  9. #==============================================================================
  10. # <HPDB:50,25>
  11. # 25%の確率で受けたHPダメージの50%分のHPダメージを相手に返す。
  12. #------------------------------------------------------------------------------
  13. # <MPDB:100,50>
  14. # 50%の確率で受けたMPダメージの100%分のMPダメージを相手に返す。
  15. #------------------------------------------------------------------------------
  16. # <HPDBR:75,65>
  17. # 65%の確率で受けたHPダメージの75%分のMPダメージを相手に返す。
  18. #------------------------------------------------------------------------------
  19. # <MPDBR:25,100>
  20. # 100%の確率で受けたMPダメージの25%分のHPダメージを相手に返す。
  21. #------------------------------------------------------------------------------
  22. # <HPDB:a.atk,25>
  23. # 25%の確率で受けたHPダメージの
  24. # 攻撃を受けた側の攻撃力の値%分のHPダメージを相手に返す。
  25. #------------------------------------------------------------------------------
  26. # <MPDB:100,b.def>
  27. # 攻撃した側の防御力%の確率で
  28. # 受けたMPダメージの100%分のMPダメージを相手に返す。
  29. #------------------------------------------------------------------------------
  30. # <HPDBR:a.mat,100-b.mdf>
  31. # 100から攻撃した側の魔法防御を引いた値%の確率で受けたHPダメージの
  32. # 攻撃を受けた側の魔法力の値%分のMPダメージを相手に返す。
  33. #------------------------------------------------------------------------------
  34. # <ダメージ共有無効特徴:100>
  35. # 100%の確率で、相手のダメージ共有効果を無効化します。
  36. #------------------------------------------------------------------------------
  37. # <ダメージ共有無効特徴:a.mat-b.mdf>
  38. # 自分の魔法力から相手の魔法防御を引いた値%の確率で
  39. # 相手のダメージ共有効果を無効化します。
  40. #==============================================================================
  41. # アイテム/スキル設定例
  42. #==============================================================================
  43. # <ダメージ共有無効特徴:50>
  44. # 100%の確率で、相手のダメージ共有効果を無効化します。
  45. #------------------------------------------------------------------------------
  46. # <ダメージ共有無効特徴:a.mat-b.mdf>
  47. # 自分の魔法力から相手の魔法防御を引いた値%の確率で
  48. # 相手のダメージ共有効果を無効化します。
  49. #==============================================================================
  50. # ももまるLabs様のXPスタイルバトルを使用されている方は
  51. # 他サイト対応素材ページから一定割合ダメージ共有特徴XPSも併せて使用してください。
  52. #==============================================================================
  53. # Ver1.01 処理を効率化しました。
  54. #         ダメージ共有を一定確率で無効化する特徴と
  55. #         ダメージ共有を一定確率で無効化するアイテム/スキルを
  56. #         作成できるようにしました。
  57. #         回復効果まで共有していた不具合を修正しました。
  58. #         また、計算式を以て処理を行えるように変更しました。
  59. #==============================================================================
  60. module PAINBOND
  61.   
  62.   #HPダメージをHPダメージで返す場合のキーワードを設定します。
  63.   
  64.   WORD1 = "HPDB"
  65.   
  66.   #MPダメージをMPダメージで返す場合のキーワードを設定します。
  67.   
  68.   WORD2 = "MPDB"
  69.   
  70.   #HPダメージをMPダメージで返す場合のキーワードを設定します。
  71.   
  72.   WORD3 = "HPDBR"
  73.   
  74.   #MPダメージをHPダメージで返す場合のキーワードを設定します。
  75.   
  76.   WORD4 = "MPDBR"
  77.   
  78.   #共有無効スキル設定用のキーワードを設定します。
  79.   
  80.   WORD5 = "ダメージ共有無効"
  81.   
  82.   #共有無効特徴設定用のキーワードを設定します。
  83.   
  84.   WORD6 = "ダメージ共有無効特徴"
  85.   
  86.   #使用者と対象者が同じ場合に共有効果を有効にするかどうかを指定。
  87.   #trueで有効、falseで無効。
  88.   
  89.   SELF_FLAG = false
  90.   
  91. end
  92. module Vocab
  93.   
  94.   #アクターがHPダメージを返された場合のメッセージを設定します。

  95.   ActorHPB = "%s受到了%s的反弹伤害!"
  96.   
  97.   #エネミーがHPダメージを返された場合のメッセージを設定します。
  98.   
  99.   EnemyHPB = "%s受到了%s的反弹伤害!"
  100.   
  101.   #アクターがMPダメージを返された場合のメッセージを設定します。
  102.   
  103.   ActorMPB = "呪いにより%sの%sが %s 減った!"
  104.   
  105.   #エネミーがMPダメージを返された場合のメッセージを設定します。
  106.   
  107.   EnemyMPB = "呪いにより%s%sの%sが %s 減った!"
  108.   
  109. end
  110. class Game_Temp
  111.   attr_accessor :pbd_user
  112.   attr_accessor :pbd_target
  113. end
  114. class Game_ActionResult
  115.   attr_reader :hpb_star
  116.   attr_reader :mpb_star
  117.   #--------------------------------------------------------------------------
  118.   # ダメージ値のクリア
  119.   #--------------------------------------------------------------------------
  120.   alias clear_damage_values_painbond clear_damage_values
  121.   def clear_damage_values
  122.    
  123.     #本来の処理を実行。
  124.    
  125.     clear_damage_values_painbond
  126.    
  127.     #ダメージ共有用変数の初期化。
  128.    
  129.     @hpb_star = 0
  130.     @mpb_star = 0
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ダメージの作成
  134.   #--------------------------------------------------------------------------
  135.   alias make_damage_painbond make_damage
  136.   def make_damage(value, item)
  137.    
  138.     #本来の処理を実行。
  139.    
  140.     make_damage_painbond(value, item)
  141.    
  142.     #使用失敗時は処理を中断する。
  143.    
  144.     return if !@success
  145.    
  146.     #ダメージ共有の値を作成。
  147.    
  148.     make_pb_hpdamage(@hp_damage)
  149.     make_pb_mpdamage(@mp_damage)
  150.    
  151.     #値を整数にする。
  152.    
  153.     @hpb_star = @hpb_star.to_i
  154.     @mpb_star = @mpb_star.to_i
  155.    
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # HP ダメージ共有の計算
  159.   #--------------------------------------------------------------------------
  160.   def make_pb_hpdamage(damage)
  161.    
  162.     #ダメージ量が0以下の時は処理を行わない。
  163.    
  164.     return unless damage > 0
  165.    
  166.     #HPダメージからデータを作成する。
  167.    
  168.     @hpb_star += damage * @battler.hpb_star / 100
  169.     @mpb_star += damage * @battler.hpbr_star / 100
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # MP ダメージ共有の計算
  173.   #--------------------------------------------------------------------------
  174.   def make_pb_mpdamage(damage)
  175.    
  176.     #ダメージ量が0以下の時は処理を行わない。
  177.    
  178.     return unless damage > 0
  179.    
  180.     #MPダメージからデータを作成する。
  181.    
  182.     @mpb_star += damage * @battler.mpb_star / 100
  183.     @hpb_star += damage * @battler.mpbr_star / 100
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # HP ダメージ共有の文章を取得
  187.   #--------------------------------------------------------------------------
  188.   def hpb_text(damage)
  189.    
  190.     #フォーマットを取得し、文章を作成する。
  191.    
  192.     fmt = @battler.actor? ? Vocab::ActorHPB : Vocab::EnemyHPB
  193.     sprintf(fmt, @battler.name, damage)
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # MP ダメージ共有の文章を取得
  197.   #--------------------------------------------------------------------------
  198.   def mpb_text(damage)
  199.    
  200.     #フォーマットを取得し、文章を作成する。
  201.    
  202.     fmt = @battler.actor? ? Vocab::ActorMPB : Vocab::EnemyMPB
  203.     sprintf(fmt, @battler.name, Vocab::mp, damage)
  204.   end
  205. end
  206. class Game_Battler < Game_BattlerBase
  207.   #--------------------------------------------------------------------------
  208.   # ダメージ共有無効発動率を作成
  209.   #--------------------------------------------------------------------------
  210.   def painbond_break(item)
  211.    
  212.     #戦闘中でなければ0を返す。
  213.    
  214.     return 0 unless SceneManager.scene_is?(Scene_Battle)
  215.    
  216.     #使用者と対象をそれぞれ取得。
  217.    
  218.     a = self
  219.    
  220.     b = $game_temp.pbd_target
  221.    
  222.     #アイテム/スキルのダメージ共有無効発動率を取得。
  223.    
  224.     number = eval(item.i_painbond_break)
  225.    
  226.     #各特徴のダメージ共有無効率を加算する。
  227.    
  228.     feature_objects.each {|object| number += eval(object.f_painbond_break)}
  229.    
  230.     #ダメージ共有無効率を返す。
  231.    
  232.     number
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # HPダメージをHPダメージで返す
  236.   #--------------------------------------------------------------------------
  237.   def hpb_star
  238.    
  239.     #戦闘中でなければ0を返す。
  240.    
  241.     return 0 unless SceneManager.scene_is?(Scene_Battle)
  242.    
  243.     #使用者と対象をそれぞれ取得。
  244.    
  245.     a = self
  246.    
  247.     b = $game_temp.pbd_user
  248.    
  249.     #使用者と対象者が同じ場合は処理を行わない場合、それに該当するなら0を返す。
  250.    
  251.     return 0 if a == b && !PAINBOND::SELF_FLAG
  252.    
  253.     #初期値を0とする。
  254.    
  255.     number = 0
  256.    
  257.     #特徴別にデータを取得し、ダメージ共有効果を判定する。
  258.    
  259.     feature_objects.each {|object|
  260.     number += eval(object.hpb_star[0]) if eval(object.hpb_star[1]) > rand(100)}
  261.    
  262.     #値を返す。
  263.    
  264.     return number
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # MPダメージをMPダメージで返す
  268.   #--------------------------------------------------------------------------
  269.   def mpb_star
  270.    
  271.     #戦闘中でなければ0を返す。
  272.    
  273.     return 0 unless SceneManager.scene_is?(Scene_Battle)
  274.    
  275.     #使用者と対象をそれぞれ取得。
  276.    
  277.     a = self
  278.    
  279.     b = $game_temp.pbd_user
  280.    
  281.     #使用者と対象者が同じ場合は処理を行わない場合、それに該当するなら0を返す。
  282.    
  283.     return 0 if a == b && !PAINBOND::SELF_FLAG
  284.    
  285.     #初期値を0とする。
  286.    
  287.     number = 0
  288.    
  289.     #特徴別にデータを取得し、ダメージ共有効果を判定する。
  290.    
  291.     feature_objects.each {|object|
  292.     number += eval(object.mpb_star[0]) if eval(object.mpb_star[1]) > rand(100)}
  293.    
  294.     #値を返す。
  295.    
  296.     return number
  297.   end
  298.   #--------------------------------------------------------------------------
  299.   # HPダメージをMPダメージで返す
  300.   #--------------------------------------------------------------------------
  301.   def hpbr_star
  302.    
  303.     #戦闘中でなければ0を返す。
  304.    
  305.     return 0 unless SceneManager.scene_is?(Scene_Battle)
  306.    
  307.     #使用者と対象をそれぞれ取得。
  308.    
  309.     a = self
  310.    
  311.     b = $game_temp.pbd_user
  312.    
  313.     #使用者と対象者が同じ場合は処理を行わない場合、それに該当するなら0を返す。
  314.    
  315.     return 0 if a == b && !PAINBOND::SELF_FLAG
  316.    
  317.     #初期値を0とする。
  318.    
  319.     number = 0
  320.    
  321.     #特徴別にデータを取得し、ダメージ共有効果を判定する。
  322.    
  323.     feature_objects.each {|object|
  324.     number += eval(object.hpbr_star[0]) if eval(object.hpbr_star[1]) > rand(100)}
  325.    
  326.     #値を返す。
  327.    
  328.     return number
  329.   end
  330.   #--------------------------------------------------------------------------
  331.   # MPダメージをHPダメージで返す
  332.   #--------------------------------------------------------------------------
  333.   def mpbr_star
  334.    
  335.     #戦闘中でなければ0を返す。
  336.    
  337.     return 0 unless SceneManager.scene_is?(Scene_Battle)
  338.    
  339.     #使用者と対象をそれぞれ取得。
  340.    
  341.     a = self
  342.    
  343.     b = $game_temp.pbd_user
  344.    
  345.     #使用者と対象者が同じ場合は処理を行わない場合、それに該当するなら0を返す。
  346.    
  347.     return 0 if a == b && !PAINBOND::SELF_FLAG
  348.    
  349.     #初期値を0とする。
  350.    
  351.     number = 0
  352.    
  353.     #特徴別にデータを取得し、ダメージ共有効果を判定する。
  354.    
  355.     feature_objects.each {|object|
  356.     number += eval(object.mpbr_star[0]) if eval(object.mpbr_star[1]) > rand(100)}
  357.    
  358.     #値を返す。
  359.    
  360.     return number
  361.   end
  362. end
  363. class Scene_Battle < Scene_Base
  364.   #--------------------------------------------------------------------------
  365.   # スキル/アイテムの効果を適用
  366.   #--------------------------------------------------------------------------
  367.   alias apply_item_effects_painbond apply_item_effects
  368.   def apply_item_effects(target, item)
  369.    
  370.     $game_temp.pbd_user = @subject
  371.    
  372.     $game_temp.pbd_target = target
  373.    
  374.     a = @subject
  375.    
  376.     b = target
  377.    
  378.     #本来の処理を実行。
  379.    
  380.     apply_item_effects_painbond(target, item)
  381.    
  382.     #リフレッシュする。
  383.    
  384.     refresh_status
  385.    
  386.     #行動主体が存在しないか
  387.     #行動主体かアイテムのダメージ共有効果無効判定に成功した場合は飛ばす。
  388.    
  389.     if !@subject or @subject.painbond_break(item) > rand(100)
  390.       
  391.       $game_temp.pbd_user = nil
  392.       $game_temp.pbd_target = nil
  393.       return
  394.       
  395.     end
  396.    
  397.     #HPダメージ共有効果が有効かつ、HPが0より大きいなら実行する。
  398.    
  399.     if target.result.hpb_star > 0 && @subject.hp > 0
  400.       @subject.hp -= target.result.hpb_star
  401.       refresh_status
  402.       @log_window.display_hpb(@subject, item, target.result.hpb_star)
  403.       @log_window.display_added_states(@subject) if @subject.dead?
  404.     end
  405.    
  406.     #MPダメージ共有効果が有効かつ、MPが0より大きいなら実行する。
  407.    
  408.     if target.result.mpb_star > 0 && @subject.mp > 0
  409.       @subject.mp -= target.result.mpb_star
  410.       refresh_status
  411.       @log_window.display_mpb(@subject, item, target.result.mpb_star)
  412.     end
  413.    
  414.     $game_temp.pbd_user = nil
  415.     $game_temp.pbd_target = nil
  416.    
  417.   end
  418. end
  419. class Window_BattleLog < Window_Selectable
  420.   #--------------------------------------------------------------------------
  421.   # HP ダメージ共有表示
  422.   #--------------------------------------------------------------------------
  423.   def display_hpb(target, item, hpb_star)
  424.    
  425.     #ダメージエフェクト実行。
  426.    
  427.     target.perform_damage_effect
  428.    
  429.     #メッセージの表示。
  430.    
  431.     add_text(target.result.hpb_text(hpb_star))
  432.    
  433.     #ウェイト
  434.    
  435.     wait
  436.   end
  437.   #--------------------------------------------------------------------------
  438.   # MP ダメージ共有表示
  439.   #--------------------------------------------------------------------------
  440.   def display_mpb(target, item, mpb_star)
  441.    
  442.     #メッセージの表示。
  443.    
  444.     add_text(target.result.mpb_text(mpb_star))
  445.    
  446.     #ウェイト
  447.    
  448.     wait
  449.   end
  450. end
  451. class RPG::BaseItem
  452.   #--------------------------------------------------------------------------
  453.   # HPダメージをHPダメージで返す
  454.   #--------------------------------------------------------------------------
  455.   def hpb_star
  456.    
  457.     #キャッシュが存在する場合はキャッシュを返す。
  458.    
  459.     return @hpb_star if @hpb_star != nil
  460.    
  461.     #メモ欄からデータを取得。
  462.    
  463.     memo = self.note.scan(/<#{PAINBOND::WORD1}[::](\S+),(\S+)>/).flatten
  464.     @hpb_star = memo != nil && !memo.empty? ? memo : ["0","0"]
  465.    
  466.     #データを返す。
  467.    
  468.     @hpb_star
  469.   end
  470.   #--------------------------------------------------------------------------
  471.   # MPダメージをMPダメージで返す
  472.   #--------------------------------------------------------------------------
  473.   def mpb_star
  474.    
  475.     #キャッシュが存在する場合はキャッシュを返す。
  476.    
  477.     return @mpb_star if @mpb_star != nil
  478.    
  479.     #メモ欄からデータを取得。
  480.    
  481.     memo = self.note.scan(/<#{PAINBOND::WORD2}[::](\S+),(\S+)>/).flatten
  482.     @mpb_star = memo != nil && !memo.empty? ? memo : ["0","0"]
  483.    
  484.     #データを返す。
  485.    
  486.     @mpb_star
  487.   end
  488.   #--------------------------------------------------------------------------
  489.   # HPダメージをMPダメージで返す
  490.   #--------------------------------------------------------------------------
  491.   def hpbr_star
  492.    
  493.     #キャッシュが存在する場合はキャッシュを返す。
  494.    
  495.     return @hpbr_star if @hpbr_star != nil
  496.    
  497.     #メモ欄からデータを取得。
  498.    
  499.     memo = self.note.scan(/<#{PAINBOND::WORD3}[::](\S+),(\S+)>/).flatten
  500.     @hpbr_star = memo != nil && !memo.empty? ? memo : ["0","0"]
  501.    
  502.     #データを返す。
  503.    
  504.     @hpbr_star
  505.   end
  506.   #--------------------------------------------------------------------------
  507.   # MPダメージをHPダメージで返す
  508.   #--------------------------------------------------------------------------
  509.   def mpbr_star
  510.    
  511.     #キャッシュが存在する場合はキャッシュを返す。
  512.    
  513.     return @mpbr_star if @mpbr_star != nil
  514.    
  515.     #メモ欄からデータを取得。
  516.    
  517.     memo = self.note.scan(/<#{PAINBOND::WORD4}[::](\S+),(\S+)>/).flatten
  518.     @mpbr_star = memo != nil && !memo.empty? ? memo : ["0","0"]
  519.    
  520.     #データを返す。
  521.    
  522.     @mpbr_star
  523.   end
  524.   #--------------------------------------------------------------------------
  525.   # 特徴のダメージ共有無効確率
  526.   #--------------------------------------------------------------------------
  527.   def f_painbond_break
  528.    
  529.     #キャッシュが存在する場合はキャッシュを返す。
  530.    
  531.     return @f_painbond_break if @f_painbond_break != nil
  532.    
  533.     #メモ欄からデータを取得。
  534.    
  535.     memo = self.note.scan(/<#{PAINBOND::WORD6}[::](\S+)>/).flatten
  536.     @f_painbond_break = memo != nil && !memo.empty? ? memo[0] : "0"
  537.    
  538.     #データを返す。
  539.    
  540.     @f_painbond_break
  541.   end
  542. end
  543. class RPG::UsableItem < RPG::BaseItem
  544.   #--------------------------------------------------------------------------
  545.   # アイテム/スキルのダメージ共有無効確率
  546.   #--------------------------------------------------------------------------
  547.   def i_painbond_break
  548.    
  549.     #キャッシュが存在する場合はキャッシュを返す。
  550.    
  551.     return @i_painbond_break if @i_painbond_break != nil
  552.    
  553.     #メモ欄からデータを取得。
  554.    
  555.     memo = self.note.scan(/<#{PAINBOND::WORD5}[::](\S+)>/).flatten
  556.     @i_painbond_break = memo != nil && !memo.empty? ? memo[0] : "0"
  557.    
  558.     #データを返す。
  559.    
  560.     @i_painbond_break
  561.   end
  562. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2015-5-17
帖子
10
5
 楼主| 发表于 2015-5-26 19:07:17 | 只看该作者
三途亚梦 发表于 2015-5-24 12:35
反伤挺麻烦的,粗糙的做可以通过改make_damage_value的方法做出效果,当然具体得按你的要求才能确定如何写 ...

就是给自己添加一个反上的BUFF,自己受到攻击会减血,但是怪物也跟着减血
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9275
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2015-5-27 04:41:08 | 只看该作者
在game_battler的
  1.   #--------------------------------------------------------------------------
  2.   # ● 处理伤害
  3.   #    调用前需要设置好
  4.   #    @result.hp_damage   @result.mp_damage
  5.   #    @result.hp_drain    @result.mp_drain
  6.   #--------------------------------------------------------------------------
  7.   def execute_damage(user)
  8.     on_damage(@result.hp_damage) if @result.hp_damage > 0
  9.     self.hp -= @result.hp_damage
  10.     self.mp -= @result.mp_damage
  11.     user.hp += @result.hp_drain
  12.     user.mp += @result.mp_drain
  13.   end
复制代码
  1. self.hp -= @result.hp_damage
复制代码
前面加判定或直接修改呗···
可以改成
  1. if self.state(x)?#被击者有某个状态时
  2. [email protected]_damage#攻击者受到全额反弹,被击者不受伤害
  3. else
  4. [email protected]_damage
  5. end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 21:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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