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

Project1

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

[已经过期] 武器爆发特技的脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
336 小时
注册时间
2010-8-26
帖子
428
跳转到指定楼层
1
发表于 2010-9-22 01:08:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 小幽的马甲 于 2010-9-22 11:39 编辑
  1. #==============================================================================
  2. # ** 武器爆发特技
  3. #------------------------------------------------------------------------------
  4. #  作者:Dargor
  5. #  更新:2008.04.03
  6. #  版本:1.2
  7. #  汉化:DeathKing
  8. #------------------------------------------------------------------------------
  9. #  说明:
  10. #   - 修改模块内容,实现特效
  11. #  更新历史:
  12. #   - 1.0 (2008.02.03), 发布初始版本
  13. #   - 1.1 (2008.04.03), 添加了对二刀流的支持
  14. #   - 1.2 (2008.04.03), 兼容“战斗狂暴”脚本
  15. #  P.S.
  16. #   - two_swords 原来是指“二刀流”,如此啊……
  17. #==============================================================================

  18. #==============================================================================
  19. #  ** Weapon Unleash 构造
  20. #==============================================================================

  21. module Weapon_Unleash
  22.   # 可以爆发特技的武器编号
  23.   Weapons = [1,2,3]
  24.   # 武器编号与爆发特技的对应关系
  25.   # 语法: 武器id => 技能id
  26.   Skill = {
  27.               1 => 59,
  28.               2 => 82
  29.             }
  30.   # 默认爆发技能        
  31.   Skill.default = 1
  32.   # 爆发特技的百分数
  33.   # 语法: 武器id => 百分比
  34.   Rate = {
  35.               1 => 100,
  36.               2 => 100
  37.              }
  38.   # 默认爆发几率
  39.   Rate.default = 25         
  40. end

  41. # 武器爆发特技时的文本
  42. Vocab::WeaponUnleash = "%s的%s爆发出%s!"

  43. #==============================================================================
  44. # ** Game_Actor
  45. #------------------------------------------------------------------------------
  46. #  这个类处理角色相关信息。
  47. #==============================================================================

  48. class Game_Actor < Game_Battler
  49.   #--------------------------------------------------------------------------
  50.   # * 获取普通攻击动画id
  51.   #--------------------------------------------------------------------------
  52.   def atk_animation_id
  53.     if two_swords_style
  54.       return weapons[0].animation_id if weapons[0] != nil
  55.       return weapons[1] == nil ? 1 : 1
  56.     else
  57.       return weapons[0] == nil ? 1 : weapons[0].animation_id
  58.     end
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # * 获取普通攻击动画id2(二刀流?)
  62.   #--------------------------------------------------------------------------
  63.   def atk_animation_id2
  64.     if two_swords_style
  65.       return weapons[1] == nil ? 1 : weapons[1].animation_id
  66.     else
  67.       return 1
  68.     end
  69.   end
  70. end

  71. #==============================================================================
  72. # ** Scene_Battle
  73. #------------------------------------------------------------------------------
  74. #  这个类用于处理场景
  75. #==============================================================================

  76. class Scene_Battle < Scene_Base
  77.   #--------------------------------------------------------------------------
  78.   # * 为函数定义别名
  79.   #--------------------------------------------------------------------------
  80.   alias dargor_execute_action_attack execute_action_attack
  81.   #--------------------------------------------------------------------------
  82.   # * 执行战斗
  83.   #--------------------------------------------------------------------------
  84.   def execute_action_attack
  85.     # 执行武器爆发检查
  86.     if @active_battler.is_a?(Game_Actor)
  87.       weapon = @active_battler.weapons[0]
  88.       if weapon_can_unleash?(weapon)
  89.         # 执行武器1爆发检查
  90.         execute_action_weapon_unleash(weapon)
  91.       else
  92.         # 执行武器1的普通攻击
  93.         execute_specific_action_attack(1)
  94.       end
  95.       # 如果是二刀流
  96.       if @active_battler.two_swords_style
  97.         weapon = @active_battler.weapons[1]
  98.         if weapon_can_unleash?(weapon)
  99.           # 执行武器2的爆发检查
  100.           execute_action_weapon_unleash(weapon)
  101.         else
  102.           # 执行武器2的普通攻击
  103.           execute_specific_action_attack(2)
  104.         end
  105.       end   
  106.     # 执行普通攻击
  107.     else
  108.       dargor_execute_action_attack
  109.     end
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # * 执行具体攻击动作
  113.   #     weapon : 角色武器 (1 或 2)
  114.   #--------------------------------------------------------------------------
  115.   def execute_specific_action_attack(weapon)
  116.     if weapon == 1
  117.       animation = @active_battler.atk_animation_id
  118.     end
  119.     if weapon == 2
  120.       animation = @active_battler.atk_animation_id2
  121.     end
  122.     text = sprintf(Vocab::DoAttack, @active_battler.name)
  123.     @message_window.add_instant_text(text)
  124.     targets = @active_battler.action.make_targets
  125.     display_normal_animation(targets, animation)
  126.     wait(30)
  127.     for target in targets
  128.       target.attack_effect(@active_battler)
  129.       display_action_effects(target)
  130.     end
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # * 执行武器爆发特技
  134.   #--------------------------------------------------------------------------
  135.   def execute_action_weapon_unleash(weapon)
  136.     skill = $data_skills[Weapon_Unleash::Skill[weapon.id]]
  137.     skill = $data_skills[Weapon_Unleash::Skill.default] if skill.nil?
  138.     weapon_name = weapon.name
  139.     text = sprintf(Vocab::WeaponUnleash, @active_battler.name, weapon_name, skill.name)
  140.     @message_window.add_instant_text(text)
  141.     targets = @active_battler.action.make_targets
  142.     display_animation(targets, skill.animation_id)
  143.     for target in targets
  144.       target.skill_effect(@active_battler, skill)
  145.       display_action_effects(target, skill)
  146.       @message_window.back_to(0)
  147.     end
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # * 判断是否可爆发
  151.   #--------------------------------------------------------------------------
  152.   def weapon_can_unleash?(weapon)
  153.     return false if @active_battler.is_a?(Game_Enemy)
  154.     return false unless Weapon_Unleash::Weapons.include?(weapon.id)
  155.     rate = Weapon_Unleash::Rate[weapon.id]
  156.     rate = Weapon_Unleash::Rate.default if rate.nil?
  157.     random = rand(100)
  158.     return random <= rate
  159.   end
  160. end
复制代码
我发现这和Sideview的脚本有冲哭,我像问下是改哪里才行?没人回答就当分享吧

Lv1.梦旅人

梦石
0
星屑
85
在线时间
424 小时
注册时间
2009-8-3
帖子
984
3
发表于 2010-9-22 11:38:40 | 只看该作者
我记得KGC有个,那个兼容性比较好
回复 支持 反对

使用道具 举报

Lv1.梦旅人

水土火风重逢处

梦石
0
星屑
234
在线时间
691 小时
注册时间
2010-7-17
帖子
3042
2
发表于 2010-9-22 09:55:05 | 只看该作者
First,脚本最好用代码发出来
Second,我也不懂脚本
独坐望城,望断天涯
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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