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

Project1

 找回密码
 注册会员
搜索
楼主: 白色幸福
打印 上一主题 下一主题

[已经解决] 如何让武器默认的属性ID不是-1?(元素武器打不出元素效果

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
11
 楼主| 发表于 2020-10-12 11:29:12 | 只看该作者
本帖最后由 白色幸福 于 2020-10-12 11:36 编辑
soulsaga 发表于 2020-10-12 00:46
即使属性ID为-1也没有影响吧?
默认最终还是会取武器上的属性啊..难道不是吗? ...


可能是我武器不是纯元素吧……
默认带了物理这个【属性】,估计是系统又自动计算物理了
看样子只要武器带了物理这个属性就按物理算吧 毕竟取最大值啊

没成功,依旧是走的物理 取消了物理属性走的也是物理

点评

abs我是没改过,不过我伤害公式改了很多……搜索工具技能能找到的就是一个索引 组相关 默认是0使用1号技能  发表于 2020-10-12 12:31
我只是想看脚本啊..没改过的话或且自己找ABS也行  发表于 2020-10-12 12:24
论坛上我没法直接给你工程 毕竟我这个游戏还是要卖的 加QQ聊吧 看你私信  发表于 2020-10-12 12:22
或且给一下ABS的脚本看看怎么改良?  发表于 2020-10-12 12:18
可以说下那个备注写了什么吗  发表于 2020-10-12 12:16
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
12
 楼主| 发表于 2020-10-12 11:42:21 | 只看该作者
alexncf125 发表于 2020-10-12 11:17
我用VA默认脚本测试时, 不会p出-1, 会p出武器的特性的"攻击的属性"的IDclass Game_Battler < Game_BattlerB ...

我这边一直是-1,0,1,就是没有属性效果。【改1号技能为普通攻击,无,物理】
不知道是不是因为ABS系统武器默认使用的一个 工具技能 = 0 这个原因,然后角色技能的话的按照技能属性算的
武器却直接使用了1号技能【攻击】

如果是这样的话,那只能做一堆弹头来跳板了
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
13
 楼主| 发表于 2020-10-12 11:55:38 | 只看该作者
本帖最后由 白色幸福 于 2020-10-12 11:59 编辑
alexncf125 发表于 2020-10-12 11:17
我用VA默认脚本测试时, 不会p出-1, 会p出武器的特性的"攻击的属性"的IDclass Game_Battler < Game_BattlerB ...


我没成功 默认脚本元素武器打出来依旧是直接按1号技能走的 要是你也在老猫群里咱俩qq交流吧 解决了问题星屑就给你 游戏我也会给你一份的

我不知道是不是ABS默认武器就锁一号技能了,要是的话就只能靠跳板解决了
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
14
 楼主| 发表于 2020-10-12 12:06:52 | 只看该作者
白色幸福 发表于 2020-10-12 11:00
并没有啊·1,我截图给你看

元素ID。
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
15
 楼主| 发表于 2020-10-12 13:05:29 | 只看该作者
本帖最后由 白色幸福 于 2020-10-12 13:09 编辑
alexncf125 发表于 2020-10-12 12:36
9L的user.equips[0].features[0].data_id
如果"攻击的属性"在第一栏, 就是features[0]
如果"攻击的属性"在 ...


很感谢了,现在武器有自己的属性了。

不过我还有一个问题没能解决,目前我做了一个元素混伤机制,如火加雷能打出辐射。通过装备给武器附魔。
脚本是这样的:
RUBY 代码复制
  1. if self.state?(35) and self.state?(36) #火焰+寒冰产生爆炸
  2.    self.add_state(30)
  3.    self.remove_state(35)
  4.    self.remove_state(36)
  5.  
  6.    value *= self.element_rate(12)
  7. elsif self.state?(30)
  8.    value *= self.element_rate(12)
  9. elsif self.state?(35) and self.state?(37)#火焰+雷电产生辐射
  10.    self.add_state(41)
  11.    self.remove_state(35)
  12.    self.remove_state(36)
  13.    value *= self.element_rate(11)
  14. elsif self.state?(41)
  15.    value *= self.element_rate(11)
  16. elsif self.state?(35) and self.state?(27)#火焰+深渊产生罪业
  17.    self.add_state(31)
  18.    self.remove_state(35)
  19.    self.remove_state(27)
  20.    value *= self.element_rate(13)
  21. elsif self.state?(31)
  22.    value *= self.element_rate(13)
  23. elsif self.state?(36) and self.state?(2)   #毒素+冰产生侵蚀
  24.    self.add_state(40)
  25.    value *= self.element_rate(16)
  26.    self.remove_state(2)
  27.    self.remove_state(36)
  28. elsif self.state?(40)
  29.    value *= self.element_rate(16)
  30.    elsif self.state?(49) and self.state?(27)   #深渊+神圣产生伪光
  31.    self.add_state(50)
  32.    value *= self.element_rate(15)
  33.    self.remove_state(27)
  34.    self.remove_state(49)
  35. elsif self.state?(50)
  36.    value *= self.element_rate(15)
  37. else
  38.  
  39.      value *= item_element_rate(user, item)
  40.    end

不过现在没有这个效果 走的还是武器原本的属性233 即使敌人被挂上了buff




通过这个东西来实现附魔 不过现在打出去就有个buff 混伤没成

点评

我这个是打怪给怪加状态啊%  发表于 2020-10-12 14:15
X 附加状态是给自身附加的  发表于 2020-10-12 13:55
X 默认防具附加属性是被怪打计算的元素伤害  发表于 2020-10-12 13:55
哦..我好像搞混了..你说的没错..  发表于 2020-10-12 13:53
还是说改脚本判断防攻击敌人时附加了?  发表于 2020-10-12 13:35
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24317
在线时间
5050 小时
注册时间
2016-3-8
帖子
1620
16
发表于 2020-10-12 13:45:09 | 只看该作者
本帖最后由 alexncf125 于 2020-10-13 21:44 编辑
白色幸福 发表于 2020-10-12 13:05
很感谢了,现在武器有自己的属性了。

不过我还有一个问题没能解决,目前我做了一个元素混伤机制,如火加 ...

你看看在那堆value *= self.element_rate(x)
下一行加句p self.element_rate(x)会p出什么

或者
if user.is_a?(Game_Actor) && item.id == user.attack_skill_id &&user.armors.include?($data_armors[88])) #敌人没这效果的吧?
  if self.state?(35) && self.state?(37)#火焰+雷电产生辐射
    self.add_state(41)
    self.remove_state(35)
    self.remove_state(37)     #话说15L脚本的第12行写错成36了
    value *= self.element_rate(10)
  elsif self.state?(41)
    value *= self.element_rate(10)
  end
