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

Project1

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

[已经过期] 如何让最大HP=人物HP+防御力

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
155
在线时间
61 小时
注册时间
2011-3-9
帖子
92
跳转到指定楼层
1
发表于 2011-6-6 16:36:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问:如何让最大HP=人物HP+防御力
还有请问下如何给每名角色都设定基本的回避命中以及会心一击率呢?
我的梦幻让我用双手让他飞翔。

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
2
发表于 2011-6-6 16:53:47 | 只看该作者
我凭C++写的,肯定错,我也不敢运行,权当试试,这是我写的第一个东西...
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取闪躲率
  3.   #--------------------------------------------------------------------------
  4.   def eva
  5. if@actor_id[]
  6.     n=10
  7. elsif @actor_id[]
  8. n=15
  9. elsif
  10.     n = 5
  11.     for item in armors.compact do n += item.eva end
  12.     return n
  13.   end
复制代码

点评

等真正的rubyer过来解答 不怕作反例...  发表于 2011-6-6 16:54
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
61 小时
注册时间
2011-3-9
帖子
92
3
 楼主| 发表于 2011-6-6 16:59:06 | 只看该作者
那我还刚试的啊……
我的梦幻让我用双手让他飞翔。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
61 小时
注册时间
2011-3-9
帖子
92
4
 楼主| 发表于 2011-6-6 21:54:54 | 只看该作者
急,请求告人指点
我的梦幻让我用双手让他飞翔。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
95 小时
注册时间
2008-2-18
帖子
20
5
发表于 2011-6-7 09:59:05 | 只看该作者
①最大HP=人物HP+防御力
Game_Battler第140行
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取 最大体力值
  3.   #--------------------------------------------------------------------------
  4.   def maxhp
  5.     return [[base_maxhp + @maxhp_plus, 1].max, maxhp_limit].min + def
  6.   end
复制代码
如果不想让敌人也有这个修改,就把上面这段复制,放到Game_Actor里就行了

②基本回避率和会心一击率
在Game_Actor 273行
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取闪躲率
  3.   #--------------------------------------------------------------------------
  4.   def eva
  5.     #以下为修改的部分
  6.     case id #判断角色ID
  7.     when 1 then #1号角色的基础回避率
  8.       n = 10
  9.     when 2 then #2号角色的基础回避率
  10.       n = 20
  11.     when 5 then #5号角色的基础回避率
  12.       n = 30
  13.     else
  14.       n = 5 #以上单独设定角色之外,其他角色的基础回避率
  15.     end
  16.     #以上为修改的部分
  17.     for item in armors.compact do n += item.eva end
  18.     return n
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 获取会心一击率
  22.   #--------------------------------------------------------------------------
  23.   def cri
  24.     #以下为修改的部分
  25.     case id #判断角色ID
  26.     when 1 then #1号角色的基础会心率
  27.       n = 10
  28.     when 2 then #2号角色的基础会心率
  29.       n = 20
  30.     when 5 then #5号角色的基础会心率
  31.       n = 30
  32.     else
  33.       n = 4 #以上单独设定角色之外,其他角色的基础会心率
  34.     end
  35.     #以上为修改的部分
  36.     n += 4 if actor.critical_bonus
  37.     for weapon in weapons.compact
  38.       n += 4 if weapon.critical_bonus
  39.     end
  40.     return n
  41.   end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

6
发表于 2011-6-7 10:49:57 | 只看该作者
我想说,LZ,如果你说人物的HP是现存HP,那么这个就是循环引用,一定出现诡异的错误- -|||

最大HP=人物HP+防御力

也就是说只有防御力是固定数

实际设定的时候- -你能设置的HP是最大HP
以初始100HP 10防御举例
进入游戏主角的HP 100/110
然后主角受到攻击 HP-50
50/60
主角+血,1000HP的高级回复药,想必你不会设置为超过最大HP的加血,也就是说他只能加10HP,但是HP+10那么最大HP也能+10,结果= =|||就变成了
1050/1060
结果主角只靠吃药就能把血加到9989/9999(如果限定了上限的话= =|||)
好吧,你说你设定一个限制,加血的先锁定一下最大HP然后只允许加差额即防御值的数,于是变成了
60/70
这样你说,恩,可以了吧。
但是,问题又来了。加血你锁定了最大HP哈,那么……主角被干掉了
0/10
主角加血
10/20
主角再加血
20/30
主角再加血
30/40
= =|||
其他不可预知错误会有什么就不知道了。
也就是说这个游戏最重要的就是防御属性,PS,HP永远加不满

点评

UU姐不会出现这种问题的- - 只要把maxhp改一下就OK了 5楼正解  发表于 2011-6-7 12:04
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
61 小时
注册时间
2011-3-9
帖子
92
7
 楼主| 发表于 2011-6-7 21:55:54 | 只看该作者
风雪优游 发表于 2011-6-7 10:49
我想说,LZ,如果你说人物的HP是现存HP,那么这个就是循环引用,一定出现诡异的错误- -|||

最大HP=人物HP+ ...

只是纯粹的把HP数字变为HP+防御力,为什么会出现这么多问题。
我想定义为HP就是HP+防御力

假设定义真实HP=基本HP+防御力
当回复药回复的也是真实HP

这样不就可以了吗?
我的梦幻让我用双手让他飞翔。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
61 小时
注册时间
2011-3-9
帖子
92
8
 楼主| 发表于 2011-6-7 22:56:28 | 只看该作者
Yuee 发表于 2011-6-7 09:59
①最大HP=人物HP+防御力
Game_Battler第140行如果不想让敌人也有这个修改,就把上面这段复制,放到Game_Act ...

①最大HP=人物HP+防御力
Game_Battler第140行  
没有用!
我的梦幻让我用双手让他飞翔。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
95 小时
注册时间
2008-2-18
帖子
20
9
发表于 2011-6-8 00:11:20 | 只看该作者
tidusm 发表于 2011-6-7 21:55
只是纯粹的把HP数字变为HP+防御力,为什么会出现这么多问题。
我想定义为HP就是HP+防御力

基本HP是什么……真实HP是什么……
描述的不太清楚

如果是HP上限=原有HP上限+防御力
就是我上面发的改法
如果是别的,请描述清楚

上面改法忘了一个self
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取 最大体力值
  3.   #--------------------------------------------------------------------------
  4.   def maxhp
  5.     return [[base_maxhp + @maxhp_plus, 1].max, maxhp_limit].min + self.def
  6.   end
复制代码

点评

感谢贵样的帮助,3Q“si”!  发表于 2011-6-8 19:21
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
5 小时
注册时间
2007-4-8
帖子
6
10
发表于 2011-6-8 02:06:57 | 只看该作者
LZ的意思是重新定义新类: newhp = maxhp + def,然后将原本所有maxhp的地方都换成newhp
姐姐不懂脚本只能描述,谁看懂的帮个忙吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 12:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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