Project1

标题: 如何制作连击武器 [打印本页]

作者: zxc3824    时间: 2012-9-17 17:48
标题: 如何制作连击武器
连击武器,就是那种连续攻击两次的

普通攻击,并且造成两次伤害,求大神
作者: 怪蜀黍    时间: 2012-9-18 16:17
本帖最后由 protosssonny 于 2012-9-18 16:26 编辑

今天有时间,帮你设计了一个。
话说P叔不是只回答VX区的问题的吗
今天怎么来XP区抢生意啦
嗷呜,还不是因为上次在XP区回答了你的问题,结果被hcm评了好人卡,真呀真高兴,于是今天P叔又来XP区抢生意啦。
P叔真坏
范例在这里: Project1.rar (188.12 KB, 下载次数: 446)
范例中阿尔西斯的武器具有连击属性;8号敌人天使也具有连击属性。
脚本在这里,XP的脚本和VX的有很多不同,真难写:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ P叔的连续攻击系统[只适用于RMXP]                       作者:protosssonny
  3. #------------------------------------------------------------------------------
  4. # 说明:此连续攻击系统不但可以给武器设计连击属性,而且可以给敌人设计连击属性。
  5. #------------------------------------------------------------------------------                                                         
  6. # 转载请保留脚本来源:[url]www.66RPG.com[/url]
  7. #==============================================================================
  8.  
  9. module P
  10. # 这里设定连续攻击武器,只要勾选此属性的武器都将连续攻击,只要此属性有效度
  11. # 为“F”的敌人也会连续攻击。默认连击属性为ID等于17的属性。
  12.   ATEID = 17
  13. end
  14.  
  15. #==============================================================================
  16. # ■ Scene_Battle (分割定义 4)
  17. #------------------------------------------------------------------------------
  18. #  处理战斗画面的类。
  19. #==============================================================================
  20.  
  21. class Scene_Battle
  22.   attr_accessor :twice_attack                  # 连击标志
  23.   #--------------------------------------------------------------------------
  24.   # ● 刷新画面 (主回合)
  25.   #--------------------------------------------------------------------------
  26.   def update_phase4
  27.     case @phase4_step
  28.     when 1
  29.       update_phase4_step1
  30.       if @active_battler
  31.         judge_twice_attack
  32.       else
  33.         @twice_attack = false
  34.       end  
  35.     when 2
  36.       update_phase4_step2
  37.     when 3
  38.       update_phase4_step3
  39.     when 4
  40.       update_phase4_step4
  41.     when 5
  42.       update_phase4_step5
  43.     when 6
  44.       update_phase4_step6
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 判断连续攻击
  49.   #--------------------------------------------------------------------------
  50.   def judge_twice_attack
  51.     if @active_battler.current_action.kind == 0
  52.       if @active_battler.is_a?(Game_Enemy)
  53.         if $data_enemies[@active_battler.id].element_ranks[P叔::ATEID] == 6
  54.           @twice_attack = true
  55.         end
  56.       end
  57.       if @active_battler.is_a?(Game_Actor)
  58.         if $data_weapons[@active_battler.weapon_id].element_set.include?(P叔::ATEID)
  59.           @twice_attack = true
  60.         end
  61.       end
  62.     end  
  63.   end  
  64.   #--------------------------------------------------------------------------
  65.   # ● 刷新画面 (主回合步骤 5 : 显示伤害)
  66.   #--------------------------------------------------------------------------
  67.   def update_phase4_step5
  68.     # 隐藏帮助窗口
  69.     @help_window.visible = false
  70.     # 刷新状态窗口
  71.     @status_window.refresh
  72.     # 显示伤害
  73.     for target in @target_battlers
  74.       if target.damage != nil
  75.         target.damage_pop = true
  76.       end
  77.     end
  78.     if judge
  79.       # 胜利或者失败的情况下 : 过程结束
  80.       return
  81.     end
  82.     if @twice_attack
  83.       # 移至步骤 2
  84.       @phase4_step = 2
  85.       @twice_attack = false
  86.     else
  87.       # 移至步骤 6
  88.       @phase4_step = 6
  89.     end  
  90.   end
  91. end  
  92.  
  93. #==============================================================================
  94. # ■ Game_Enemy
  95. #------------------------------------------------------------------------------
  96. #  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
  97. # 内部使用。
  98. #==============================================================================
  99.  
  100. class Game_Enemy < Game_Battler
  101.   #--------------------------------------------------------------------------
  102.   # ● 获取属性修正值
  103.   #     element_id : 属性 ID
  104.   #--------------------------------------------------------------------------
  105.   def element_rate(element_id)
  106.     # 获取对应属性有效度的数值
  107.     table = [0,200,150,100,50,0,-100]
  108.     result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
  109.     result = 100 if element_id == P叔::ATEID
  110.     # 状态能防御本属性的情况下效果减半
  111.     for i in @states
  112.       if $data_states[i].guard_element_set.include?(element_id)
  113.         result /= 2
  114.       end
  115.     end
  116.     # 过程结束
  117.     return result
  118.   end
  119. end

作者: zxc3824    时间: 2012-9-19 12:28
protosssonny 发表于 2012-9-18 16:17
今天有时间,帮你设计了一个。
话说P叔不是只回答VX区的问题的吗
今天怎么来XP区抢生意啦{:4_147: ...

呜呜~~~~~~~~~~~下载下来说压缩包坏了
作者: zxc3824    时间: 2012-9-20 22:11
protosssonny 发表于 2012-9-18 16:17
今天有时间,帮你设计了一个。
话说P叔不是只回答VX区的问题的吗
今天怎么来XP区抢生意啦{:4_147: ...


5555555555………………怎么认可不了答案了

版主帮忙给P叔叔认可一个吧
作者: zxc3824    时间: 2012-9-20 22:19
zxc3824 发表于 2012-9-20 22:11
5555555555………………怎么认可不了答案了

版主帮忙给P叔叔认可一个吧

P蜀黍,明明设置成悬赏请教的,怎么没了悬赏的




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