楼主: 无忧谷主幻

[讨论] 【自答贴】适用于彩虹神剑的溅射技能

[复制链接]
梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-11 21:46:54 | 显示全部楼层
还有请问下怎么弄一个技能能释放三四个法术呢
回复

使用道具 举报

梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-11 21:54:17 | 显示全部楼层
lin2117245 发表于 2026-4-11 21:22
现在是全屏就是加主随机在两个就是三个了

加我QQ364397607比较好沟通
回复

使用道具 举报

素材区好人

梦石
5
星屑
12559
在线时间
4347 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

 楼主| 发表于 2026-4-11 21:55:53 | 显示全部楼层
lin2117245 发表于 2026-4-11 21:12
嗯就是敌人随机溅射3个当位

只要给随机3个敌人附加上状态17就好了
事件页写不下,我就放在脚本编辑器中了
Project2.zip (350.32 KB, 下载次数: 1)
话说,我感觉随机多体攻击更适合你吧?
https://rpg.blue/thread-329344-1-1.html
回复

使用道具 举报

梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-11 22:24:50 | 显示全部楼层
无忧谷主幻 发表于 2026-4-11 21:55
只要给随机3个敌人附加上状态17就好了
事件页写不下,我就放在脚本编辑器中了

溅射伤害能不能跟改随主角的伤害
回复

使用道具 举报

梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-11 22:31:18 | 显示全部楼层
无忧谷主幻 发表于 2026-4-11 21:55
只要给随机3个敌人附加上状态17就好了
事件页写不下,我就放在脚本编辑器中了

你加我QQ吧比较好说我关电脑了

点评

QQ我是不会加的,建议你重开一个贴,这个帖子的方法和你的要求不符  发表于 2026-4-12 07:02
回复

使用道具 举报

素材区好人

梦石
5
星屑
12559
在线时间
4347 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

 楼主| 发表于 2026-4-11 22:48:16 | 显示全部楼层
lin2117245 发表于 2026-4-11 22:24
溅射伤害能不能跟改随主角的伤害

首先,我做的这个其实就是直接扣血,跳过了整个技能伤害计算公式
如果你要改成关联技能或主角攻击力其实也可以
比如这样就是关联了技能57的威力数值
[pre lang="ruby"]#==============================================================================
# ■ 状态17溅射伤害处理
#==============================================================================

class Game_Troop
  # 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成技能57的威力伤害
  def splash_state17_damage
    # 1. 筛选出所有存活的敌人
    alive_targets = @enemies.select { |e| e.hp > 0 }

    # 2. 从存活敌人中随机选取最多3个
    targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min]

    # 3. 为选中的目标附加状态17
    targets_to_add_state.each do |enemy|
      enemy.add_state(17) unless enemy.state?(17)
    end

    # 4. 对所有拥有状态17的存活敌人造成技能57的威力伤害
    alive_targets.each do |enemy|
      if enemy.state?(17)
        # 直接读取数据库中 技能57 的威力
        skill = $data_skills[57]
        dmg = skill.power
        
        enemy.hp -= dmg
        enemy.damage = dmg
        enemy.critical = false
        enemy.animation_id = 101
        enemy.damage_pop = true
      end
    end
  end
end[/pre]
但你非要改成标准战斗的伤害,就需要加上整套伤害计算公式了,我真心不建议用这个方法,另外,我感觉你还是重开一个帖子比较好

回复

使用道具 举报

梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-12 19:24:59 | 显示全部楼层
无忧谷主幻 发表于 2026-4-11 22:48
首先,我做的这个其实就是直接扣血,跳过了整个技能伤害计算公式
如果你要改成关联技能或主角攻击力其实 ...

能改成角色攻击伤害不比如.角色攻击5100那么溅射一样或者低可以不
回复

使用道具 举报

梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-12 19:26:51 | 显示全部楼层
你帮我写一个观照万象像梦幻一样梦释放施法四个法术的
回复

使用道具 举报

素材区好人

梦石
5
星屑
12559
在线时间
4347 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

 楼主| 发表于 2026-4-12 21:49:01 | 显示全部楼层
lin2117245 发表于 2026-4-12 19:24
能改成角色攻击伤害不比如.角色攻击5100那么溅射一样或者低可以不

关联的数值改成角色1的攻击力
[pre lang="ruby"]#==============================================================================
# ■ 状态17溅射伤害处理
#==============================================================================

class Game_Troop
  # 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成主角1攻击力的伤害
  def splash_state17_damage
    # 1. 筛选出所有存活的敌人
    alive_targets = @enemies.select { |e| e.hp > 0 }

    # 2. 从存活敌人中随机选取最多3个
    targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min]

    # 3. 为选中的目标附加状态17(已存在则不重复添加)
    targets_to_add_state.each do |enemy|
      enemy.add_state(17) unless enemy.state?(17)
    end

    # 4. 对所有拥有状态17的存活敌人造成伤害
    alive_targets.each do |enemy|
      if enemy.state?(17)
        # 获取队伍第一个成员(主角1)的最终攻击力
        # 包含装备、状态、buff/debuff的最终数值
        dmg = $game_party.actors[0].atk

        enemy.hp -= dmg
        enemy.damage = dmg
        enemy.critical = false
        enemy.animation_id = 101
        enemy.damage_pop = true
      end
    end
  end
end[/pre]

甚至可以加上浮动
[pre lang="ruby"]#==============================================================================
# ■ 状态17溅射伤害处理
#==============================================================================

class Game_Troop
  # 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成主角1攻击力的伤害
  def splash_state17_damage
    # 1. 筛选出所有存活的敌人
    alive_targets = @enemies.select { |e| e.hp > 0 }

    # 2. 从存活敌人中随机选取最多3个
    targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min]

    # 3. 为选中的目标附加状态17(已存在则不重复添加)
    targets_to_add_state.each do |enemy|
      enemy.add_state(17) unless enemy.state?(17)
    end

    # 4. 对所有拥有状态17的存活敌人造成伤害
    alive_targets.each do |enemy|
      if enemy.state?(17)
        # 获取主角1的基础攻击力
        base_atk = $game_party.actors[0].atk
        # 生成±10%的随机浮动系数
        fluct = 0.9 + rand * 0.2
        # 计算最终伤害(向下取整,确保为整数)
        dmg = (base_atk * fluct).to_i
        # 保底1点伤害,避免出现0伤
        dmg = [dmg, 1].max

        enemy.hp -= dmg
        enemy.damage = dmg
        enemy.critical = false
        enemy.animation_id = 101
        enemy.damage_pop = true
      end
    end
  end
end[/pre]

但你要明白,这本质上仍然是关联了某个数值的固定伤害,如果你想像正常战斗一样,需要套用整个伤害计算公式,还要考虑敌人的防御力,不如从新做一个比较方便

这是我在这个帖子的最后一个回复了,如果还不满意,就去开新帖吧

点评

其实,你可以在伤害公式里把伤害保存到一个全局变量里,然后就可以拿这个全局变量玩了, 笑  发表于 2026-5-15 10:56
回复

使用道具 举报

梦石
0
星屑
302
在线时间
126 小时
注册时间
2010-7-10
回帖
39
发表于 2026-4-12 22:01:32 | 显示全部楼层
无忧谷主幻 发表于 2026-4-12 21:49
关联的数值改成角色1的攻击力
#===================================================================== ...

最后这个脚本还是会全屏啊

点评

从存活敌人中随机选取最多3个,但如果敌人数量小于等于3个,当然会全部选取  发表于 2026-4-12 22:15
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部