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

Project1

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

[已经解决] 如何在后台定义异常状态

[复制链接]

Lv2.观梦者 (版主)

迷途知返,恍如隔世

梦石
0
星屑
488
在线时间
1355 小时
注册时间
2011-2-17
帖子
1216

开拓者

跳转到指定楼层
1
发表于 2013-7-28 15:38:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如说有个技能在处于异常状态时,攻击力提高50%。
如何在后台定义异常状态,用def么?
怎么自己设定部分编号是异常状态?
然后在使用技能的时候释放正确效果?

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
2
发表于 2013-7-28 16:06:08 | 只看该作者
Game_Battler下的def skill_effect(user, skill)里添加你想添加的东西
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

迷途知返,恍如隔世

梦石
0
星屑
488
在线时间
1355 小时
注册时间
2011-2-17
帖子
1216

开拓者

3
 楼主| 发表于 2013-7-28 16:10:24 | 只看该作者
wwwcctvty 发表于 2013-7-28 16:06
Game_Battler下的def skill_effect(user, skill)里添加你想添加的东西

我是想知道如何定义某些状态为异常状态,然后在技能或者物品中能够调用。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
4
发表于 2013-7-28 17:28:52 | 只看该作者
Anson 发表于 2013-7-28 16:10
我是想知道如何定义某些状态为异常状态,然后在技能或者物品中能够调用。 ...

、、、、还是没明白楼主想表示 什么?“定义某些状态为异常状态”?调用状态?状态只有附加和解除、、
战斗中会自动判断角色是否中了某个状态,你只需要在应用技能效果那里这写上判断中了某个状态后,使用技能加成50%
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

迷途知返,恍如隔世

梦石
0
星屑
488
在线时间
1355 小时
注册时间
2011-2-17
帖子
1216

开拓者

5
 楼主| 发表于 2013-7-28 18:26:16 | 只看该作者
wwwcctvty 发表于 2013-7-28 17:28
、、、、还是没明白楼主想表示 什么?“定义某些状态为异常状态”?调用状态?状态只有附加和解除、、
战 ...

比如说有这些状态:烧伤,中毒,冻伤,睡眠,力量下降。
异常状态为烧伤,中毒,冻伤,睡眠。然后定义,在这个技能释放的时候如果有异常状态4种其中一种或多种的话,攻击提高50%。而力量下降不归为异常状态的话对技能就没有影响。
简单来说就是能够自己为状态分类,调用。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
6
发表于 2013-7-28 19:08:22 | 只看该作者
Anson 发表于 2013-7-28 18:26
比如说有这些状态:烧伤,中毒,冻伤,睡眠,力量下降。
异常状态为烧伤,中毒,冻伤,睡眠。然后定义, ...

为什么 楼主一定要分类呢?好吧。可以这样分类 STATE_OF_THE_ARRAY = [1,2,3,4,5,6]#中括号里的就是状态ID
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

迷途知返,恍如隔世

梦石
0
星屑
488
在线时间
1355 小时
注册时间
2011-2-17
帖子
1216

开拓者

7
 楼主| 发表于 2013-7-29 11:41:05 | 只看该作者
wwwcctvty 发表于 2013-7-28 19:08
为什么 楼主一定要分类呢?好吧。可以这样分类 STATE_OF_THE_ARRAY = [1,2,3,4,5,6]#中括号里的就是状态I ...

这段脚本应该插入在哪,怎么调用呢?这里是脚本白痴恕谅解!
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

8
发表于 2013-7-29 19:17:11 | 只看该作者
状态那里有个属性防御,比如咱们把21号属性设为异常状态的属性标志,然后把你想归纳为异常状态的勾上21号属性。
之后在Game_Battler 3下,128行左右
  1. power = skill.power + user.atk * skill.atk_f / 100
  2. if power > 0
  3. power -= self.pdef * skill.pdef_f / 200
  4. power -= self.mdef * skill.mdef_f / 200
  5. power = [power, 0].max
  6. end
复制代码
修改一下:
  1. power = skill.power + user.atk * skill.atk_f / 100
  2. if power > 0
  3. power -= self.pdef * skill.pdef_f / 200
  4. power -= self.mdef * skill.mdef_f / 200
  5. power = [power, 0].max
  6. end
  7. #如果是被攻击者是self
  8. for i in user.states
  9. state = $data_states[i]
  10. # 这里判断施术者的状态是否有异常状态
  11.   if state.guard_element_set.include?(21)
  12. # 如果直接写成power *=1.5为会出现小数,可以像下面这么写,也可以.round
  13.     power = power*3/2
  14. #为了避免power的反复加成,提升一次打断循环。
  15.     break
  16. end
  17. end
复制代码
以上只是理论,未测试。

点评

是被攻击者处于异常状态。  发表于 2013-7-29 19:31
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33621
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

9
发表于 2013-7-29 19:41:22 | 只看该作者
也可以直接在伤害计算前,算成最终的伤害提升:
  1. #先定义一些异常状态
  2. STATE_OF_THE_ARRAY = [1,2,3,4,5,6]   # 1,2,3,4,5,6 都是异常状态

  3. # 然后直接在 Game_Battler 3  里的  应用特技效果  的   HP 的伤害减法运算  前,
  4. # 插入:
  5. if skill.id == 异常状态增幅攻击技能 ID
  6.   for i in self.states
  7.     if STATE_OF_THE_ARRAY.include?(i)
  8.       self.damage += self.damage / 2
  9.       break
  10.     end
  11.   end
  12. end
复制代码

评分

参与人数 2星屑 +110 收起 理由
︶ㄣ牛排ぶ + 90 认可答案
Anson + 20 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

迷途知返,恍如隔世

梦石
0
星屑
488
在线时间
1355 小时
注册时间
2011-2-17
帖子
1216

开拓者

10
 楼主| 发表于 2013-7-29 21:43:09 | 只看该作者
芯☆淡茹水 发表于 2013-7-29 19:41
也可以直接在伤害计算前,算成最终的伤害提升:

我懂了!亲每次都是你帮我解答!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 21:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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