查看: 3123|回复: 1

[已经过期] 技能升级脚本改进,同组技能高级自动替换低级

[复制链接]
梦石
0
星屑
280
在线时间
26 小时
注册时间
2019-5-5
回帖
10
发表于 2021-3-3 06:55:29 | 显示全部楼层 |阅读模式

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

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

×
原帖: https://rpg.blue/thread-397283-1-1.html

这贴的功能大部分已能满足我的需求,但我的一个需求和那个楼主不同,我需要【替换的技能名与原技能名不同】,必须让玩家知道自己获得了新技能。
例如,这一系列技能,火球术→大火球术→超级火球术→凤凰冲击→地爆天星,获得新技能后自动替换掉旧的;
目前我的思路是:在技能名上再增加一个标识,用以检测同一组技能,例如:
火球术{001}[1]
大火球术{001}[2]
超级火球术{001}[3]
凤凰冲击{001}[4]
地爆天星{001}[5]

脚本检测到{001}的就表示“火球系技能”,这一系里获得新的就删除旧的


求大神帮忙,或者已有现成的脚本可指路,谢过先
Morir es vivir.
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2021-3-3 15:50:32 | 显示全部楼层
本帖最后由 soulsaga 于 2021-3-3 19:41 编辑

[pre lang="ruby"]
替换技能组={
"大火球术"=>"火球术",
"超级火球术"=>"大火球术",
"凤凰冲击"=>"超级火球术",
"地爆天星"=>"凤凰冲击"
}
Game_Actor = Class.new(Game_Actor) do
    superclass.constants.each{|c|const_set(c, superclass.const_get(c))}
    def learn_skill(id)
      s = @skills.clone
      super(id)
      if @skills != s
        s1 = $data_skills[id].name
        if 替换技能组[s1]
        for skill in @skills
        forget_skill(skill.id) if 替换技能组[s1] == skill.name
      end
    end
  end
end
end[/pre]

萌新随便写写..未测试..可能不太行?
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部