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

Project1

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

有关计算伤害的一个问题啊~~~

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-29
帖子
5
跳转到指定楼层
1
发表于 2009-5-31 01:58:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

剑圣

梦石
0
星屑
50
在线时间
122 小时
注册时间
2008-8-31
帖子
778
2
发表于 2009-5-31 07:04:45 | 只看该作者
最大伤害和实际伤害是什么关系?= =b
51行改成
self.damage = [atk * (attacker.str/100) , attacker.atk].min
这样就是默认的伤害和攻击方攻击力的最小值(因为角色攻击力都是武器提供的)

实际伤害=武器攻击*(攻击方力量%-防御方敏捷%+1)
self.damage = attacker.atk * (attacker.str/100 - self.agi/100 +1)
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~

PC/IOS/Android共享的RM RPG:未名大学
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

3
发表于 2009-5-31 07:19:58 | 只看该作者
以下引用Tabris_Air于2009-5-30 23:04:45的发言:
最大伤害和实际伤害是什么关系?= =b

就是min函数
[a,n].min 这个返回的是一个a和n中较小的那一个
也就是限制了最大值的感觉

if attacker.is_a?(Game_Actor)
atk = [attacker.atk - self.pdef / 2, 0].max
atk2 = $data_weapons[attacker.weapon_id].atk
self.damage = [atk * (attacker.str/100),atk2].min
else
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (attacker.str/100)
end
else上面是角色对敌人
else下面是敌人对角色
为什么要分开?   因为敌人没有武器











你知道得太多了

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-29
帖子
5
4
 楼主| 发表于 2009-5-31 20:17:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

5
发表于 2009-5-31 21:21:10 | 只看该作者
是这样的
脚本编辑器里
Game_Battle Game_Actor
里面的那些  [xxx,999].min 就是对能力的限制
所谓的能力属性突破就是改这些东西











你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-13 19:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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