查看: 3618|回复: 12

[已经解决] 学会拥有某技能,普通攻击有概率会心一击

[复制链接]
梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
发表于 2017-9-6 19:52:48 | 显示全部楼层 |阅读模式

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

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

×
在Game_Battler 3里

# 会心一击修正
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
else
if self.skill_learn?(55)
if rand(100) < 30
  self.damage = (atk*3 )
Audio.se_play("Audio/SE/"+"m7-1剑法",100,100)  #必杀时播放音效
  self.critical = true
        end


说明:角色学会了55号被动技能后,  战斗时普通攻击有30%概率3倍伤害!
本人不懂脚本,求高手帮忙!   
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2017-9-8 15:12:34 | 显示全部楼层
本帖最后由 yang1zhi 于 2017-9-8 15:14 编辑

if self.skills.include?(55)   #角色技能数组是skills

self.damage = (atk*3 )  变为  self.damage *= 3

atk是个变量,你要是有自己设过,那你知道是什么,也是可以的。
只是3倍伤害,那就是伤害乘以3,也就是self.damage自己乘以3,self.damage *= 3

另外不建议文件名含中文名,或者特殊字符。建议英文格式。
中文在英文环境下是不能运行的

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 18:08:42 | 显示全部楼层
yang1zhi 发表于 2017-9-8 15:12
if self.skills.include?(55)   #角色技能数组是skills

self.damage = (atk*3 )  变为  self.damage *= 3

谢谢提醒!if self.skills.include?(55)  改会出错, if attacker.skills.include?(55),是不是这样改就可以了吗?
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 18:09:19 | 显示全部楼层
yang1zhi 发表于 2017-9-8 15:12
if self.skills.include?(55)   #角色技能数组是skills

self.damage = (atk*3 )  变为  self.damage *= 3

谢谢提醒!if self.skills.include?(55)  改会出错, if attacker.skills.include?(55),是不是这样改就可以了吗?
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 18:18:04 | 显示全部楼层
yang1zhi 发表于 2017-9-8 15:12
if self.skills.include?(55)   #角色技能数组是skills

self.damage = (atk*3 )  变为  self.damage *= 3

    出错是什么意思
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 18:19:05 | 显示全部楼层
1
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 18:19:51 | 显示全部楼层
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2017-9-8 19:02:37 | 显示全部楼层
本帖最后由 yang1zhi 于 2017-9-8 19:04 编辑

self是被攻击方。user是攻击方。会报错大概是那个被攻击的人没有SKILLS这个数组,大概是默认的敌人。默认的敌人是没有技能组的。
attacker应该也是攻击方
if self.is_a?(Game_Enemy)    #这样可以判断是不是敌人

damage是写被攻击方的

点评

user是下面技能部分的 attacker是上边普通攻击部分的  发表于 2017-9-8 19:27
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 19:45:42 | 显示全部楼层
yang1zhi 发表于 2017-9-8 19:02
self是被攻击方。user是攻击方。会报错大概是那个被攻击的人没有SKILLS这个数组,大概是默认的敌人。默认的 ...


undefined method "skills" for#<game_enemy:0xb05fc28>   这个出错
     
         m = rand(4)
       if m == 2
       if attacker.skills.include?(57)  #
         if self.is_a?(Game_Enemy)    #这样可以判断是不是敌人
            self.damage *= 2
          end
         if attacker.skills.include?(58)      
           self.damage *= 3  
            end
          if attacker.skills.include?(59)     
          self.damage *= 4
          end

            Audio.se_play("Audio/SE/"+"jianfa",100,100)  #必杀时播放音效
            self.critical = true
    end

点评

我说了。敌人没有SKILLS,所以你要判断attacker是不是敌人,不是敌人才可以if attacker.skills.include?(57)  发表于 2017-9-8 20:01
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
 楼主| 发表于 2017-9-8 19:52:29 | 显示全部楼层
看看 哪里出错了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部