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

Project1

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

[有事请教] [已解决]魔法技能伤害公式

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
跳转到指定楼层
1
发表于 2024-8-14 14:59:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 金芒芒 于 2024-8-16 07:21 编辑

魔法 = 125  魔法防御 = 95   魔法躲避几率35%   躲避魔法伤害-20%  
  如果魔法在35%的几率躲避造成的魔法伤害-20%  
这个魔法伤害公式这么计算

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
257 小时
注册时间
2023-11-9
帖子
51
2
发表于 2024-8-14 22:40:36 | 只看该作者
本帖最后由 ppspssss2 于 2024-8-15 13:22 编辑

以下部分使用了百度AI https://chat.baidu.com/, #b为我有修改的句
RUBY 代码复制
  1. # 定义变量
  2. magic_attack = 125
  3. magic_defense = 95
  4. dodge_chance = 35  #b躲避率 <原来是0.35,但随机数貌似没法小数,乘大100变整数
  5. dodge_damage_reduction = 0.20  # 转换为小数
  6.  
  7. # 计算未躲避时的魔法伤害
  8. # 假设这里简单的减法来计算防御效果,实际情况可能更复杂
  9. damage_before_dodge = magic_attack - magic_defense
  10.  
  11. # 生成随机数决定是否躲避
  12. if rand(100)+1 <= dodge_chance #b 小于等于35则运行躲避 (抽取到1-35) 躲避 ,(抽取到36-100)未躲避
  13.   # 如果躲避,计算减少后的伤害
  14.   damage_after_dodge = damage_before_dodge * (1 - dodge_damage_reduction)
  15.   p "躲避成功,受到的伤害为: #{damage_after_dodge}" #b 《低版本ruby没此方法,我已删掉.round(2)
  16. else
  17.   # 如果没有躲避,直接受到未躲避时的伤害
  18.   p "未躲避,受到的伤害为: #{damage_before_dodge}"
  19. end


请注意,这个脚本做了几个假设:

魔法防御直接从魔法攻击力中减去来计算未躲避时的伤害。实际情况中,防御的计算可能更复杂,可能涉及防御力的百分比减少或其他因素。
躲避几率和躲避后伤害减少百分比都被转换为小数,因为Ruby的rand函数生成的是一个小于1的浮点数,这样便于直接比较。
使用了round(2)来格式化输出的小数点后的位数,使其看起来更整洁。《低版本ruby没此方法,我已删掉.round(2)
以上是一个简单的Ruby脚本,用于模拟你所描述的魔法、防御和躲避机制。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
3
 楼主| 发表于 2024-8-16 07:19:27 | 只看该作者
ppspssss2 发表于 2024-8-14 22:40
以下部分使用了百度AI https://chat.baidu.com/, #b为我有修改的句
# 定义变量
magic_attack = 125

谢谢脚本写的太精辟了够我学习几个月了,仰慕大神
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-20 07:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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