end

如果self是被攻击的敌人, 我图中设了Dark(ID:10) 200%,
p self.element_rate(10)会是2.0

点评

吃的是爆炸的五倍伤害,不过p出来的元素ID还是原武器的  发表于 2020-10-12 15:03
不过实际上伤害类型已经变了  发表于 2020-10-12 14:39
伤害加了已经,是按五倍伤害计算的,就是视觉效果上吃的还是武器原本属性(出来的还是黑字而不是爆炸的红字)  发表于 2020-10-12 14:39
啊我理解错了。有倍率伤害的 这个其实是想让敌人在有“爆炸”buff的时候收到的伤害为爆炸 不过字体颜色没有改变  发表于 2020-10-12 14:33
混伤机制不加伤害, 么是有什么其他效果?  发表于 2020-10-12 14:29
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24317
在线时间
5050 小时
注册时间
2016-3-8
帖子
1620
17
发表于 2020-10-12 15:21:34 | 只看该作者
本帖最后由 alexncf125 于 2020-10-12 16:22 编辑

RUBY 代码复制
  1. unless [0, 1].include?(item.damage.element_id)
  2.   $元素显示= true
  3.   if user.is_a?(Game_Actor) && item.id == user.attack_skill_id
  4.     for a in 0..user.equips.size - 1
  5.       for i in 0..user.equips[a].features.size - 1
  6.         if user.equips[a].features[i].code == 31
  7.           $元素ID = user.equips[a].features[i].data_id
  8.         end
  9.       end
  10.     end
  11.   end
  12.   $元素ID = item.damage.element_id if $元素ID == 0
  13. end
  14. p value
  15. p $元素ID


