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

Project1

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

[原创发布] 脚本小白学脚本@盗窃“技能”

[复制链接]

Lv2.观梦者

梦石
0
星屑
853
在线时间
85 小时
注册时间
2005-11-21
帖子
86
跳转到指定楼层
1
发表于 2021-12-10 09:53:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 黑夜守望者 于 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的对应。
脚本小白,还在学习中…………
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-23 04:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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