Project1

标题: 关于技能复制问题【已解决】 [打印本页]

作者: 间桐樱    时间: 2019-6-7 21:18
标题: 关于技能复制问题【已解决】
本帖最后由 间桐樱 于 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
作者: 7112    时间: 2019-6-7 21:30
不如用事件解决吧...(事件魔鬼)
设计一个技能,再加个双向技能的脚本,考虑脚本可能报错不如把技能分为队友型和敌人型,这样就不会出现复制自己的情况,(话说复制自己干什么,莫非你技能有冷却?)然后分别读取id,赋值入变量,根据变量判断,然后做一堆贵重物品(名字和图案和技能一样)加入主角包裹,然后贵重物品选择,选择要复制的技能,获取id,变量赋值,判断,然后获取指定技能,同时删去主角包裹中的贵重物品,不过如果这样贵重物品里只能放技能了,等于废掉贵重物品这个栏目,可能会对游戏制作产生不利因素。

加强版:获取技能贵重物品的同时获取身上已有其他非技能的贵重物品的id,分别保存入变量,然后删去这些贵重物品,等到复制完获取技能后,删去主角包裹中技能的贵重物品,重新给予原来的贵重物品,这样就不会废掉贵重物品的栏目,但会需要很多变量格子
作者: 间桐樱    时间: 2019-6-7 21:37
7112 发表于 2019-6-7 21:30
不如用事件解决吧...(事件魔鬼)
设计一个技能,再加个双向技能的脚本,考虑脚本可能报错不如把技能分为队 ...

咱是强迫症+完美主义者,哪怕用不上,也会把所有的可能性过一遍,事件、备注、物品都不想改,只要敌人使用复制技能不报错就好,至于有没有效果完全可以不考虑
作者: 间桐樱    时间: 2019-6-7 21:42
7112 发表于 2019-6-7 21:30
不如用事件解决吧...(事件魔鬼)
设计一个技能,再加个双向技能的脚本,考虑脚本可能报错不如把技能分为队 ...

嗯,不好意思,麻烦前辈你了
作者: Aephiex    时间: 2019-6-8 05:20
仅仅要求不报错 ->
  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 需要增加一个额外技能列表。学习技能时,会把学到的玩家的技能添加到这个额外技能列表中。行动时,在标定的行动之外,还会抽选额外技能列表中的技能来用。
可以做,但工作量稍微有点大。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1