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

Project1

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

[已经解决] 如何制作状态【连击】,让普通攻击造成两次打击

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
352 小时
注册时间
2013-9-24
帖子
137
跳转到指定楼层
1
发表于 2013-11-21 12:02:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
不是让攻击分段显示,而是真正普通攻击两次,命中暴击等等分别计算,类似仙剑一里【醉仙望月步】的效果

Lv4.逐梦者

梦石
0
星屑
8474
在线时间
1450 小时
注册时间
2012-6-6
帖子
349
2
发表于 2013-11-21 12:53:05 | 只看该作者
多生成一个角色行动序列,角色即可连续攻击两次
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
352 小时
注册时间
2013-9-24
帖子
137
3
 楼主| 发表于 2013-11-21 13:03:24 | 只看该作者
流浪杰哥 发表于 2013-11-21 12:53
多生成一个角色行动序列,角色即可连续攻击两次

怎么多生产角色行动序列啊。。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8474
在线时间
1450 小时
注册时间
2012-6-6
帖子
349
4
发表于 2013-11-21 14:03:01 | 只看该作者
本帖最后由 流浪杰哥 于 2013-11-21 14:07 编辑

前面一张只能阿尔西斯攻击两次,后面加个or以此类推其他人攻击两次
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8474
在线时间
1450 小时
注册时间
2012-6-6
帖子
349
5
发表于 2013-11-21 14:11:31 | 只看该作者
噢,不好意,你说的是状态的连击让普通攻击打两下啊???你的意思是勾选了那个状态,角色就可以攻击两下对吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
352 小时
注册时间
2013-9-24
帖子
137
6
 楼主| 发表于 2013-11-21 15:48:05 | 只看该作者
流浪杰哥 发表于 2013-11-21 14:11
噢,不好意,你说的是状态的连击让普通攻击打两下啊???你的意思是勾选了那个状态,角色就可以攻击两下对 ...

不是勾选,是在游戏里使用一个技能给该角色增加一个有益状态
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8474
在线时间
1450 小时
注册时间
2012-6-6
帖子
349
7
发表于 2013-11-21 21:27:13 | 只看该作者
mengjiyao123 发表于 2013-11-21 15:48
不是勾选,是在游戏里使用一个技能给该角色增加一个有益状态

抱歉,那我就解决不了了,我是脚本新手
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
352 小时
注册时间
2013-9-24
帖子
137
8
 楼主| 发表于 2013-11-22 09:21:34 | 只看该作者
流浪杰哥 发表于 2013-11-21 21:27
抱歉,那我就解决不了了,我是脚本新手

