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

Project1

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

[已经解决] 每个技能都有不同的计算伤害公式怎么设定

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
1
发表于 2013-4-4 11:19:04 | 显示全部楼层
本帖最后由 joe5491 于 2013-4-4 19:24 编辑

我用分隔線隔開了?
話說我是照正常的排法.....應該是擠在一團看不清楚....
p.s. 避免傷害為負已經寫進去了

  1.       if skill.id == 5 #如果五號技能的話
  2.         self.damage = skill.power * user.atk * skill.atk_f #傷害=技能威力*攻擊力*攻擊力F        
  3.         if self.damage < 0# 避免傷害為負
  4.           self.damage = 0
  5.         end

  6. #===========================================================

  7.       elsif skill.id == 7 #如果七號技能的話
  8.         self.damage = skill.power * 500 #傷害=技能威力*500
  9.         if self.damage < 0          # 避免傷害為負
  10.           self.damage = 0
  11.         end

  12. #===========================================================

  13.       elsif skill.id == 9 #如果九號技能的話
  14.         self.damage = skill.power  #傷害=技能威力
  15.         if skill.variance > 0 and self.damage.abs > 0                     # 傷害分散
  16.           amp = [self.damage.abs * skill.variance / 100, 1].max   # 傷害分散
  17.           self.damage += rand(amp+1) + rand(amp+1) - amp   # 傷害分散
  18.         end                                                                                # 傷害分散
  19.         if self.damage < 0   # 避免傷害為負
  20.           self.damage = 0
  21.         end

  22. #===========================================================

  23.       else   #不是上面有寫到的技能的話,用原本內建的公式
  24.         # 計算威力
  25.         power = skill.power + user.atk * skill.atk_f / 100
  26.         if power > 0
  27.           power -= self.pdef * skill.pdef_f / 200
  28.           power -= self.mdef * skill.mdef_f / 200
  29.           power = [power, 0].max
  30.         end
  31.         # 計算倍率
  32.         rate = 20
  33.         rate += (user.str * skill.str_f / 100)
  34.         rate += (user.dex * skill.dex_f / 100)
  35.         rate += (user.agi * skill.agi_f / 100)
  36.         rate += (user.int * skill.int_f / 100)
  37.         # 計算基本傷害
  38.         self.damage = power * rate / 20
  39.         # 屬性修正
  40.         self.damage *= elements_correct(skill.element_set)
  41.         self.damage /= 100
  42.         # 傷害符號正確的情況下
  43.         if self.damage > 0
  44.           # 防禦修正
  45.           if self.guarding?
  46.             self.damage /= 2
  47.           end
  48.         end
  49.         # 分散
  50.         if skill.variance > 0 and self.damage.abs > 0
  51.           amp = [self.damage.abs * skill.variance / 100, 1].max
  52.           self.damage += rand(amp+1) + rand(amp+1) - amp
  53.         end

  54. #===========================================================

  55.       end
复制代码
這是縮排版:


  1. if skill.id == 5 #如果五號技能的話
  2.   self.damage = skill.power * user.atk * skill.atk_f #傷害=技能威力*攻擊力*攻擊力F        
  3.   if self.damage < 0# 避免傷害為負
  4.     self.damage = 0
  5.   end

  6. #===========================================================

  7. elsif skill.id == 7 #如果七號技能的話
  8.   self.damage = skill.power * 500 #傷害=技能威力*500
  9.   if self.damage < 0          # 避免傷害為負
  10.     self.damage = 0
  11.   end

  12. #===========================================================

  13. elsif skill.id == 9 #如果九號技能的話
  14.   self.damage = skill.power  #傷害=技能威力
  15.   if skill.variance > 0 and self.damage.abs > 0                     # 傷害分散
  16.     amp = [self.damage.abs * skill.variance / 100, 1].max   # 傷害分散
  17.     self.damage += rand(amp+1) + rand(amp+1) - amp   # 傷害分散
  18.   end                                                                                # 傷害分散
  19.   if self.damage < 0   # 避免傷害為負
  20.     self.damage = 0
  21.   end

  22. #===========================================================

  23. else   #不是上面有寫到的技能的話,用原本內建的公式
  24.   # 計算威力
  25.   power = skill.power + user.atk * skill.atk_f / 100
  26.   if power > 0
  27.     power -= self.pdef * skill.pdef_f / 200
  28.     power -= self.mdef * skill.mdef_f / 200
  29.     power = [power, 0].max
  30.   end
  31.   # 計算倍率
  32.   rate = 20
  33.   rate += (user.str * skill.str_f / 100)
  34.   rate += (user.dex * skill.dex_f / 100)
  35.   rate += (user.agi * skill.agi_f / 100)
  36.   rate += (user.int * skill.int_f / 100)
  37.   # 計算基本傷害
  38.   self.damage = power * rate / 20
  39.   # 屬性修正
  40.   self.damage *= elements_correct(skill.element_set)
  41.   self.damage /= 100
  42.   # 傷害符號正確的情況下
  43.   if self.damage > 0
  44.     # 防禦修正
  45.     if self.guarding?
  46.       self.damage /= 2
  47.     end
  48.   end
  49.   # 分散
  50.   if skill.variance > 0 and self.damage.abs > 0
  51.     amp = [self.damage.abs * skill.variance / 100, 1].max
  52.     self.damage += rand(amp+1) + rand(amp+1) - amp
  53.   end

  54. #===========================================================

  55. end
