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

Project1

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

[已经解决] 组合键连续技能如何达到这种效果?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
244 小时
注册时间
2010-6-19
帖子
95
跳转到指定楼层
1
 楼主| 发表于 2013-2-2 17:03:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 mmmkly 于 2013-2-18 00:15 编辑

就是下面这个组合键脚本,我想要的效果在脚本中应该比较明了,就是使用50号技能按不同的顺序按键会有不同的技能出现,可是像我这样好像不行,求助,怎样才能达到这样的效果?
  1. #==============================================================================
  2. #   组合键连续特技系统 By 绿发的Eclair
  3. #==============================================================================
  4. #   仿传说系列的效果,在使用一个特技中按照一定的顺序摁键可以再使用一个特技。
  5. #   使用方法:在下面的自定义部分里设定特技对应的组合键和连接上的特技。
  6. #   为了避免玩家二周目或者提前知道的情况下一开始就是用强力连续技能的事情发生,
  7. #   特别做了判断,只有$chain这个数组包括的技能才会被连出来。
  8. #   事件脚本中使用 add_chain(可以连出来的特技ID) 可以给这个数组添加新特技。
  9. #   就好像“学会新的”一样。
  10. #==============================================================================
  11. $chain = [40,41,42,43,91,92,93,94,95,96,97,98]#可以使用的连续技
  12. module RPG
  13. class Skill
  14.   def chain
  15.   ############################################################自定义部分
  16.   case id
  17.    when 1                #有连续效果技能的ID,57就是"十字斩"
  18.     chain = ["A","B","A","B"] #连续技能的摁键,一定要写成数组,用英文半角逗号来隔开
  19.     chain_id = 40                                 
  20.   when 4                 #使用技能为灵魂裂隙
  21.     chain = ["上","下","左","右","A"] #输入键顺序为"上下左右"
  22.     chain_id = 41         
  23.   when 3                 #使用技能为千裂斩
  24.     chain = ["上","上","A"] #输入魂斗罗的作弊码 :)
  25.     chain_id = 42
  26.   when 2                 #使用技能为千裂斩
  27.     chain = ["左","右","左","右","A"] #输入魂斗罗的作弊码 :)
  28.     chain_id = 43
  29.   when 50                 
  30.     chain = ["上","上","A"]#输入魂斗罗的作弊码 :)
  31.     chain_id = 91
  32.   when 50                 
  33.     chain = ["下","下","A"]#输入魂斗罗的作弊码 :)
  34.     chain_id = 92
  35.   when 50                 
  36.     chain = ["左","左","A"]#输入魂斗罗的作弊码 :)
  37.     chain_id = 93
  38.   when 50                 
  39.     chain = ["右","右","A"]#输入魂斗罗的作弊码 :)
  40.     chain_id = 94
  41.   when 50                 
  42.     chain = ["上","下","A"]#输入魂斗罗的作弊码 :)
  43.     chain_id = 95
  44.   when 50                 
  45.     chain = ["下","上","A"]#输入魂斗罗的作弊码 :)
  46.     chain_id = 96
  47.   when 50                 
  48.     chain = ["左","右","A"]#输入魂斗罗的作弊码 :)
  49.     chain_id = 97
  50.   when 50                 
  51.     chain = ["右","左","A"]#输入魂斗罗的作弊码 :)
  52.     chain_id = 98

  53.    
  54.   #在这里按照上面的格式添加  
  55.   #when n  
  56.   #chain = ["第一个摁键","第二个摁键","第三个摁键"]
  57.   #chain_id = 连接技能的ID
  58.   
  59.   
  60.   ############################################################
  61.   else
  62.     chain = []
  63.     chain_id = 0
  64.   end
  65.    return [chain,chain_id]
  66.   end
  67. end
  68. end
  69. class Interpreter
  70.   def add_chain(id)
  71.     $chain.push(id)
  72.   end
  73. end
  74. class Scene_Battle
  75.   alias update_phase4_step1_2 :update_phase4_step1
  76.   def update_phase4_step1
  77.     @result = [] if @result == nil
  78.     update_phase4_step1_2
  79.   end
  80.   alias update_e :update
  81.   def update
  82.     if (@phase4_step == 3 or @phase4_step == 4 or @phase4_step == 5) && @active_battler.current_action.kind == 1
  83.       @use = @active_battler.current_action.kind == 1 && $data_skills[@active_battler.current_action.skill_id].chain != [[],0] && $chain.include?($data_skills[@active_battler.current_action.skill_id].chain[1])
  84.     if @use == true and $data_skills[@active_battler.current_action.skill_id].chain != [[],0]
  85.        @use = $data_skills[$data_skills[@active_battler.current_action.skill_id].chain[1]].sp_cost <= @active_battler.sp
  86.     end
  87.     if @use == true
  88.    if Input.trigger?(Input::A)
  89.      @result.push("A")
  90.    end
  91.    if Input.trigger?(Input::B)
  92.      @result.push("B")
  93.    end
  94.    if Input.trigger?(Input::C)
  95.      @result.push("C")
  96.    end
  97.    if Input.trigger?(Input::X)
  98.      @result.push("X")
  99.    end
  100.    if Input.trigger?(Input::Y)
  101.      @result.push("Y")
  102.    end
  103.    if Input.trigger?(Input::Z)
  104.      @result.push("Z")
  105.    end
  106.    if Input.trigger?(Input::L)
  107.      @result.push("L")
  108.    end
  109.    if Input.trigger?(Input::R)
  110.      @result.push("R")
  111.    end
  112.    if Input.trigger?(Input::UP)
  113.      @result.push("上")
  114.    end
  115.    if Input.trigger?(Input::DOWN)
  116.      @result.push("下")
  117.    end
  118.    if Input.trigger?(Input::LEFT)
  119.      @result.push("左")
  120.    end
  121.    if Input.trigger?(Input::RIGHT)
  122.      @result.push("右")
  123.    end
  124.    end
  125. end
  126.   if @phase == 4 and @phase4_step > 5 and @active_battler.current_action.kind == 1 and @use == true
  127.   if @result == $data_skills[@active_battler.current_action.skill_id].chain[0]
  128.     @active_battler.current_action.kind = 1
  129.     a = $data_skills[@active_battler.current_action.skill_id].chain[1]
  130.     @active_battler.current_action.skill_id = a
  131.     @action_battlers.unshift(@active_battler)
  132.     update_phase4_step1
  133.   end
  134. end
  135. update_e
  136. end
  137.   #--------------------------------------------------------------------------
  138.   # ● 生成特技行动结果
  139.   #--------------------------------------------------------------------------
  140.   def make_skill_action_result
  141.     # 获取特技
  142.     [url=home.php?mod=space&uid=260100]@skill[/url] = $data_skills[@active_battler.current_action.skill_id]
  143.     # 如果不是强制行动
  144.     unless @active_battler.current_action.forcing || @result != nil && [] #Eclair
  145.       # 因为 SP 耗尽而无法使用的情况下
  146.       unless @active_battler.skill_can_use?(@skill.id)
  147.         # 清除强制行动对像的战斗者
  148.         $game_temp.forcing_battler = nil
  149.         # 移至步骤 1
  150.         @phase4_step = 1
  151.         return
  152.       end
  153.     end
  154.     @result = [] #Eclair
  155.     # 消耗 SP
  156.     @active_battler.sp -= @skill.sp_cost
  157.     # 刷新状态窗口
  158.     @status_window.refresh
  159.     # 在帮助窗口显示特技名
  160.     @help_window.set_text(@skill.name, 1)
  161.     # 设置动画 ID
  162.     @animation1_id = @skill.animation1_id
  163.     @animation2_id = @skill.animation2_id
  164.     # 设置公共事件 ID
  165.     @common_event_id = @skill.common_event_id
  166.     # 设置对像侧战斗者
  167.     set_target_battlers(@skill.scope)
  168.     # 应用特技效果
  169.     for target in @target_battlers
  170.       target.skill_effect(@active_battler, @skill)
  171.     end
  172.   end
  173. end
  174. #==============================================================================
  175. #   组合键连续特技系统 By 绿发的Eclair
  176. #==============================================================================
