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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: taeckle
打印 上一主题 下一主题

[已经解决] 请教在状态50下使用攻击技能100结束后几率使用技能101再次...

[复制链接]

Lv5.捕梦者

梦石
0
星屑
33178
在线时间
10489 小时
注册时间
2009-3-15
帖子
4756
11
发表于 2019-7-19 11:08:18 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. #   组合键连续特技系统 By 绿发的Eclair
  3. #==============================================================================
  4. #   仿传说系列的效果,在使用一个特技中按照一定的顺序摁键可以再使用一个特技。
  5. #   使用方法:在下面的自定义部分里设定特技对应的组合键和连接上的特技。
  6. #   为了避免玩家二周目或者提前知道的情况下一开始就是用强力连续技能的事情发生,
  7. #   特别做了判断,只有$chain这个数组包括的技能才会被连出来。
  8. #   事件脚本中使用 add_chain(可以连出来的特技ID) 可以给这个数组添加新特技。
  9. #   就好像“学会新的”一样。
  10. #==============================================================================
  11. $chain = [ ]#可以使用的连续技
  12. module RPG
  13. class Skill
  14.   def chain
  15.   ############################################################自定义部分
  16.   case id
  17.     when 87
  18.     chain = ["上"]
  19.     #chain = ["上","上","A"]
  20.     chain_id = 88
  21.  
  22.     #夏娜
  23.     when 98               
  24.     chain = ["下","右","A"]
  25.     chain_id = 97
  26.     when 97               
  27.     chain = ["下","右","A"]
  28.     chain_id = 99
  29.     when 99               
  30.     chain = ["下","右","下","右","A"]
  31.     chain_id = 103
  32.     when 102               
  33.     chain = ["下","左","B"]
  34.     chain_id = 100
  35.     when 100               
  36.     chain = ["下","左","B"]
  37.     chain_id = 101
  38.  
  39.     #咲
  40.     when 122               
  41.     chain = ["下","右","A"]
  42.     chain_id = 120
  43.     when 120               
  44.     chain = ["下","右","A"]
  45.     chain_id = 121
  46.     when 123               
  47.     chain = ["上","下","A"]
  48.     chain_id = 124
  49.     when 124               
  50.     chain = ["上","下","A"]
  51.     chain_id = 126
  52.     when 126               
  53.     chain = ["上","下","上","下","A"]
  54.     chain_id = 127
  55.  
  56.     #奈叶
  57.     when 140               
  58.     chain = ["下","右","A"]
  59.     chain_id = 138
  60.     when 138               
  61.     chain = ["下","右","A"]
  62.     chain_id = 137
  63.     when 139               
  64.     chain = ["下","左","B"]
  65.     chain_id = 141
  66.      when 137               
  67.     chain = ["下","右","下","右","A"]
  68.     chain_id = 142
  69.  
  70.     #菲特
  71.     when 154               
  72.     chain = ["下","左","B"]
  73.     chain_id = 153
  74.     when 153               
  75.     chain = ["下","左","B"]
  76.     chain_id = 151
  77.     when 151               
  78.     chain = ["下","左","B"]
  79.     chain_id = 152
  80.     when 155               
  81.     chain = ["下","右","A"]
  82.     chain_id = 156
  83.     when 152               
  84.     chain = ["下","左","下","右","B"]
  85.     chain_id = 157
  86.  
  87.     #路易斯  
  88.     when 168               
  89.     chain = ["上","上","A"]
  90.     chain_id = 167
  91.     when 167               
  92.     chain = ["上","上","A"]
  93.     chain_id = 170
  94.       when 170               
  95.     chain = ["下","下","下","下","A"]
  96.     chain_id = 171
  97.  
  98.     #伊卡洛斯
  99.     when 183              
  100.     chain = ["下","右","A"]
  101.     chain_id = 181
  102.     when 181              
  103.     chain = ["下","右","A"]
  104.     chain_id = 185
  105.     when 184              
  106.     chain = ["下","右","B"]
  107.     chain_id = 182
  108.      when 185              
  109.     chain = ["下","右","下","右","A"]
  110.     chain_id = 186
  111.  
  112.     #妮姆芙
  113.     when 197              
  114.     chain = ["下","下","B"]
  115.     chain_id = 200
  116.     when 200         
  117.     chain = ["下","下","B"]
  118.     chain_id = 201
  119.  
  120.     when 198              
  121.     chain = ["上","下","A"]
  122.     chain_id = 199
  123.     when 199              
  124.     chain = ["上","下","A"]
  125.     chain_id = 202
  126.      when 202              
  127.     chain = ["上","下","上","下","A"]
  128.     chain_id = 203
  129.  
  130.     #约修亚
  131.     when 213              
  132.     chain = ["上","下","A"]
  133.     chain_id = 215
  134.     when 215              
  135.     chain = ["上","下","上","下","A"]
  136.     chain_id = 857
  137.    when 857            
  138.     chain = ["上","下","上","下","左","右","左","右","A"]
  139.     chain_id = 858
  140.  
  141.  
  142.     when 217              
  143.     chain = ["上","下","B"]
  144.     chain_id = 214
  145.     when 214              
  146.     chain = ["上","下","B"]
  147.     chain_id = 216
  148.     when 216              
  149.     chain = ["上","下","上","下","B"]
  150.     chain_id = 856
  151.     when 856              
  152.     chain = ["上","下","上","下","左","右","左","右","B"]
  153.     chain_id = 859
  154. #艾丝蒂尔
  155.      when 227                 
  156.     chain = ["下","右","B"]
  157.     chain_id = 228   
  158.     when 228                 
  159.     chain = ["下","右","A"]
  160.     chain_id = 229        
  161.     when 229               
  162.     chain = ["下","左","A"]
  163.     chain_id = 230                                             
  164.    when 230               
  165.     chain = ["下","左","下","右","B"]
  166.     chain_id = 864
  167.    when 864               
  168.     chain = ["下","左","下","右","A"]
  169.     chain_id = 865
  170.      when 865               
  171.     chain = ["下","左","下","右","下","左","下","右","A"]
  172.     chain_id = 866   
  173.  
  174.  
  175.     #在这里按照上面的格式添加   
  176.   #when n   
  177.   #chain = ["第一个摁键","第二个摁键","第三个摁键"]
  178.   #chain_id = 连接技能的ID
  179.  
  180.  
  181.   ############################################################
  182.   else
  183.     chain = []
  184.     chain_id = 0
  185.   end
  186.    return [chain,chain_id]
  187.   end
  188. end
  189. end
  190. class Interpreter
  191.   def add_chain(id)
  192.     $chain.push(id)
  193.   end
  194. end
  195. class Scene_Battle
  196.   alias update_phase4_step1_2 :update_phase4_step1
  197.   def update_phase4_step1
  198.     @result = [] if @result == nil
  199.     update_phase4_step1_2
  200.   end
  201.   alias update_e :update
  202.   def update
  203.     if (@phase4_step == 3 or @phase4_step == 4 or @phase4_step == 5) && @active_battler.current_action.kind == 1
  204.       @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])  
  205.     if @use == true and $data_skills[@active_battler.current_action.skill_id].chain != [[],0]
  206.        @use = $data_skills[$data_skills[@active_battler.current_action.skill_id].chain[1]].sp_cost <= @active_battler.sp
  207.     end
  208.     if @use == true
  209.    if Input.trigger?(Input::A)
  210.      @result.push("A")
  211.    end
  212.    if Input.trigger?(Input::B)
  213.      @result.push("B")
  214.    end
  215.    if Input.trigger?(Input::C)
  216.      @result.push("C")
  217.    end
  218.    if Input.trigger?(Input::X)
  219.      @result.push("X")
  220.    end
  221.    if Input.trigger?(Input::Y)
  222.      @result.push("Y")
  223.    end
  224.    if Input.trigger?(Input::Z)
  225.      @result.push("Z")
  226.    end
  227.    if Input.trigger?(Input::L)
  228.      @result.push("L")
  229.    end
  230.    if Input.trigger?(Input::R)
  231.      @result.push("R")
  232.    end
  233.    if Input.trigger?(Input::UP)
  234.      @result.push("上")
  235.    end
  236.    if Input.trigger?(Input::DOWN)
  237.      @result.push("下")
  238.    end
  239.    if Input.trigger?(Input::LEFT)
  240.      @result.push("左")
  241.    end
  242.    if Input.trigger?(Input::RIGHT)
  243.      @result.push("右")
  244.    end
  245.    end
  246. end
  247.   if @phase == 4 and @phase4_step > 5 and @active_battler.current_action.kind == 1 and @use == true
  248.   if @result == $data_skills[@active_battler.current_action.skill_id].chain[0]
  249.     @active_battler.current_action.kind = 1
  250.     a = $data_skills[@active_battler.current_action.skill_id].chain[1]
  251.     @active_battler.current_action.skill_id = a
  252.     @action_battlers.unshift(@active_battler)
  253.     update_phase4_step1
  254.   end
  255. end
  256. update_e
  257. end
  258.   #--------------------------------------------------------------------------
  259.   # ● 生成特技行动结果
  260.   #--------------------------------------------------------------------------
  261.   def make_skill_action_result
  262.     # 获取特技
  263.     @skill = $data_skills[@active_battler.current_action.skill_id]
  264.  
  265.      #============================================================
  266.     #SP不足以支付对应特技的情况下,转为普通攻击(仅适用于敌人)
  267.     if @active_battler.is_a?(Game_Enemy) && @active_battler.sp < @skill.sp_cost #
  268.        # 设置攻击 ID
  269.       @animation1_id = @active_battler.animation1_id
  270.       @animation2_id = @active_battler.animation2_id
  271.         if @active_battler.restriction == 3
  272.           target = $game_troop.random_target_enemy
  273.         elsif @active_battler.restriction == 2
  274.           target = $game_party.random_target_actor
  275.         else
  276.           index = @active_battler.current_action.target_index
  277.           target = $game_party.smooth_target_actor(index)
  278.         end
  279.       # 设置对像方的战斗者序列
  280.       @target_battlers = [target]
  281.       # 应用通常攻击效果
  282.       for target in @target_battlers
  283.         target.attack_effect(@active_battler)
  284.       end
  285.       return
  286.     end
  287.     #============================================================
  288.  
  289.     # 如果不是强制行动
  290.     unless @active_battler.current_action.forcing || @result != nil && [] #Eclair
  291.       # 因为 SP 耗尽而无法使用的情况下
  292.       unless @active_battler.skill_can_use?(@skill.id)
  293.         # 清除强制行动对像的战斗者
  294.         $game_temp.forcing_battler = nil
  295.         # 移至步骤 1
  296.         @phase4_step = 1
  297.         return
  298.      end
  299.     end
  300.    if @skill.element_set.include?(20)      and   @active_battler.mp < 100
  301.     # return false
  302.     $game_temp.forcing_battler = nil
  303.         # 移至步骤 1
  304.         @phase4_step = 1
  305.         return
  306.      end
  307.     @result = [] #Eclair
  308.     # 消耗 SP
  309.     @active_battler.sp -= @skill.sp_cost
  310.    if @skill.element_set.include?(20) #★,消耗MP储存条
  311.            @active_battler.mp -= 100
  312.            @active_battler.mp += 1
  313.          end
  314.  
  315.  
  316.     # 刷新状态窗口
  317.     @status_window.refresh
  318.     # 在帮助窗口显示特技名
  319.     @help_window.set_text(@skill.name, 1)
  320.     # 设置动画 ID
  321.     @animation1_id = @skill.animation1_id
  322.     @animation2_id = @skill.animation2_id
  323.     # 设置公共事件 ID
  324.     @common_event_id = @skill.common_event_id
  325.     # 设置对像侧战斗者
  326.     set_target_battlers(@skill.scope)
  327.     # 应用特技效果
  328.     for target in @target_battlers
  329.       target.skill_effect(@active_battler, @skill)
  330.     end
  331.   end
  332. end
  333. #==============================================================================
  334. #   组合键连续特技系统 By 绿发的Eclair
  335. #==============================================================================


