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

Project1

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

[原创发布] 一个很弱鸡的技能书系统

[复制链接]

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

跳转到指定楼层
1
发表于 2016-1-8 15:37:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 cinderelmini 于 2016-1-10 15:43 编辑


针对队伍成员不固定的技能书系统。
也不知道是不是有前辈做过,总之这里是一个思路和做法都很弱鸡的实现方式。

※注意事项:
·如果用了物品分类之类的脚本的话,也许会冲突,但理论上是可以做兼容的。

※用法用量
·技能书物品名字后面加上“lk技能id”设置该技能书里面记载的技能id。
·技能书物品设置为不消耗,然后关联公共事件。
·技能书关联的对应公共事件内容为:【脚本:$scene = Scene_LearnSkill.new(对应物品id)】(也就是说一本书对应一个公共事件。)
·具体实例参考饭粒工程里面的数据库和npc对话。
·PS:有些小功能可以在脚本开头部分设定。

饭粒工程:
有问题欢迎随时反馈……
武功秘籍.zip (203.5 KB, 下载次数: 141)
1颗硬币稍微用来买糖吃→_→

160110更新:
※增加了职业限定功能:
·在技能名字后面加上“lk职业id,职业id....”可以设置技能的限制职业列表,
加了限制职业的技能只有指定职业可以学习和使用。
·稍微优化了一下代码……(并不……
·脚本里增加一点(等于没说的)说明……

饭粒工程(职业限定版):
技能书 - 职业限定.zip (205.6 KB, 下载次数: 150)
更新版本所以要两颗硬币→_→

评分

参与人数 1星屑 +60 收起 理由
邪月长啸 + 60 精品文章

查看全部评分

Lv4.逐梦者

梦石
0
星屑
13096
在线时间
3787 小时
注册时间
2013-7-18
帖子
2279
2
发表于 2016-1-9 19:00:56 | 只看该作者
公共事件做出来也差不多效果,看不出来有啥区别

点评

可否先做一个职业限制使用技能脚本,因为我用了魔法商店脚本,不需要用技能书,应该不麻烦吧  发表于 2016-1-10 14:50
搜噶……应该不难……窝折腾看看……  发表于 2016-1-10 14:42
学过的保留,转职后只能学该职业的技能,之前别职业的技能不能用  发表于 2016-1-10 14:32
那么已经学过的技能还会在列表里?以及转职后还能学职业外的技能,只是学完不能用?  发表于 2016-1-10 14:27
我的意思是,学了A职业技能,转B职业后不能使用A职业技能,而不是转职后不能学习A职业技能  发表于 2016-1-10 14:21
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

3
 楼主| 发表于 2016-1-10 15:45:32 | 只看该作者
本帖最后由 cinderelmini 于 2016-1-11 22:10 编辑
y967 发表于 2016-1-9 19:00
公共事件做出来也差不多效果,看不出来有啥区别

职业限定



这里是分割线




兼容连击Ver.1



这里是分割线




兼容连击Ver.2

点评

单独@和单独职业限定都没小尾巴了.....  发表于 2016-1-11 23:13
@后面的数字就是魔法商店的货币,买完技能就扣除那个变量的若干值  发表于 2016-1-11 23:01
不是每个都@,在魔法商店里能卖的才需要@,@后面的数字其实是一个变量,可以是任何名字  发表于 2016-1-11 22:59
可以了,应该没什么问题了,辛苦了,塞糖  发表于 2016-1-11 22:55
不过如果@和lk共存的话,一定要先填@就是了,不然lk的部分会显示出来。  发表于 2016-1-11 22:11

评分

参与人数 1星屑 +90 收起 理由
y967 + 90 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13096
在线时间
3787 小时
注册时间
2013-7-18
帖子
2279
4
发表于 2016-1-10 22:15:07 | 只看该作者
cinderelmini 发表于 2016-1-10 15:45
只要职业限定功能的话,用这段代码就好,用法主楼说明了:

不好意思,还要再麻烦你一下,这个职业限制定义符号和连击脚本一样了,导致逗号后面的数字变成了连击数....

可否把连击标志改成其他的,比如 " _ ",,改完后发现比如连击3次,但技能里可以看见_3,这样

如何把-3隐藏起来..........

连击脚本
  1. module RPG
  2. class Skill
  3.    def name
  4.      name = @name.split(/_/)[0]
  5.      return name != nil ? name : ""
  6.    end
  7.    def hit_count
  8.      name = @name.split(/_/)[1]
  9.      return name != nil ? name.to_i.abs : 0
  10.    end
  11. end
  12. class Sprite < ::Sprite
  13.    def effect?
  14.      @_whiten_duration > 0 or
  15.      @_appear_duration > 0 or
  16.      @_escape_duration > 0 or
  17.      @_animation_duration > 0
  18.    end
  19.    def damage_effect?
  20.      @_damage_duration > 0 or
  21.      @_collapse_duration > 0
  22.    end
  23. end
  24. end
  25. class Spriteset_Battle
  26. def damage_effect?
  27.    for sprite in @enemy_sprites + @actor_sprites
  28.      return true if sprite.damage_effect?
  29.    end
  30.    return false
  31. end
  32. end  
  33. class Scene_Battle
  34. alias sailcat_update_phase4_step1 update_phase4_step1
  35. alias sailcat_make_skill_action_result make_skill_action_result
  36. alias sailcat_update_phase4_step5 update_phase4_step5
  37. def update_phase4_step1
  38.    @hit_count = 0
  39.    sailcat_update_phase4_step1
  40. end
  41. def make_skill_action_result
  42.    sailcat_make_skill_action_result
  43.    @hit_count = @skill.hit_count
  44. end
  45. def update_phase4_step5
  46.    sailcat_update_phase4_step5
  47.    if @hit_count > 0
  48.      for target in @target_battlers.clone
  49.        if target.dead?
  50.          if @target_battlers.size > 1
  51.            @target_battlers.delete(target)
  52.          else
  53.            @target_battlers.delete(target)
  54.            if target.is_a?(Game_Enemy)
  55.              target = $game_troop.smooth_target_enemy(target.index)
  56.            else
  57.              target = $game_party.smooth_target_actor(target.index)
  58.            end
  59.            if target.is_a?(Game_Battler)
  60.              @target_battlers.push(target)
  61.            end
  62.          end
  63.        end
  64.      end
  65.      if @target_battlers.size == 0
  66.        return
  67.      end
  68.      for target in @target_battlers
  69.        if target.damage != nil
  70.          @phase4_step = 5
  71.          return
  72.        end
  73.        target.skill_effect(@active_battler, @skill)
  74.      end
  75.      # 如果你应用了23种战斗特效的公共事件版脚本请去掉下面几行的注释
  76.       if @common_event_id > 0
  77.         common_event = $data_common_events[@common_event_id]
  78.         $game_system.battle_interpreter.setup(common_event.list, 0)
  79.       end
  80.      @hit_count -= 1
  81.      @phase4_step = 3
  82.    end
  83. end
  84. end
复制代码
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 12:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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