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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
打印 上一主题 下一主题

速度判断异常==》0杀伤

 关闭 [复制链接]

Lv1.梦旅人

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
帖子
1875
11
发表于 2008-7-27 03:03:17 | 只看该作者
把def attack_effect(attacker)那个函数给我看看
不常在线,有事PM
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

12
发表于 2008-7-27 03:08:43 | 只看该作者
命中和闪避是不能超过100的。
我就因为这个修正了闪避公式
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

13
 楼主| 发表于 2008-7-27 03:12:58 | 只看该作者
以下引用精灵使者于2008-7-26 19:08:43的发言:

命中和闪避是不能超过100的。
我就因为这个修正了闪避公式

把改过的闪避公式给我吧……
[LINE]1,#dddddd[/LINE]
以下引用凌冰于2008-7-26 19:03:17的发言:

把def attack_effect(attacker)那个函数给我看看

你等一下……
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

14
 楼主| 发表于 2008-7-27 03:35:01 | 只看该作者
话说那个函数部分……
  1. def attack_effect(attacker)
  2.     # 清除会心一击标志
  3.     self.critical = false
  4.     # 第一命中判定
  5.     hit_result = (rand(100) < attacker.hit)
  6.     # 命中的情况下
  7.     if hit_result == true
  8.       # 计算基本伤害
  9.       atk = [attacker.atk - self.pdef / 2, 0].max
  10.       self.damage = atk * (20 + attacker.str) / 20
  11.       # 属性修正
  12.       self.damage *= elements_correct(attacker.element_set)
  13.       self.damage /= 100
  14.       # 伤害符号正确的情况下
  15.       if self.damage > 0
  16.         # 会心一击修正
  17.         if rand(100) < 4 * attacker.dex / self.agi
  18.           self.damage *= 2
  19.           self.critical = true
  20.         end
  21.         # 防御修正
  22.         if self.guarding?
  23.           self.damage /= 2
  24.         end
  25.       end
  26.       # 分散
  27.       if self.damage.abs > 0
  28.         amp = [self.damage.abs * 15 / 100, 1].max
  29.         self.damage += rand(amp+1) + rand(amp+1) - amp
  30.       end
  31.       # 第二命中判定
  32.       eva = 8 * self.agi / attacker.dex + self.eva
  33.       hit = self.damage < 0 ? 100 : 100 - eva
  34.       hit = self.cant_evade? ? 100 : hit
  35.       hit_result = (rand(100) < hit)
  36.     end
  37.     # 命中的情况下
  38.     if hit_result == true
  39.       # 状态冲击解除
  40.       remove_states_shock
  41.       # HP 的伤害计算
  42.       self.hp -= self.damage
  43.       # 状态变化
  44.       @state_changed = false
  45.       states_plus(attacker.plus_state_set)
  46.       states_minus(attacker.minus_state_set)
  47.     # Miss 的情况下
  48.     else
  49.       # 伤害设置为 "Miss"
  50.       self.damage = "Miss"
  51.       # 清除会心一击标志
  52.       self.critical = false
  53.     end
  54.     # 过程结束
  55.     return true
  56.   end
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

15
发表于 2008-7-27 03:39:04 | 只看该作者
似乎我没有改这里
我改的是def的命中部分。
搜索一下“命中”
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
16
发表于 2008-7-27 03:55:39 | 只看该作者
觉得默认的伤害不好计算 所以改了……{/gg}
先填上试试吧
不行,再删了……再PIA飞我

#物理伤害=(我攻击力+我力量-敌物理防御)*2
  1. def attack_effect(attacker)
  2.     # 清除会心一击标志
  3.     self.critical = false
  4.     # 第一命中判定
  5.     hit_result = (rand(100) < attacker.hit)
  6.     # 命中的情况下
  7.     if hit_result == true
  8.       # 计算基本伤害
  9.       atk = [attacker.atk , 0].max
  10.       self.damage = (attacker.atk  - self.pdef + attacker.str)*2
  11.       # 属性修正
  12.       self.damage *= elements_correct(attacker.element_set)
  13.       self.damage /= 100
  14.       # 伤害符号正确的情况下
  15.       if self.damage > 0
  16.         # 会心一击修正
  17.         if rand(100) < 4 * attacker.dex / self.agi
  18.           self.damage *= 2
  19.           self.critical = true
  20.         end
  21.         # 防御修正
  22.         if self.guarding?
  23.           self.damage /= 2
  24.         end
  25.       end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

17
 楼主| 发表于 2008-7-27 04:04:25 | 只看该作者
以下引用redant于2008-7-26 19:55:39的发言:

觉得默认的伤害不好计算 所以改了……
先填上试试吧
不行,再删了……再PIA飞我

#物理伤害=(我攻击力+我力量-敌物理防御)*2
def attack_effect(attacker)
    # 清除会心一击标志
    self.critical = false
    # 第一命中判定
    hit_result = (rand(100) < attacker.hit)
    # 命中的情况下
    if hit_result == true
      # 计算基本伤害
      atk = [attacker.atk , 0].max
      self.damage = (attacker.atk  - self.pdef + attacker.str)*2
      # 属性修正
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # 伤害符号正确的情况下
      if self.damage > 0
        # 会心一击修正
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
        # 防御修正
        if self.guarding?
          self.damage /= 2
        end
      end

可以了……
谢谢了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
18
发表于 2008-7-27 04:36:02 | 只看该作者
恩 这个只是把 速度之类的
我觉得很囧 计算伤害 麻烦的东西 改了改{/gg}
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 19:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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