Project1

标题: 如何让“聚气”影响物理特技的威力?? [打印本页]

作者: 木许许    时间: 2008-7-22 20:37
标题: 如何让“聚气”影响物理特技的威力??
战斗特殊效果脚本中以下部分是描写角色每回合使用“聚气”的特技之后普通攻击威力有所上升,但是对特技没有影响。

我想修改为:每回合使用“聚气”的特技之后所有物理攻击类特技的威力也一起上升。应该怎么写呢?魔法类特技依然不受影响



  1. #--------------------------------------------------------------------------
  2. # ● 初期化
  3. #--------------------------------------------------------------------------
  4. alias before_powerstock_original_initialize initialize
  5. def initialize
  6. before_powerstock_original_initialize
  7. @powerstock = 0
  8. @powerstock_skill_id = $data_system.elements.index(POWERSTOCK_SKILL_ELEMENT_NAME)
  9. @powerstock_skill_id = 0 if @powerstock_skill_id == nil
  10. @effect_message = nil
  11. end
  12. #--------------------------------------------------------------------------
  13. # ● 通常攻撃の効果適用
  14. # attacker : 攻撃者 (バトラー)
  15. #--------------------------------------------------------------------------
  16. alias before_powerstock_original_attack_effect attack_effect
  17. def attack_effect(attacker)
  18. # 攻撃者が「ちからため」しているか?
  19. if attacker.powerstock > 0
  20. bool_powerstock = true
  21. # 攻撃者の力を一時的に上昇させる
  22. stock_attacker_str = attacker.str
  23. attacker.str += ( stock_attacker_str * POWERSTOCK_BASE_RATE * attacker.powerstock ).to_i
  24. # ヘルプメッセージに「ちからためx?」を出す
  25. @action_message = POWERSTOCK_SKILL_ELEMENT_NAME
  26. @action_message += " x"
  27. @action_message += attacker.powerstock.to_s
  28. # ストックを消す
  29. attacker.powerstock = 0
  30. else
  31. bool_powerstock = false
  32. end
  33. # fukuyamaさん↓のミス発見ありがとうございました
  34. result = before_powerstock_original_attack_effect(attacker)
  35. # 力を上昇させていた場合、元に戻す
  36. if bool_powerstock
  37. attacker.str = stock_attacker_str
  38. end
  39. return result
  40. end
  41. #--------------------------------------------------------------------------
  42. # ● スキルの効果適用
  43. # user : 使用者 (バトラー)
  44. # skill: スキル
  45. #--------------------------------------------------------------------------
  46. alias before_powerstock_original_skill_effect skill_effect
  47. def skill_effect(user, skill)
  48. #「ちからため」スキルかどうかの判定。
  49. if skill.element_set.include?(@powerstock_skill_id)
  50. # 命中率を適用する場合は下のif文のコメントを外してください
  51. #if rand(100) < skill.hit
  52. @powerstock += 1 # 「ちからため」回数を1増やす
  53. # ダメージに"Charge"をセットする
  54. self.damage = "Charge"
  55. # 命中率を適用する場合は下のelse~endのコメントを外してください
  56. #else
  57. # self.damage = "Miss"
  58. #end
  59. # 普通のスキル判定は行わない。
  60. return true
  61. else
  62. return before_powerstock_original_skill_effect(user, skill)
  63. end
  64. end
  65. end
复制代码







战斗特殊效果
http://rpg.blue/web/htm/news184.htm [LINE]1,#dddddd[/LINE]此贴于 2008-7-27 3:28:43 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2008-7-31 0:41:12 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2008-8-4 2:20:34 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2008-8-13 13:38:17 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2008-8-19 21:24:08 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: 木许许    时间: 2008-7-23 21:49
又来顶{/fd}
作者: 木许许    时间: 2008-7-24 16:55
隔日顶~ [LINE]1,#dddddd[/LINE]版主对此帖的评论:『慢慢顶 - -  by havealook』,积分『-0』。这些被扣积分的一半会用于对本帖正确答案的悬赏。 [LINE]1,#dddddd[/LINE]版主对此帖的评论:『隔日顶还不会太过分啦...今天帮你顶上去,以后要自己多注意咯...---by:darkten』,积分『-0』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 木许许    时间: 2008-7-29 19:42
隔了5日顶~
作者: 木许许    时间: 2008-8-1 19:15
隔了3日顶~
作者: 灯笼菜刀王    时间: 2008-8-1 19:55
= =看你这么契尔不舍,给你个主意吧。

一,自己理解这段脚本,将它加到Game_Actor里,也就是说,基本攻击判定包括attacker.powerstock一起计算。这样只要有用到攻击力的地方它都会起作用,而且还可以在状态菜单上看到效果。

二,修改特技公式,当skill.atk_f > 0的时候,公式重新写,代入角色的基础力量。这样应该会受它影响。不过,可能有些后遗症OTZ。
作者: 凌冰    时间: 2008-8-1 23:26
我想说你没有脚本你没有发全
作者: 【輕鬆團】陳    时间: 2008-8-5 21:05
为什么要改脚本?不直接添加状态?
作者: 木许许    时间: 2008-8-7 06:10
5天一大顶
作者: dbshy    时间: 2008-8-10 18:31
skill_effect 中加
if user.powerstock > 0 then
  .........
定义你自己的公式


然后你所说的物理 OR 魔法 特技
module RPG
class Skill
   def name
     name = @name.split(/@/)[0]
     return name != nil ? name : ''
   end
   def panduan
     add_name = @name.split(/@/)[1]
     return add_name != nil ? add_name : ""
   end
end
end

IF SKILL.PANDUAN = .. THEN
.....
[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: 木许许    时间: 2008-8-12 00:00
以下引用dbshy于2008-8-10 10:31:01的发言:

skill_effect 中加
if user.powerstock > 0 then
.........
定义你自己的公式


然后你所说的物理 OR 魔法 特技
module RPG
class Skill
  def name
    name = @name.split(/@/)[0]
    return name != nil ? name : ''
  end
  def panduan
    add_name = @name.split(/@/)[1]
    return add_name != nil ? add_name : ""
  end
end
end

IF SKILL.PANDUAN = .. THEN
.....






哪里的 skill_effect 啊??

add_name = @name.split(/@/)[1] 是干什么用的?
作者: CIS狂人    时间: 2008-8-12 01:28
参考回声脚本
作者: 神族召唤师    时间: 2008-8-15 15:33
怎麽一直顶啊
作者: 木许许    时间: 2008-8-17 19:25
以下引用dbshy于2008-8-10 10:31:01的发言:

skill_effect 中加
if user.powerstock > 0 then
.........
定义你自己的公式


然后你所说的物理 OR 魔法 特技
module RPG
class Skill
  def name
    name = @name.split(/@/)[0]
    return name != nil ? name : ''
  end
  def panduan
    add_name = @name.split(/@/)[1]
    return add_name != nil ? add_name : ""
  end
end
end

IF SKILL.PANDUAN = .. THEN
.....





为什么会有def name?我希望所有物理特技都受聚气的影响啊。。。{/ll}{/ll}{/dk}
作者: 灯笼菜刀王    时间: 2008-8-17 23:38
module RPG ;def name 这个就是让你用来判断物理和特技的,给技能一个分类用。

其实,用SKILL.ATK_F也可以判断物理或魔法技能,不过有些地方不让这样调用,所以还是直接定义比较方便。




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