或且你研究一下这个脚本..
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
12
 楼主| 发表于 2019-7-21 17:19:27 | 只看该作者
soulsaga 发表于 2019-7-19 11:08
#==============================================================================
#   组合键连续特技 ...

大神你再帮我看看这个帖子是不是也跟咱的这个问题有联系:

https://rpg.blue/forum.php?mod=v ... p;page=1#pid2707512
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37799
在线时间
5402 小时
注册时间
2006-11-10
帖子
6546
13
发表于 2019-8-1 10:15:08 | 只看该作者
本帖最后由 灯笼菜刀王 于 2019-8-2 18:07 编辑

用公共事件就行了, 简单直接绿色无污染

  1. a=$scene.instance_variable_get(
  2. :@active_battler)
  3. b=$scene.instance_variable_get(
  4. :@target_battlers)
  5. return if b.all? {|i| !i.exist?}
  6. if rand(2) == 0
  7.   a.current_action.kind = 1
  8.   a.current_action.skill_id = 101
  9.   $game_temp.forcing_battler = a
  10. end
复制代码


把这段复制到公共事件里, 然后让100号技能调用它就OK了, 敌我都有效

不过之前还要做一件事, 到 game_actor 的脚本里, 找到 def skill_can_use? 这段, 它是用来限制"角色没学会的技能不能使用", 直接删了就行

