Project1

标题: 脚本小白学脚本@盗窃“技能” [打印本页]

作者: 黑夜守望者    时间: 2021-12-10 09:53
标题: 脚本小白学脚本@盗窃“技能”
本帖最后由 黑夜守望者 于 2021-12-10 12:02 编辑

首先说明,是盗窃“技能”而不是盗窃技能
效果是在战斗的时候对敌人使用该技能,则可以偷盗(习得)一个技能,就和GBA上的最终幻想战略版A一样偷盗技能啦。
方法:首先在Game_Battler 3的class Game_Battler下面添加一个函数:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 取得可盗窃的技能id
  3.   #     enemy_id : 敌方id
  4.   #--------------------------------------------------------------------------
  5.   def steal_skill_id(enemy_id)
  6.       case enemy_id
  7.       when 1       #幽灵
  8.         return 33  #毒
  9.       when 2       #蜥蜴
  10.         return 7   #火
  11.       end
  12.     end

作用是设置某个id的敌人对应获取某个id的技能。
这里只添加了1号的幽灵和2号的蜥蜴能偷盗的技能33毒和7火,其他类推。

然后在第201行下面插入
RUBY 代码复制
  1. #技能盗取
  2.     if user.is_a?(Game_Actor) && skill.id == 81 #判定使用者为actor,偷窃技能的技能id为81
  3.       @enemy_id = self.id #获取敌方id
  4.       @steal_skill_id = steal_skill_id(@enemy_id) #获取可以盗取的敌人技能
  5.       @user_skill_learn = user.skill_learn?(@steal_skill_id) #判定是否已习得技能
  6.       @skill_name = $data_skills[@steal_skill_id].name  #获取技能名称
  7.       if rand() < 0.5 && @user_skill_learn == false && @steal_skill_id != nil #盗取成功率&是否已学得该技能&可偷技能不为空
  8.          user.learn_skill(@steal_skill_id)   #习得技能
  9.          self.damage = @skill_name + "skill stolen" #成功显示
  10.       else
  11.          self.damage = "Miss" #不成功显示
  12.       end
  13.     end

这样使用技能ID81的技打中id为1的敌人时,使用技能的角色就会学会33号的技能。
习得成功显示窗口尚在研究中,这个只是个思路,按照这个思路可以方便地做出盗窃物品的脚本。
当然这样设置比较笨,你可以弄个hash表设置敌人id和可偷技能id的对应。
脚本小白,还在学习中…………





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