复制代码
没事做个游戏
暗黑-外传
剧情:■■■■■□□□□□
脚本:■■■■■■■■■□
素材:■■■■■■■■■■
地图:■■■■■■■■■□
系统:■■■■■■■■□□
整体完成度:■■■■■■■□□□
发布日期:未知
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
660
在线时间
15 小时
注册时间
2013-1-19
帖子
4
2
发表于 2013-2-2 19:12:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
244 小时
注册时间
2010-6-19
帖子
95
3
 楼主| 发表于 2013-2-3 22:07:22 手机端发表。 | 只看该作者
看来很复杂噢。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
244 小时
注册时间
2010-6-19
帖子
95
4
 楼主| 发表于 2013-2-8 21:43:07 | 只看该作者
没有人会吗?
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

5
发表于 2013-2-8 23:06:22 | 只看该作者
其实不难,首先建多几个数组纪录键位,在下面判断按键的位置加多个判断,新建了几个数组判断几次,然后俺这做好一个范例了,可俺现在在家上不到网……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
244 小时
注册时间
2010-6-19
帖子
95
6
 楼主| 发表于 2013-2-10 16:32:47 手机端发表。 | 只看该作者
弗雷德 发表于 2013-2-8 23:06 其实不难,首先建多几个数组纪录键位,在下面判断按键的位置加多个判断,新建了几个数组判断几次,然后俺这 ...

麻烦一下,谢谢了,这个我等了很久了,自己一直在尝试,一直没弄出来
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-29 19:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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