Project1

标题: 晕~~...聚气第四问了... [打印本页]

作者: 木许许    时间: 2008-7-21 19:12
标题: 晕~~...聚气第四问了...
以下脚本是战斗特殊效果中描写角色每回合使用“聚气”的特技之后威力有所上升,我想修改为:当聚气的角色中途被打死,那么之前的所有聚气都无效,复活之后还是从头开始。

之前在Sprite_Battler 的 update 中添加 @battler.powerstock = 0,似乎可以了,但是我只希望聚气的角色中途被打死后之前的所有聚气都无效,如果别的角色先被打死了,聚气角色之前的聚气次数也变得无效了,如何让聚气角色不受其他角色死亡的影响?


  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]版务信息:本贴由楼主自主结贴~ [LINE]1,#dddddd[/LINE]此贴于 2008-7-23 23:52:46 被版主darkten提醒,请楼主看到后对本贴做出回应。
作者: havealook    时间: 2008-7-21 19:16
版务信息:本贴由楼主自主结贴~


?????????没人回答啊
作者: 木许许    时间: 2008-7-21 19:19
什么意思??{/fd} [LINE]1,#dddddd[/LINE]版主对此帖的评论:『就是你没认可答案,为什么你顶楼的帖子会显示"版务信息:本贴由楼主自主结贴~ "?我只是感到有点奇怪』,积分『-0』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 灯笼菜刀王    时间: 2008-7-21 19:20
话说楼主的问题还没解呢- -~~

是不是竹子们在实验直接进行积分处理~~~~

回楼主:
在Sprite_Battler 中是怎么设置的,也帖出来看看。
作者: 木许许    时间: 2008-7-21 19:22
写成下面这样,无论队伍中死了谁,聚气都归0了,但我只希望聚气角色死了后次数归0:

if @battler.damage == nil and @battler.dead?
       if @battler.is_a?(Game_Enemy)
         $game_system.se_play($data_system.enemy_collapse_se)
       else
         @battler.powerstock = 0
         $game_system.se_play($data_system.actor_collapse_se)
       end
       collapse
       @battler_visible = false
end
作者: 、「尕訞孑」    时间: 2008-7-21 19:26
提示: 作者被禁止或删除 内容自动屏蔽




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