Project1

标题: 一个很弱鸡的技能书系统 [打印本页]

作者: cinderelmini    时间: 2016-1-8 15:37
标题: 一个很弱鸡的技能书系统
本帖最后由 cinderelmini 于 2016-1-10 15:43 编辑


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

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

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

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

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

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


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

职业限定



这里是分割线




兼容连击Ver.1



这里是分割线




兼容连击Ver.2

作者: y967    时间: 2016-1-10 22:15
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
复制代码





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