复制代码
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
2
发表于 2013-4-4 12:19:57 | 显示全部楼层
本帖最后由 joe5491 于 2013-4-4 18:47 编辑

在Game_Battler 3第103行附近,發現def skill_effect(user, skill)
然後往下發現
  1.       # 計算威力
  2.       power = skill.power + user.atk * skill.atk_f / 100
  3.       if power > 0
  4.         power -= self.pdef * skill.pdef_f / 200
  5.         power -= self.mdef * skill.mdef_f / 200
  6.         power = [power, 0].max
  7.       end
  8.       # 計算倍率
  9.       rate = 20
  10.       rate += (user.str * skill.str_f / 100)
  11.       rate += (user.dex * skill.dex_f / 100)
  12.       rate += (user.agi * skill.agi_f / 100)
  13.       rate += (user.int * skill.int_f / 100)
  14.       # 計算基本傷害
  15.       self.damage = power * rate / 20
  16.       # 屬性修正
  17.       self.damage *= elements_correct(skill.element_set)
  18.       self.damage /= 100
  19.       # 傷害符號正確的情況下
  20.       if self.damage > 0
  21.         # 防禦修正
  22.         if self.guarding?
  23.           self.damage /= 2
  24.         end
  25.       end
  26.       # 分散
  27.       if skill.variance > 0 and self.damage.abs > 0
  28.         amp = [self.damage.abs * skill.variance / 100, 1].max
  29.         self.damage += rand(amp+1) + rand(amp+1) - amp
  30.       end
复制代码
改成
  1.         if skill.id == 5 #如果五號技能的話
  2.         self.damage = skill.power * user.atk * skill.atk_f #傷害=技能威力*攻擊力*攻擊力F
  3.         
  4.       elsif skill.id == 7 #如果七號技能的話
  5.         self.damage = skill.power * 500 #傷害=技能威力*500
  6.         
  7.       elsif skill.id == 9 #如果九號技能的話
  8.         self.damage = skill.power  #傷害=技能威力
  9.         if skill.variance > 0 and self.damage.abs > 0
  10.           amp = [self.damage.abs * skill.variance / 100, 1].max
  11.           self.damage += rand(amp+1) + rand(amp+1) - amp   # 傷害分散
  12.         end
  13.         
  14.       else   #不是上面有寫到的技能的話,用原本內建的公式
  15.         # 計算威力
  16.         power = skill.power + user.atk * skill.atk_f / 100
  17.         if power > 0
  18.           power -= self.pdef * skill.pdef_f / 200
  19.           power -= self.mdef * skill.mdef_f / 200
  20.           power = [power, 0].max
  21.         end
  22.         # 計算倍率
  23.         rate = 20
  24.         rate += (user.str * skill.str_f / 100)
  25.         rate += (user.dex * skill.dex_f / 100)
  26.         rate += (user.agi * skill.agi_f / 100)
  27.         rate += (user.int * skill.int_f / 100)
  28.         # 計算基本傷害
  29.         self.damage = power * rate / 20
  30.         # 屬性修正
  31.         self.damage *= elements_correct(skill.element_set)
  32.         self.damage /= 100
  33.         # 傷害符號正確的情況下
  34.         if self.damage > 0
  35.           # 防禦修正
  36.           if self.guarding?
  37.             self.damage /= 2
  38.           end
  39.         end
  40.         # 分散
  41.         if skill.variance > 0 and self.damage.abs > 0
  42.           amp = [self.damage.abs * skill.variance / 100, 1].max
  43.           self.damage += rand(amp+1) + rand(amp+1) - amp
  44.         end
  45.       end
  46.       
复制代码
對了!裡面的傷害公式是亂寫的....別在意...直接換成你自己的吧
p.s.   self.damage 就是傷害值(就是會被扣的血量,如果是負的話,貌似會補血?)

点评

仔细看了一下,MISS是我填错了技能ID...,多谢热心的帮助  发表于 2013-4-5 22:04
能不能帮忙整理下你写的脚本格式,有点乱  发表于 2013-4-4 18:54
對齊了  发表于 2013-4-4 18:48
能对齐下吗,格式很乱  发表于 2013-4-4 13:01
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-30 16:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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