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

Project1

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

[已经解决] 关于技能复制问题【已解决】

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
跳转到指定楼层
1
发表于 2019-6-7 21:18:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 间桐樱 于 2019-6-8 08:23 编辑

测试了一下脚本运行,结果报错了,怎么能将这个在完善一下呢?无需敌人也能够复制能力,只要不报错就可以
角色使用技能复制敌人技能成功,全技能复制------脚本正常运行√
角色使用技能复制同伴或自己技能失败,无技能复制------脚本正常运行√
敌人使用技能复制角色技能失败,无技能复制------脚本正常运行√
敌人使用技能复制同伴或自己技能报错?????------脚本报错×

  alias tmsksteal_game_battler_item_apply item_apply
  def item_apply(user, item)
    tmsksteal_game_battler_item_apply(user, item)
    if enemy? && item.steal_skill? && @result.hit?
      enemy.actions.each do |action|
        skill = $data_skills[action.skill_id]
        next if user.skill_learn?(skill)
        @result.steal_skills.push(skill.id)
        user.learn_steal_skill(skill.id)
      end
    end
  end

Lv2.观梦者

梦石
0
星屑
664
在线时间
101 小时
注册时间
2016-7-15
帖子
143
2
发表于 2019-6-7 21:30:17 | 只看该作者
不如用事件解决吧...(事件魔鬼)
设计一个技能,再加个双向技能的脚本,考虑脚本可能报错不如把技能分为队友型和敌人型,这样就不会出现复制自己的情况,(话说复制自己干什么,莫非你技能有冷却?)然后分别读取id,赋值入变量,根据变量判断,然后做一堆贵重物品(名字和图案和技能一样)加入主角包裹,然后贵重物品选择,选择要复制的技能,获取id,变量赋值,判断,然后获取指定技能,同时删去主角包裹中的贵重物品,不过如果这样贵重物品里只能放技能了,等于废掉贵重物品这个栏目,可能会对游戏制作产生不利因素。

加强版:获取技能贵重物品的同时获取身上已有其他非技能的贵重物品的id,分别保存入变量,然后删去这些贵重物品,等到复制完获取技能后,删去主角包裹中技能的贵重物品,重新给予原来的贵重物品,这样就不会废掉贵重物品的栏目,但会需要很多变量格子
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
3
 楼主| 发表于 2019-6-7 21:37:19 | 只看该作者
7112 发表于 2019-6-7 21:30
不如用事件解决吧...(事件魔鬼)
设计一个技能,再加个双向技能的脚本,考虑脚本可能报错不如把技能分为队 ...

咱是强迫症+完美主义者,哪怕用不上,也会把所有的可能性过一遍,事件、备注、物品都不想改,只要敌人使用复制技能不报错就好,至于有没有效果完全可以不考虑

点评

所以要改脚本?那我这个脚本盲走了= =  发表于 2019-6-7 21:38
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
4
 楼主| 发表于 2019-6-7 21:42:05 | 只看该作者
7112 发表于 2019-6-7 21:30
不如用事件解决吧...(事件魔鬼)
设计一个技能,再加个双向技能的脚本,考虑脚本可能报错不如把技能分为队 ...

嗯,不好意思,麻烦前辈你了

点评

好的,谢谢前辈的提醒,咱会注意的  发表于 2019-6-7 21:52
顺便尽量使用点评功能,不要回复连帖哦  发表于 2019-6-7 21:44
哪有,我新来的,很早注册但很少来,而且以前行为有点...不太文明,现在改过自新了  发表于 2019-6-7 21:43
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1680
在线时间
91 小时
注册时间
2019-5-16
帖子
45
5
发表于 2019-6-8 05:20:39 | 只看该作者
仅仅要求不报错 ->
  1.   alias tmsksteal_game_battler_item_apply item_apply
  2.   def item_apply(user, item)
  3.     tmsksteal_game_battler_item_apply(user, item)
  4.     return if user.enemy? # ← New!
  5.     if enemy? && item.steal_skill? && @result.hit?
  6.       enemy.actions.each do |action|
  7.         skill = $data_skills[action.skill_id]
  8.         next if user.skill_learn?(skill)
  9.         @result.steal_skills.push(skill.id)
  10.         user.learn_steal_skill(skill.id)
  11.       end
  12.     end
  13.   end
复制代码


要求敌人也能学会技能 ->
Game_Enemy 需要增加一个额外技能列表。学习技能时,会把学到的玩家的技能添加到这个额外技能列表中。行动时,在标定的行动之外,还会抽选额外技能列表中的技能来用。
可以做,但工作量稍微有点大。

点评

我注册时间比你晚啦……  发表于 2019-6-8 15:54
感谢前辈,这样就可以了,原本也没打算让敌人使用复制技能,只是咱的强迫症犯了而已  发表于 2019-6-8 08:22

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 认可答案
间桐樱 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 20:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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