$元素ID返回在装备栏中, 最后一项(栏)有"攻击的属性"特性的装备的"攻击的属性"的ID
即是如果武器有"攻击的属性", 头又有"攻击的属性", 就返回头的
如果武器有"攻击的属性", 头有"攻击的属性", 装飾又有"攻击的属性", 就返回装飾的

其实好像不应该用begin rescue, 我把它们换了

点评

我不知道是不是用了装备风格拓展  发表于 2020-10-12 16:15
报错了,哥们  发表于 2020-10-12 16:06
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
18
 楼主| 发表于 2020-10-12 16:09:05 | 只看该作者
alexncf125 发表于 2020-10-12 15:21
unless [0, 1].include?(item.damage.element_id)
  $元素显示= true
  if user.is_a?(Game_Actor) && item ...

回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24317
在线时间
5050 小时
注册时间
2016-3-8
帖子
1620
19
发表于 2020-10-12 16:36:34 | 只看该作者
本帖最后由 alexncf125 于 2020-10-12 16:41 编辑


我忽略了没装备的情況
  1. unless [0, 1].include?(item.damage.element_id)
  2.   $元素显示= true
  3.   if user.is_a?(Game_Actor) && item.id == user.attack_skill_id
  4.     for a in 0..user.equips.size - 1
  5.       unless user.equips[a].nil?          #加了这句
  6.         for i in 0..user.equips[a].features.size - 1
  7.           if user.equips[a].features[i].code == 31          #这里我之前写了equips[0], 修改成equips[a]
  8.             $元素ID = user.equips[a].features[i].data_id          #这里我之前写了equips[0], 修改成equips[a]
  9.           end
  10.         end
  11.       end          #加了这句
  12.     end
  13.   end
  14.   $元素ID = item.damage.element_id if $元素ID == 0
  15. end
  16. p value
  17. p $元素ID
复制代码

点评

非常感谢,总算能够附魔了2333  发表于 2020-10-12 17:36
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
20
 楼主| 发表于 2020-10-12 17:35:37 | 只看该作者
本帖最后由 白色幸福 于 2020-10-12 19:09 编辑

@alexncf125
我截图就好说了



这个是武器基础的面板 我有一个给武器附加了13号属性的护甲

装备附魔石之后是图下这个


元素id为4 (最后装的4号元素附魔)新的附魔会盖住旧的,但是攻击目标附加的buff还在
每一个buff也做了一个相应的属性:

在kafuu的帮助下写的系统是 燃烧+冰冻 = 爆炸 敌人有爆炸buff时候 处理爆炸这个属性倍率
于是有那个5.0的倍率
但我一开始想的是直接把武器属性变成爆炸 属性的。现在明显能看到控制台p出的属性ID还是3,
但伤害已经翻倍了
这个我想解决掉。

p的分别是 伤害 元素ID 倍率

点评

不明白..怎么算多种的伤害?取平均值?  发表于 2020-10-12 20:25
他那个是如果有火和雷,就算火产生的伤害和雷产生的伤害 要是火加冰有爆炸了,就先算爆炸的,你在加个电就先算爆炸再算电这样  发表于 2020-10-12 20:18
分别计算不同元素造成的伤害?怎么计算..  发表于 2020-10-12 20:05
一个是给敌人挂上不同元素buff,然后产生一个buff计算伤害,不过我估计算法变了 另外那个就是分别计算不同元素造成的伤害 的确和我那个没多大关系  发表于 2020-10-12 19:42
我是说你说的那种WF的那种原神的不知道是指什么计算方式..  发表于 2020-10-12 19:15
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 01:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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