Project1

标题: 求抗性与伤害关系的脚本 [打印本页]

作者: 345912390    时间: 2012-7-31 13:19
标题: 求抗性与伤害关系的脚本
{:2_264:} 最近开始想做游戏 。经过询问和测试 ,发现【属性抗性】越高 ,受到的【属性伤害】也越高。

特求一脚本,要求如下:
1.角色或敌人单项属性抗性的和不得超过950
2.伤害关系为: 伤害值=伤害值*(1000-抗性值)/1000
3.
4.有较为详细的中文说明
作者: feizhaodan    时间: 2012-7-31 13:19
  1. #==============================================================================
  2. # ■ Game_BattlerBase
  3. #------------------------------------------------------------------------------
  4. #  バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
  5. # のクラスは Game_Battler クラスのスーパークラスとして使用されます。
  6. #==============================================================================

  7. class Game_BattlerBase
  8.   #--------------------------------------------------------------------------
  9.   # ● 属性有効度の取得
  10.   #--------------------------------------------------------------------------
  11.   def element_rate(element_id)
  12.     [[features_sum(FEATURE_ELEMENT_RATE, element_id),0.0].max,9.5].min
  13.   end
  14. end
  15. #==============================================================================
  16. # ■ Game_Battler
  17. #------------------------------------------------------------------------------
  18. #  スプライトや行動に関するメソッドを追加したバトラーのクラスです。このクラス
  19. # は Game_Actor クラスと Game_Enemy クラスのスーパークラスとして使用されます。
  20. #==============================================================================

  21. class Game_Battler < Game_BattlerBase
  22.   #--------------------------------------------------------------------------
  23.   # ● ダメージ計算
  24.   #--------------------------------------------------------------------------
  25.   def make_damage_value(user, item)
  26.     value = item.damage.eval(user, self, $game_variables)
  27.     value = value * (( 10 - item_element_rate(user, item)) / 10)
  28.     value *= pdr if item.physical?
  29.     value *= mdr if item.magical?
  30.     value *= rec if item.damage.recover?
  31.     value = apply_critical(value) if @result.critical
  32.     value = apply_variance(value, item.damage.variance)
  33.     value = apply_guard(value)
  34.     @result.make_damage(value.to_i, item)
  35.   end
  36. end
复制代码
脚本放在脚本列表尽可能上方(Game_Battler下方)
然后,数据库内特征栏的所有属性耐性设置改为“增加的属性耐性值”
如角色A原本有0耐性,装备设置有100的防具,则角色A的耐性为100,再装备一个,角色A的耐性为200。
剩余内容同默认(如多属性攻击怎么算等)。
之后我想问问第三项要求是啥= =




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