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

Project1

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

[已经解决] 怎样做到状态固定扣血

[复制链接]

Lv2.观梦者

梦石
0
星屑
786
在线时间
298 小时
注册时间
2016-2-28
帖子
27

开拓者

跳转到指定楼层
1
发表于 2019-8-24 13:21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,萌新来请教

Lv1.梦旅人

梦石
0
星屑
177
在线时间
118 小时
注册时间
2015-4-25
帖子
1
2
发表于 2021-10-13 22:11:13 | 只看该作者
  1. #--------------------------------------------------------------------------
  2.   # ● HP 自动恢复
  3.   #--------------------------------------------------------------------------
  4.   def regenerate_hp
  5.     if state?(3)# 3代表固定扣血的状态编号
  6.     damage= 100   #100代表固定的伤害
  7.   else
  8.    
  9.     damage = -(mhp * hrg).to_i
  10.     end
  11.     perform_map_damage_effect if $game_party.in_battle && damage > 0
  12.     @result.hp_damage = [damage, max_slip_damage].min
  13.     self.hp -= @result.hp_damage
  14.   end
复制代码

评分

参与人数 1星屑 +10 收起 理由
alexncf125 + 10 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
3
发表于 2022-1-22 07:51:08 | 只看该作者
  1. #==============================================================================
  2. # TheoAllen - 状态伤害使用技能公式
  3. # Version : 1.0
  4. # Language : Informal Indonesian
  5. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  6. # Contact :
  7. #------------------------------------------------------------------------------
  8. # *> http://www.rpgmakerid.com
  9. # *> http://www.rpgmakervxace.net
  10. # *> http://theolized.blogspot.com
  11. #==============================================================================
  12. ($imported ||= {})[:Theo_StateSkillDamage] = true
  13. #==============================================================================
  14. # Change Logs:
  15. # -----------------------------------------------------------------------------
  16. # 2013.09.24 - Finished
  17. #==============================================================================
  18. %Q{

  19.   =================
  20.   || 介绍 ||
  21.   -----------------
  22.   想要设置状态伤害不只是数据库设定那样百分比掉血吗?而是通过技能来设定
  23.   状态伤害?想设置状态的伤害公式像攻击技能那样吗?
  24.   该脚本可以设定状态伤害使用指定的技能公式。
  25.   
  26.   ======================
  27.   || 使用方法 ||
  28.   ----------------------
  29.   插入到插件脚本之下,Main之上。
  30.   
  31.   在状态的备注栏里备注 <skill damage: id>
  32.   id为指定技能的伤害的功能
  33.   
  34.   例如:
  35.   <skill damage: 10>
  36.   
  37.   ===================
  38.   使用条款 :
  39.   署名脚本作者, TheoAllen. 你可以自由编辑此脚本,只要你不声明你是脚本的原作者
  40.   如果你想用此脚本于商业游戏,请和我共享收益.别忘了给我一份免费的游戏拷贝.

  41. }
  42. #==============================================================================
  43. # 无设定部分
  44. #==============================================================================
  45. class RPG::State
  46.   
  47.   # Store skill ID for formula damage
  48.   def skill_damage
  49.     if !@skill_damage
  50.       @skill_damage = 0
  51.       if note =~ /<skill[\s_]+damage\s*:\s*(\d+)>/i
  52.         @skill_damage = $1.to_i
  53.       end
  54.     end
  55.     return @skill_damage
  56.   end
  57.   
  58. end

  59. class Game_Battler
  60.   
  61.   alias theo_slipformula_clear_states clear_states
  62.   def clear_states
  63.     theo_slipformula_clear_states
  64.     @state_battler = {}
  65.   end
  66.   
  67.   alias theo_slipformula_eff_add_state_attack item_effect_add_state_attack
  68.   def item_effect_add_state_attack(user, item, effect)
  69.     theo_slipformula_eff_add_state_attack(user, item, effect)
  70.     return unless @result.success
  71.     user.atk_states.each do |state_id|
  72.       if @states.include?(state_id)
  73.         @state_battler[state_id] = user
  74.       end
  75.     end
  76.   end
  77.   
  78.   alias theo_slipformula_eff_add_state_normal item_effect_add_state_normal
  79.   def item_effect_add_state_normal(user, item, effect)
  80.     theo_slipformula_eff_add_state_normal(user, item, effect)
  81.     return unless @result.success
  82.     if @states.include?(effect.data_id)
  83.       @state_battler[effect.data_id] = user
  84.     end
  85.   end
  86.   
  87.   alias theo_slipformula_erase_state erase_state
  88.   def erase_state(state_id)
  89.     theo_slipformula_erase_state(state_id)
  90.     @state_battler.delete(state_id)
  91.   end
  92.   
  93.   alias theo_slipformula_turn_end on_turn_end
  94.   def on_turn_end
  95.     if alive?
  96.       perform_slip_damage_formula
  97.     end
  98.     theo_slipformula_turn_end
  99.   end
  100.   
  101.   def perform_slip_damage_formula
  102.     @states.each do |state_id|
  103.       if $data_states[state_id].skill_damage > 0 && @state_battler[state_id]
  104.         skill = $data_skills[$data_states[state_id].skill_damage]
  105.         item_apply(@state_battler[state_id], skill)
  106.         self.animation_id = skill.animation_id
  107.         SceneManager.scene.log_window.display_action_results(self, skill)
  108.         if $imported["YEA-BattleEngine"] && !YEA::BATTLE::MSG_ADDED_STATES
  109.           SceneManager.scene.perform_collapse_check(self)
  110.         end
  111.         15.times {SceneManager.scene.update_basic}
  112.       end
  113.     end
  114.   end
  115.   
  116. end

  117. class Scene_Battle
  118.   attr_reader :log_window
  119. end
复制代码

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 19:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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