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

Project1

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

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

[复制链接]

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
1
发表于 2020-10-11 23:37:46 | 显示全部楼层
本帖最后由 alexncf125 于 2020-10-12 13:25 编辑

改好了, 把9L脚本其中一部分替换成这样
  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.         begin
  5.           for i in 0..user.equips[0].features.size - 1
  6.             if user.equips[0].features[i].code == 31
  7.               $元素ID = user.equips[0].features[i].data_id
  8.             end
  9.           end
  10.         rescue
  11.           $元素ID =  item.damage.element_id
  12.         end
  13.       else
  14.         $元素ID =  item.damage.element_id
  15.       end
  16.     end
  17.     p value
  18.     p $元素ID
复制代码

点评

我也去吃口饭~  发表于 2020-10-12 13:00
不是必须, 不过得改改9L的脚本才能自动侦察"攻击的属性"的位置  发表于 2020-10-12 12:58
你先说,我去吃口饭 这个是必须攻击的属性在第一栏吗  发表于 2020-10-12 12:55
啊哈?  发表于 2020-10-12 12:54
没事不急 饭点了 先吃饭吧  发表于 2020-10-12 12:48
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
2
发表于 2020-10-12 00:18:30 | 显示全部楼层
那位大佬该不会是kafuu chino吧?
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
3
发表于 2020-10-12 01:05:08 | 显示全部楼层
本帖最后由 alexncf125 于 2020-10-12 01:40 编辑
白色幸福 发表于 2020-10-12 00:43
他没空。
我们合作关系,我给他美术素材 他教我脚本。
不过他主要是想让我自己琢磨透了。我很谢谢他,不 ...


kafuu chino大佬教的只有他自己明白
我都不明白他在说什么

加个Yanfly的「装备不同的武器使用普攻时, 普攻转换成不同的技能」脚本就是了
https://yanflychannel.wordpress. ... pon-attack-replace/

又或者试试
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.     begin
  5.       $元素ID =  user.equips[0].features[0].data_id
  6.     rescue
  7.       $元素ID =  item.damage.element_id
  8.     end
  9.   else
  10.     $元素ID =  item.damage.element_id
  11.   end
  12. end

点评

ABS自带了一个工具技能,可以做到用这个工具的时候默认释放哪个技能 我看看吧  发表于 2020-10-12 11:12
yan的脚本我看了,不过他那个如果武器多了工作了就很大了,不太适合我现在这个情况 不过我会考虑用那个做花样  发表于 2020-10-12 11:11
这个要写在哪儿?是修正值还是伤害公式哪里?写在伤害公式哪儿没啥用  发表于 2020-10-12 11:04
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
4
发表于 2020-10-12 11:17:23 | 显示全部楼层
本帖最后由 alexncf125 于 2020-10-12 11:26 编辑

我用VA默认脚本测试时, 不会p出-1, 会p出武器的特性的"攻击的属性"的ID
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def make_damage_value(user, item)
  3.  
  4.     $元素显示=false
  5.     $元素ID=0
  6.  
  7.     value = item.damage.eval(user, self, $game_variables)
  8.     value *= pdr if item.physical?#物理
  9.     value *= mdr if item.magical?#法术
  10.     value *= rec if item.damage.recover?#吸取
  11.     value = apply_critical(value) if @result.critical#暴击
  12.     value = apply_variance(value, item.damage.variance)#
  13.     value = apply_guard(value) #防御
  14.  
  15.     unless [0, 1].include?(item.damage.element_id)
  16.       $元素显示= true
  17.       if user.is_a?(Game_Actor) && item.id == user.attack_skill_id
  18.         begin
  19.           $元素ID =  user.equips[0].features[0].data_id
  20.         rescue
  21.           $元素ID =  item.damage.element_id
  22.         end
  23.       else
  24.         $元素ID =  item.damage.element_id
  25.       end
  26.     end
  27.     p value
  28.     p $元素ID
  29.  
  30.     @result.make_damage(value.to_i, item)
  31.   end
  32. end
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
5
发表于 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
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
6
发表于 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
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
7
发表于 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
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24594
在线时间
5101 小时
注册时间
2016-3-8
帖子
1626
8
发表于 2020-10-12 20:31:05 | 显示全部楼层
本帖最后由 alexncf125 于 2020-10-12 20:49 编辑
p的分别是 伤害 元素ID 倍率
  1. 1087.0     #伤害
  2. 4     #元素ID
  3. 5.0     #倍率
  4. 3
  5. 0
  6. 2
复制代码

所以3 0 2是啥?

但我一开始想的是直接把武器属性变成爆炸 属性的。
用Hime的特性条件
https://himeworks.com/2013/07/feature-conditions/

这个https://himeworks.com/2014/01/attack-element-modifiers/也可以參考看看
这个好像会把你说的最大值改为乘法(一大堆英文我也看不太懂)

其次可否把那些专有名词写得能容易明白些?
例如, 附魔写"攻击附加属性" / 元素写"属性" / buff写"状态" / 倍率写成"属性抗性"
又比如"燃烧+冰冻 = 爆炸 敌人有爆炸buff时候 处理爆炸这个属性倍率"这句
写成"当敌人有燃烧状态和冰冻状态, 或敌人有爆炸状态时, 造成的伤害*=敌人对于爆炸属性的属性抗性"
标点符号也麻烦写齊
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-31 05:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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