评分

参与人数 1星屑 +100 +1 收起 理由
RyanBern + 100 + 1 认可答案

查看全部评分

回复 支持 0 反对 1

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
14
 楼主| 发表于 2019-8-1 20:36:57 | 只看该作者
灯笼菜刀王 发表于 2019-8-1 10:15
用公共事件就行了, 简单直接绿色无污染


多谢大神!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
15
 楼主| 发表于 2019-8-2 07:59:31 | 只看该作者
灯笼菜刀王 发表于 2019-8-1 10:15
用公共事件就行了, 简单直接绿色无污染

大神请问下在哪让100号攻击技能调用你写的这个公共事件啊?phase4_step3?
你这个脚本貌似没确定释放技能的目标就是上一次行动的目标啊?

点评

数据库  发表于 2019-8-2 09:43
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
16
 楼主| 发表于 2019-8-2 12:38:42 | 只看该作者
灯笼菜刀王 发表于 2019-8-1 10:15
用公共事件就行了, 简单直接绿色无污染

报告大神,发现了一个BUG,当使用第100号技能后把怪全部打完时会卡死..动不了了。。

点评

更新了上面的脚本, 重新复制下  发表于 2019-8-2 14:30
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
17
 楼主| 发表于 2019-8-2 15:31:13 | 只看该作者
