Project1

标题: 警告!用属性实现装备附加效果者必看! [打印本页]

作者: SailCat    时间: 2017-10-1 23:16
标题: 警告!用属性实现装备附加效果者必看!
由于XP没有备注,很多脚本用属性去实现装备附加效果。
二刀流支持的武器,给“二刀流”属性打勾
双手持的武器,给“双手持”属性打勾
消费道具的武器,给“消费道具”属性打勾

反正属性可以扩展999个,不用白不用。

作为一个从6R远古时代过来的人(虽然现在不做游戏开发),这是2005年以前日站的某些脚本的解决方式。
我不是说这种方法不可以用。
但如果你没有修改Game_Actor的相应部分(这非常容易忽略),就可能在战斗系统中出现这样那样的bug。

比如你用火属性的双持武器去砍火系吸收的怪,结果吸收不了……
原因很简单:你的角色的element_set里包括“双持”,而敌人对“双持”的抗性是“C”(因为默认都是C)……懂了吧?
很多脚本之间的冲突也源于此……

解决方法0:
不要设置D及以下级别的属性有效度
优点:懒
缺点:我用XP不就是因为属性能吸收吗?(VA及以后的版本属性默认不能吸收,此一点退步多有不便)

解决方法1(我不会贴代码,只提供思路,下同):
修改Game_Actor的element_set和Game_Battler的element_correct两处,将所涉属性与一个特定的游戏属性数组常量进行交集操作。
优点:插件代码不用改
缺点:冲突可能高(毕竟其他战斗增强插件非常容易动这些地方)

解决方法2:
更改RPG module的Item, Armor和Weapon,将element_set给alias掉,然后另行定义element_set使其只包含游戏用的属性,排除插件用的属性
优点:冲突可能不高(大概率会和被动技能等同样要更改RPG module的脚本冲突,其他并不容易冲突)
缺点:插件代码需要修改(用alias的名字)

解决方法3:
用状态打勾(防具)或者减号(武器和道具)代替属性进行功能设定
优点:冲突可能基本上没有
缺点:插件代码需要修改,而且思路不直观

解决方法4:
用description代替属性进行功能设定
优点:灵活,相当于VA以后版本的注释(除了上限100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字100字)(我是为了告诉你100字有多长,你觉得够用不?)
缺点:编写难度大,插件脚本基本上是重写

解决方法5:
script里对相关内容进行硬编码
优点:灵活,可以用各种数据类型免去解析的麻烦,不受description长度的限制
缺点:调整数据库不能联动



作者: yang1zhi    时间: 2017-10-2 09:26
放进数组里更方便
作者: soulsaga    时间: 2017-10-2 09:37
https://rpg.blue/forum.php?mod=v ... =%E5%A4%87%E6%B3%A8
XP也可以有备注...
作者: 哆啦溯    时间: 2017-10-4 19:21
呃……比如游戏中有10种属性,那么在伤害计算属性有效度的时候,只读取ID为1~10的属性,ID10以后的属性不参与计算
新萌第一个想到的办法




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1