好吧,那还是多谢了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
59 小时
注册时间
2013-9-25
帖子
4
9
发表于 2013-11-22 09:51:25 | 只看该作者
  1. #==============================================================================
  2. # ■仿仙剑的群体攻击(鞭)、仙风云体步(仙女剑)以及敌人的双次攻击效果
  3. #------------------------------------------------------------------------------
  4. # 实现角色的攻击特点、武器的攻击特点、敌人的攻击特点  Ver 1.00
  5. #==============================================================================

  6. #用前须知
  7. #首先请搞清楚,群攻是指林月如的鞭系那种攻击对方全体的普通攻击;
  8. #仙风云体步是指赵灵儿用双剑攻击的每回合对同一敌人的两次普通攻击;
  9. #在这个仿仙剑一的版本中,敌人的仙风云体步设置为双次攻击效果

  10. #1.设置群体攻击的敌人,只需要在数据库敌人属性名字后面加后缀"@群攻"
  11. #2.设置仙风云体步的敌人,需要在数据库敌人属性名字后面加后缀"@@仙风"注意是两个"@"
  12. #3.如果一个敌人既是群攻又是仙风云体步,敌人属性名字后面加后缀"@群攻@仙风"

  13. #4.设置群体攻击的武器,只需要在数据库武器属性名字后面加后缀"@群攻"
  14. #5.设置仙风云体步的武器,需要在数据库敌人属性名字后面加后缀"@@仙风"同样注意是两个"@"
  15. #6.如果一件武器既是群攻又是仙风云体术,武器属性名字后面加后缀"@群攻@仙风"

  16. #7.如果有一个状态的效果是仙风云体术,请用下面的这个变量存储该状态的ID
  17. Xianfengstate = 18

  18.   #--------------------------------------------------------------------------
  19.   # ● 去后缀处理
  20.   #--------------------------------------------------------------------------
  21. class Window_Base < Window
  22.   def draw_item_name(item, x, y)
  23.     if item == nil
  24.       return
  25.     end
  26.     bitmap = RPG::Cache.icon(item.icon_name)
  27.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  28.     self.contents.font.color = normal_color
  29.     self.contents.draw_text(x + 28, y, 212, 32, item.name.split("@")[0])
  30.   end
  31. end

  32. class Game_Enemy < Game_Battler
  33.   def name
  34.     return $data_enemies[@enemy_id].name.split("@")[0]
  35.   end
  36.   def ifQungong
  37.     ###如果要改变敌人群体攻击属性的后缀,改下面
  38.     return $data_enemies[@enemy_id].name.split("@")[1] == "群攻"
  39.   end
  40.     def ifXianfeng
  41.     ###如果要改变敌人双次攻击属性的后缀,改下面
  42.     return $data_enemies[@enemy_id].name.split("@")[2] == "仙风"
  43.   end
  44. end
  45.   #--------------------------------------------------------------------------
  46.   # ● 重写攻击情况下的脚本
  47.   #--------------------------------------------------------------------------

  48. class Scene_Battle
  49.   #--------------------------------------------------------------------------
  50.   # ● 生成行动循序
  51.   #--------------------------------------------------------------------------
  52.   def make_action_orders
  53.     # 初始化序列 @action_battlers
  54.     @action_battlers = []
  55.     # 添加敌人到 @action_battlers 序列
  56.     for enemy in $game_troop.enemies
  57.       @action_battlers.push(enemy)
  58.       if enemy.ifXianfeng
  59.         @action_battlers.push(enemy)
  60.       end
  61.     end
  62.     # 添加角色到 @action_battlers 序列
  63.     for actor in $game_party.actors
  64.       @action_battlers.push(actor)
  65.       if (actor.current_action.basic == 0 and actor.restriction == 0 and  $data_weapons[actor.weapon_id].name.split("@")[2] == "仙风")
  66.         @action_battlers.push(actor)
  67.       else
  68.         if actor.state?(Xianfengstate)
  69.           @action_battlers.push(actor)
  70.         end
  71.       end
  72.     end
  73.     # 确定全体的行动速度
  74.     for battler in @action_battlers
  75.       battler.make_action_speed
  76.     end
  77.     # 按照行动速度从大到小排列
  78.     @action_battlers.sort! {|a,b|
  79.       b.current_action.speed - a.current_action.speed }
  80.   end

  81.   #--------------------------------------------------------------------------
  82.   # ● 生成基本行动结果
  83.   #--------------------------------------------------------------------------

  84.   def make_basic_action_result
  85.     # 攻击的情况下
  86.     if @active_battler.current_action.basic == 0
  87.       # 设置攻击 ID
  88.       @animation1_id = @active_battler.animation1_id
  89.       @animation2_id = @active_battler.animation2_id
  90.       # 行动方的战斗者是敌人的情况下
  91.       if @active_battler.is_a?(Game_Enemy)
  92.         if @active_battler.restriction == 3
  93.           target = $game_troop.random_target_enemy
  94.         elsif @active_battler.restriction == 2
  95.           target = $game_party.random_target_actor
  96.         else
  97.           index = @active_battler.current_action.target_index
  98.           target = $game_party.smooth_target_actor(index)
  99.         end
  100.       end
  101.       # 行动方的战斗者是角色的情况下
  102.       if @active_battler.is_a?(Game_Actor)
  103.         if @active_battler.restriction == 3
  104.           target = $game_party.random_target_actor
  105.         elsif @active_battler.restriction == 2
  106.           target = $game_troop.random_target_enemy
  107.         else
  108.           index = @active_battler.current_action.target_index
  109.           target = $game_troop.smooth_target_enemy(index)
  110.         end
  111.       end
  112.       # 设置对像方的战斗者序列
  113.       @target_battlers = [target]
  114.       # 如果敌人有“群攻”标记
  115.       if @active_battler.is_a?(Game_Enemy)
  116.         if @active_battler.ifQungong
  117.           if @active_battler.restriction == 0
  118.             @target_battlers = []
  119.             for target in $game_party.actors
  120.               if target.exist?
  121.                 @target_battlers.push(target)
  122.               end
  123.             end
  124.           end
  125.         end
  126.       end
  127.       # 如果角色标有群攻或者武器含有“群攻”标记
  128.       if @active_battler.is_a?(Game_Actor)
  129.         ###如果要改变武器群体攻击属性的后缀,改下面
  130.         if $data_weapons[@active_battler.weapon_id].name.split("@")[1] == "群攻"
  131.           if @active_battler.restriction == 0
  132.             @target_battlers = []
  133.             for target in $game_troop.enemies
  134.               if target.exist?
  135.                 @target_battlers.push(target)
  136.               end
  137.             end
  138.           end
  139.         end
  140.       end
  141.       # 应用通常攻击效果
  142.       for target in @target_battlers
  143.         target.attack_effect(@active_battler)
  144.       end
  145.       return
  146.     end
  147.     # 防御的情况下
  148.     if @active_battler.current_action.basic == 1
  149.       # 帮助窗口显示"防御"
  150.       @help_window.set_text($data_system.words.guard, 1)
  151.       return
  152.     end
  153.     # 逃跑的情况下
  154.     if @active_battler.is_a?(Game_Enemy) and
  155.        @active_battler.current_action.basic == 2
  156.       #  帮助窗口显示"逃跑"
  157.       @help_window.set_text("逃跑", 1)
  158.       # 逃跑
  159.       @active_battler.escape
  160.       return
  161.     end
  162.     # 什么也不做的情况下
  163.     if @active_battler.current_action.basic == 3
  164.       # 清除强制行动对像的战斗者
  165.       $game_temp.forcing_battler = nil
  166.       # 移至步骤 1
  167.       @phase4_step = 1
  168.       return
  169.     end
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ● 刷新画面 (主回合步骤 6 : 刷新)
  173.   #--------------------------------------------------------------------------
  174.   def update_phase4_step6
  175.     # 清除强制行动对像的战斗者
  176.     $game_temp.forcing_battler = nil
  177.     # 公共事件 ID 有效的情况下
  178.     if @common_event_id > 0
  179.       # 设置事件
  180.       common_event = $data_common_events[@common_event_id]
  181.       $game_system.battle_interpreter.setup(common_event.list, 0)
  182.     end
  183.    
  184.     ###为二次攻击者重新设置动作
  185.     if @active_battler.is_a?(Game_Enemy)
  186.       @active_battler.make_action
  187.     end
  188.    
  189.     # 移至步骤 1
  190.     @phase4_step = 1
  191.   end
  192. end
复制代码
我觉得这个应该就是你需要的脚本,正好我也在用,使用的时候把Xianfengstate = 18的数字改成需要的状态ID,然后附加上这个状态之后就能连续攻击两次了,无论是普通攻击还是技能。

评分

参与人数 2星屑 +120 收起 理由
myownroc + 60 认可答案
流浪杰哥 + 60 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
352 小时
注册时间
2013-9-24
帖子
137
10
 楼主| 发表于 2013-11-23 08:58:24 | 只看该作者
incubator 发表于 2013-11-22 09:51
我觉得这个应该就是你需要的脚本,正好我也在用,使用的时候把Xianfengstate = 18的数字改成需要的状态ID, ...

好的,多谢啦
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 04:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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