查看: 15242|回复: 77

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

[复制链接]
梦石
0
星屑
2032
在线时间
200 小时
注册时间
2018-12-27
回帖
334
发表于 2020-10-11 23:37:45 | 显示全部楼层 |阅读模式
悬赏350星屑已解决
好像一般武器在使用的时候,取修正值会默认使用那个普通攻击,在一些多属性游戏里面伤害夸张不说,效果也不好。
我自己使用的是abs系统,今天加了一个攻击会显示属性彩色数字的功能,但无论如何调整,给武器附魔也好,武器自带元素也好,造成的效果一直都是属性ID取-1,根本没有任何元素伤害。
个人魔改的脚本如下,请教了一位巨佬,不过他不是经常有时间。个人了解了武器攻击使用的是1号技能,且默认id为-1

[pre lang="ruby"]class Game_Battler < Game_BattlerBase
   
def make_damage_value(user, item)
  $元素显示=false
  $元素ID=0
    value = item.damage.eval(user, self, $game_variables)
    value *= pdr if item.physical?#物理
    value *= mdr if item.magical?#法术
    value *= rec if item.damage.recover?#吸取
    value = apply_critical(value) if @result.critical#暴击
    value = apply_variance(value, item.damage.variance)#
    value = apply_guard(value) #防御
    $元素显示= true if item.damage.element_id !=1 or item.damage.element_id !=0
       $元素ID = item.damage.element_id if item.damage.element_id !=1 or item.damage.element_id !=0
       p value
p  $元素ID [/pre]

该脚本下p到的武器攻击元素ID为-1 改成物理[e_id=1]或者无属性[e_id=0]之后取值一直是1和0.

最佳答案

查看完整内容

改好了, 把9L脚本其中一部分替换成这样
梦石
0
星屑
29911
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 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
回复

使用道具 举报

梦石
0
星屑
2032
在线时间
200 小时
注册时间
2018-12-27
回帖
334
 楼主| 发表于 2020-10-11 23:44:09 | 显示全部楼层
自己项目要上steam糊口的,因此很着急解决问题,想做快做好,否则要被家长赶出去硬着头皮找工作了; 我知道rm做大型项目吃亏,但现在做都做了就尽善尽美吧
所以重金求解决 我自己的项目目前就我一个人和大佬有脚本监督,其他没有人了
大佬给的思路是在图下 不过我一个文科生逻辑上绕不过来,他也觉得讲多了没意思外加没时间 希望有人能直接解决一下问题,谢谢了
QQ截图20201011233858.png
QQ截图20201011233917.png
QQ截图20201011233935.png
回复

使用道具 举报

梦石
0
星屑
2032
在线时间
200 小时
注册时间
2018-12-27
回帖
334
 楼主| 发表于 2020-10-11 23:47:01 | 显示全部楼层
个人逻辑巨差无比,灵能编程,社交废物,美术前期和文案策划出身,还望各位巨佬海涵。
回复

使用道具 举报

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

使用道具 举报

梦石
0
星屑
2032
在线时间
200 小时
注册时间
2018-12-27
回帖
334
 楼主| 发表于 2020-10-12 00:43:48 | 显示全部楼层
alexncf125 发表于 2020-10-12 00:18
那位大佬该不会是kafuu chino吧?

他没空。
我们合作关系,我给他美术素材 他教我脚本。
不过他主要是想让我自己琢磨透了。我很谢谢他,不过我现在着急糊口饭吃,美术我没法教别人,只能给现成的。
他觉得给我现成的不如让我自己学会逻辑思考,可我从小数学不及格到大学毕业(我学美术的。)。
跟他稍微有点拌嘴,但也是朋友关系,不过我觉得互相研究不透耽误事,还不如来论坛给钱办事吧
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2020-10-12 00:46:00 | 显示全部楼层
白色幸福 发表于 2020-10-12 00:43
他没空。
我们合作关系,我给他美术素材 他教我脚本。
不过他主要是想让我自己琢磨透了。我很谢谢他,不 ...

即使属性ID为-1也没有影响吧?
默认最终还是会取武器上的属性啊..难道不是吗?
回复

使用道具 举报

梦石
0
星屑
29911
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 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/

又或者试试
[pre lang="ruby"]unless [0, 1].include?(item.damage.element_id)
  $元素显示= true
  if user.is_a?(Game_Actor) && item.id == user.attack_skill_id
    begin
      $元素ID =  user.equips[0].features[0].data_id
    rescue
      $元素ID =  item.damage.element_id
    end
  else
    $元素ID =  item.damage.element_id
  end
end[/pre]

点评

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

使用道具 举报

梦石
0
星屑
2032
在线时间
200 小时
注册时间
2018-12-27
回帖
334
 楼主| 发表于 2020-10-12 11:00:37 | 显示全部楼层
soulsaga 发表于 2020-10-12 00:46
即使属性ID为-1也没有影响吧?
默认最终还是会取武器上的属性啊..难道不是吗? ...

并没有啊·1,我截图给你看

QQ图片20201012105947.png QQ图片20201012105955.png

点评

伤害 但不知道为何用普通攻击就会变成对面那种 4000多伤害 可能是我有一个元素融合代码的问题  发表于 2020-10-12 12:12
不..我是问那个XXX.0  发表于 2020-10-12 12:09
元素id  发表于 2020-10-12 12:07
所以你P了什么?  发表于 2020-10-12 12:04
回复

使用道具 举报

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

我用VA默认脚本测试时, 不会p出-1, 会p出武器的特性的"攻击的属性"的ID[pre lang="ruby"]class Game_Battler < Game_BattlerBase
  def make_damage_value(user, item)

    $元素显示=false
    $元素ID=0

    value = item.damage.eval(user, self, $game_variables)
    value *= pdr if item.physical?#物理
    value *= mdr if item.magical?#法术
    value *= rec if item.damage.recover?#吸取
    value = apply_critical(value) if @result.critical#暴击
    value = apply_variance(value, item.damage.variance)#
    value = apply_guard(value) #防御

    unless [0, 1].include?(item.damage.element_id)
      $元素显示= true
      if user.is_a?(Game_Actor) && item.id == user.attack_skill_id
        begin
          $元素ID =  user.equips[0].features[0].data_id
        rescue
          $元素ID =  item.damage.element_id
        end
      else
        $元素ID =  item.damage.element_id
      end
    end
    p value
    p $元素ID

    @result.make_damage(value.to_i, item)
  end
end[/pre]
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部