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

Project1

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

[已经解决] [已解决]属性有效度设置属性相克疑问?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14621
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2020-8-12 19:52:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2020-8-20 19:17 编辑

如图,我把这个怪物设置为水的属性有效度设置为D,通过识出,
金、木、水、火、土,如果哪个属性被标注D,则就在战斗时显示对应属性的字。
但是现在发现,这么做的话,
比如这个怪物属性是水,被土克制,完全体现不出来。只能体现出来耐水攻击50%
只能同时把土给调到B或A,再把水调到D,感觉怪怪的。
也就是说标记D的用于显示字用,并且耐受度50%,标记A/B表示相克的。

另外感觉A/B/C/D/E/F默认都是每个档位50%,这个能自由调节吗?

1.png (59.32 KB, 下载次数: 23)

1.png

2.png (73.03 KB, 下载次数: 22)

2.png

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
2
发表于 2020-8-12 21:25:17 | 只看该作者
本帖最后由 灯笼菜刀王 于 2020-8-12 21:26 编辑

只是默认的公式如此设定罢了, 你大可自己改公式, 把伤害公式改成 水A 就等于受土伤害加倍 受水伤害无效

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14621
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

3
 楼主| 发表于 2020-8-12 21:44:16 | 只看该作者
灯笼菜刀王 发表于 2020-8-12 21:25
只是默认的公式如此设定罢了, 你大可自己改公式, 把伤害公式改成 水A 就等于受土伤害加倍 受水伤 ...

def attack_effect(attacker)
这里写?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
4
发表于 2020-8-12 21:56:47 | 只看该作者
# 属性修正
self.damage *= elements_correct(attacker.element_set)
self.damage /= 100
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14621
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

5
 楼主| 发表于 2020-8-13 21:28:00 | 只看该作者
灯笼菜刀王 发表于 2020-8-12 21:56
# 属性修正
self.damage *= elements_correct(attacker.element_set)
self.damage /= 100

改,Game_Actor和Game_Enemy里面的这个数组对吧
table = [0,200,150,100,50,0,-100]

点评

不只如此, 你甚至可以直接改写整个elements_correct, 用你希望的公式进行属性修正就是了,大不了用穷举的方式详细列出属性相克关系,笑  发表于 2020-8-13 21:49
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14621
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

6
 楼主| 发表于 2020-8-15 16:20:38 | 只看该作者
miantouchi 发表于 2020-8-13 21:28
改,Game_Actor和Game_Enemy里面的这个数组对吧
table = [0,200,150,100,50,0,-100]

帮忙整个例子被,一点也不会设计这个东西。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6388
在线时间
989 小时
注册时间
2010-12-3
帖子
45
7
发表于 2020-8-15 18:32:49 | 只看该作者
之前好像有人问过相同的问题...
https://rpg.blue/thread-303762-1-1.html
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
8
发表于 2020-8-15 21:43:15 | 只看该作者
本帖最后由 灯笼菜刀王 于 2020-8-15 21:46 编辑

栗子就是这样

def 五行相克(element_set)
    return 100 if element_set.empty?
    自身属性 = self.is_a?(Game_Actor) ? $data_classes[self.class_id].element_ranks  :
    $data_enemies[self.id].element_ranks
    a = 100
    if 自身属性[3] == 4  #[nil,金,木,水,火,土], 3就是水属性为D的设置
      a /= 2 if element_set.include?(5) #土属性,双倍伤害
      a /= 50 if element_set.include?(4) #火属性,减半
      a *= 0 if element_set.include?(3)  #水属性,吸收
    end
    #下面一个一个列出属性关系
    return a
end

这样就做好一个属性相克咯, 而且是口袋妖怪式的相乘计算法, 不是XP的"取伤害最高的那个属性来计算", 不过就是只会计算前面5个属性, 后面的全部无视

不计算其他属性的好处就是, 你用属性来作为某些判断的时候(比如全体化), 不会因此干扰到伤害公式,  否则, 如果是默认的公式, 你把武器同时勾上 全体化和火 那就算是攻击 火F(火属性吸收) 的敌人, 也会因为全体化的默认C而变成普通伤害哦

点评

谢谢,我研究下。。(#^.^#)  发表于 2020-8-15 22:45

评分

参与人数 2星屑 +80 +1 收起 理由
RyanBern + 80 认可答案
miantouchi + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23191
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

9
发表于 2020-8-16 16:14:57 | 只看该作者
本帖最后由 SailCat 于 2020-8-16 16:20 编辑

五行的系统是很复杂的,因为每一个属性会同时受到其他4个属性的影响,同时还不能受到自身属性的影响
但是这个需求并不需要更改脚本中的属性修正设置
本质上只通过数据库设置就能解决了

例如:
金属性的生克关系是:金克木,火克金,金生水,土生金
从金的角度来看就是:
金克制木(攻击木属性等于攻击弱点,但被木属性攻击可以抵抗)
金被火克制(受到火属性攻击有弱点,但攻击火属性会被对方抵抗)
金生水(攻击水属性效果会被对方吸收,但被水属性攻击是普通效果)
金被土发生(受到土属性攻击能够吸收,但攻击土属性是普通效果)
体现在属性的设置上就是
金属性体质:
对金为E(受到本命属性攻击0%受伤,即无效)
对火为A(受到火属性攻击200%受伤)
对土为F(受到土属性攻击-100%受伤)
对水为C(受到水属性攻击没有加成)
对木为D(受到木属性攻击50%受伤)

体质    金   木    水    火    土
对 金   E     A     F      D     C
对 木   D     E     C     F      A
对 水   C     F     E      A     D
对 火   A     C     D     E      F
对 土   F     D     A     C      E

脚本的修改:当五行的属性某项被设置为E(5)时,显示为其本命属性。

需要记住的就是每一个特定五行的角色或者敌人都需要设置出对应的ACDEF项,不过你可以通过复制敌人模板来防止设定出错。

点评

思路太强大了,我现在就想到克制的,如果克制的完善了,慢慢的把你说的剩下的地方完善下,应该说是就是。 这下好了,思路有了,范例刀王也给...  发表于 2020-8-20 19:16

评分

参与人数 2星屑 +40 +1 收起 理由
RyanBern + 40 我很赞同
miantouchi + 1 精品文章

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
10
发表于 2020-8-16 16:36:07 | 只看该作者
本帖最后由 89444640 于 2020-8-16 16:39 编辑
SailCat 发表于 2020-8-16 16:14
五行的系统是很复杂的,因为每一个属性会同时受到其他4个属性的影响,同时还不能受到自身属性的影响
但是这 ...


对,确实默认是这么设置的,不过问题就是比较麻烦,万一上着班干活脑子抽了就该出错了,所以用脚本写使其绝对化,更方便吧?
比如在脚本里给敌人注释"自身属性"=>["木"],就直接调用了脚本里定义的木属性的规则,
这样就不用数据库里来回来去的勾了XD。
然后还有个问题,我觉得50%加上波动有时候伤害还是挺高的,尤其是角色魔攻上来以后,克制再继续加容易伤害破表,那么克制时候我能不能让效果更明显一些,比如木属性打金只有10%的伤害而不是50%,这样视觉上能差一位数,就不会有人拿着抵抗属性磨血去了吧?

点评

VA以上的数据库可以自由设置百分比,但是下限不能低于0,不能吸收,等于直接废了五行生克系统。 XP这边直接改element_correct里面那个表就可以了  发表于 2020-8-16 16:51

评分

参与人数 1+1 收起 理由
miantouchi + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 06:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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