taeckle 发表于 2019-8-2 12:38
报告大神,发现了一个BUG,当使用第100号技能后把怪全部打完时会卡死..动不了了。。 ...


大神就是大神,判定敌方或是我方是否还有人存在用3行就表达出来了,我这边用for语句写了半页纸..


回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
18
 楼主| 发表于 2019-8-3 00:48:28 | 只看该作者
灯笼菜刀王 发表于 2019-8-1 10:15
用公共事件就行了, 简单直接绿色无污染

报告大神,又发现了一个问题,目前的脚本貌似当敌方第1个NPC死亡后就不再触发连击了...

点评

发表于 2019-8-3 14:02
搜索 states_turn 尝试理解它的用途, 就会知道怎么调用剩余回合数  发表于 2019-8-3 12:06
多谢大神!那个计算某个状态剩余回合数大神可否也写两句让咱学习下啊  发表于 2019-8-3 11:57
"攻击目标死亡之后不发动" 如果要以全体为判定, b= 这句换成 b = a.is_a?(Game_Actor) ? $game_troop.enemies : $game_party.actors 注意手动换行  发表于 2019-8-3 11:49
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

19
发表于 2019-8-10 14:24:11 | 只看该作者
看看我签名里的《战斗调用公共事件》吧~
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-27 05:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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