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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
跳转到指定楼层
1
发表于 2020-10-11 23:37:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
350星屑
好像一般武器在使用的时候,取修正值会默认使用那个普通攻击,在一些多属性游戏里面伤害夸张不说,效果也不好。
我自己使用的是abs系统,今天加了一个攻击会显示属性彩色数字的功能,但无论如何调整,给武器附魔也好,武器自带元素也好,造成的效果一直都是属性ID取-1,根本没有任何元素伤害。
个人魔改的脚本如下,请教了一位巨佬,不过他不是经常有时间。个人了解了武器攻击使用的是1号技能,且默认id为-1

RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.  
  3. def make_damage_value(user, item)
  4.   $元素显示=false
  5.   $元素ID=0
  6.     value = item.damage.eval(user, self, $game_variables)
  7.     value *= pdr if item.physical?#物理
  8.     value *= mdr if item.magical?#法术
  9.     value *= rec if item.damage.recover?#吸取
  10.     value = apply_critical(value) if @result.critical#暴击
  11.     value = apply_variance(value, item.damage.variance)#
  12.     value = apply_guard(value) #防御
  13.     $元素显示= true if item.damage.element_id !=1 or item.damage.element_id !=0
  14.        $元素ID = item.damage.element_id if item.damage.element_id !=1 or item.damage.element_id !=0
  15.        p value
  16. p  $元素ID


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

最佳答案

查看完整内容

改好了, 把9L脚本其中一部分替换成这样

Lv5.捕梦者

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

使用道具 举报

Lv3.寻梦者

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


回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
4
 楼主| 发表于 2020-10-11 23:47:01 | 只看该作者
个人逻辑巨差无比,灵能编程,社交废物,美术前期和文案策划出身,还望各位巨佬海涵。
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24302
在线时间
5048 小时
注册时间
2016-3-8
帖子
1618
5
发表于 2020-10-12 00:18:30 | 只看该作者
那位大佬该不会是kafuu chino吧?
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1616
在线时间
149 小时
注册时间
2018-12-27
帖子
324
6
 楼主| 发表于 2020-10-12 00:43:48 | 只看该作者
alexncf125 发表于 2020-10-12 00:18
那位大佬该不会是kafuu chino吧?

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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33183
在线时间
10490 小时
注册时间
2009-3-15
帖子
4756
7
发表于 2020-10-12 00:46:00 | 只看该作者
白色幸福 发表于 2020-10-12 00:43
他没空。
我们合作关系,我给他美术素材 他教我脚本。
不过他主要是想让我自己琢磨透了。我很谢谢他,不 ...

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

使用道具 举报

Lv5.捕梦者

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

使用道具 举报

Lv3.寻梦者

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

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

点评

伤害 但不知道为何用普通攻击就会变成对面那种 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
回复

使用道具 举报

Lv5.捕梦者

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 02:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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