Project1

标题: va行走图横战脚本 [打印本页]

作者: timo    时间: 2013-4-22 19:42
标题: va行走图横战脚本
如题,求一个行走图的横战脚本,最好用修改的。。。。。(本人脚本痴)
作者: timo    时间: 2013-4-22 19:43
错了,最好不用修改的......
作者: 诺粞    时间: 2013-4-25 14:44
可以查阅本版的图书馆,有这个东西的~
作者: timo    时间: 2013-4-26 17:53
诺粞 发表于 2013-4-25 14:44
可以查阅本版的图书馆,有这个东西的~

求下链接
作者: 诺粞    时间: 2013-4-26 20:02
timo 发表于 2013-4-26 17:53
求下链接

就在置顶啊...
作者: 布里蓝    时间: 2013-4-27 06:16
http://rpg.blue/thread-236237-1-1.html
这个用起来超烦,你有能力的话可以试试
作者: 1142881837    时间: 2013-4-27 06:55
  1. #================================================= =============================
  2. #■此脚本来自[URL] www.66rpg.com [/ URL]
  3. #------------------------------------------------- -----------------------------
  4. #名称:横版战斗模板
  5. 作者:后知后觉([电子邮件] hzhj.tnt @ 163.com [/电子邮件])
  6. #版本:V1.7 2012-02-09
  7. #使用协议:在保留此脚本相关信息的情况下
  8. #可任意使用,修改及修改后发布。
  9. #如是修改后发布。请在作者标注那里加上某某某改等信息
  10. #感谢你来这里谈谈你对这个工程的看法或报告的BUG。
  11. #[URL] http://rpg.blue/thread-216673-1-1.html [/ URL]
  12. 使用说明:
  13. #请来发布帖查看:
  14. #[URL] http://rpg.blue/thread-216673-1-1.html [/ URL]
  15. #================================================= =============================

  16. 模块 Hzhj中
  17.   模块 HorizontalBattleSystem中
  18.     #
  19.     MaxBattleMembers = 4

  20.     ActorsBattlePosition = { }
  21.     #设置角色战斗图形的坐标
  22.     #等号左边的[]号里面的1 2 3 4查看角色在队伍里的位置
  23.     #等号右边的[]号里面的两个数字分别表示所述坐标Ÿ坐标
  24.     #每次进入战斗的时候都会以这里设置的信息作为初始化位置。
  25.     #如果你把上面的MaxBattleMembers改大了,比如改成了5。
  26.     那么你需要在下面新增一行代码设置队伍中第5位置的坐标。
  27.     #就像这样ActorsBattlePosition [5] = [X坐标,Y坐标]
  28.     ActorsBattlePosition [ 1 ] = [ 378,228 ]。
  29.     ActorsBattlePosition [ 2 ] = [ 422,272 ]。
  30.     ActorsBattlePosition [ 3 ] = [ 466,228 ]。
  31.     ActorsBattlePosition [ 4 ] = [ 510 272 ]

  32.     #设置伤害值的图形的色相取值范围0〜360
  33.     DamageBitmapHue = 0
  34.     #伤害值的分段显示的标志SE文件名
  35.     DamageSectionDisplaySEName =的“DamageSection”

  36.     #动画Ž坐标值默认变化量
  37.     DefaultAniAddZ = 768

  38.     #状态动画Ž坐标值默认变化量
  39.     DefaultLoopAniAddZ = 20

  40.     #战斗中角色的面向
  41.     ActorDirection = 4

  42.     #真位移的帧数
  43.     RealMoveDuration = 20
  44.     #真位移移动前会计算目标点。会获取攻防双方战斗图大小来进行计算。
  45.     下面2个是对战斗图宽度高度进行修正。
  46.     #为正则扩大为负则缩小。单位像素。
  47.     #
  48.     RealMoveBmpAddW = 0
  49.     RealMoveBmpAddH = 0

  50.     #使用技能,物品的过程默认使用RMVA模式
  51.     #在该模式下。本脚本提供的很多功能受限无法使用。
  52.     DefaultUseRmvaMode = FALSE

  53.     #默认显示敌人的HP条,MP条,TP条
  54.     DefaultDisplayEnemyBar = 真

  55.     #一张战斗图中有几个样式(帧格)
  56.     DynamicPatternMax = 4
  57.     #一张战斗图中的一个样式持续多少帧
  58.     OnePatternDuration = 15

  59.     #角色使用战斗死亡图形
  60.     UseActorDeadGraphic = 真
  61.     #敌人使用战斗死亡图形
  62.     UseEnemyDeadGraphic = FALSE

  63.     #使用挨打图形
  64.     UseBeatenGraphic = 真
  65.     #挨打图形维持帧数
  66.     BeatenGraphicDuration = 30

  67.     #是否使用角色防御图只有同时使用了挨打图。此​​项才有效。
  68.     UseActorGuardGraphic = 真
  69.     #是否使用敌人防御图只有同时使用了挨打图。此​​项才有效。
  70.     UseEnemyGuardGraphic = FALSE

  71.     #角色是否使用挨打SE
  72.     UseActorWBSE = 真
  73.     #敌人是否使用挨打SE
  74.     UseEnemyWBSE = 真
  75.     #角色是否使用防御SE
  76.     UseActorGDSE = 真
  77.     #敌人是否使用防御SE
  78.     UseEnemyGDSE = FALSE
  79.   结束
  80. 结束

  81. 角色扮演类::演员RPG :: BaseItem
  82.   DEF battler_name
  83.     返回 @ battler_name  除非 battler_name。零?
  84.     如果 / @ btname [ ( + ) \ / \ =〜@注解
  85.       返回 ( @ battler_name = 1美元。克隆)
  86.     其他
  87.       回报 ( @ battler_name = “#{@名} _#{@昵称}” )
  88.     结束
  89.   结束
  90.   DEF battler_hue
  91.     返回 @ battler_hue  ,除非 @ battler_hue的。零?
  92.     如果 / @ bthue \ [ ([ 0 -9 ] + ) \ ] / =〜@注解
  93.       返回 ( @ battler_hue = 1美元。to_i 绝对)
  94.     其他
  95.       返回 ( @ battler_hue = 0 )
  96.     结束
  97.   结束
  98.   attr_writer :battler_name
  99.   attr_writer :battler_hue
  100. 结束
  101. #================================================= =============================
  102. #■Game_Actor
  103. #================================================= =============================
  104. 类 Game_Actor <Game_Battler
  105.   #------------------------------------------------- -------------------------
  106.   ●属性(新增定义)
  107.   #------------------------------------------------- -------------------------
  108.   attr_writer    :battler_name              #战斗图形文件名
  109.   attr_writer    :battler_hue               #战斗图形色相
  110.   #------------------------------------------------- -------------------------
  111.   ●设置(追加定义)
  112.   #------------------------------------------------- -------------------------
  113.   别名 hzhj_old_setup_for_add_actor_battle_graphic设置
  114.   清晰度设置( actor_id )
  115.     hzhj_old_setup_for_add_actor_battle_graphic ( actor_id )
  116.     @ battler_name = battler_name演员。
  117.     @ battler_hue = battler_hue演员。
  118.   结束
  119.   #------------------------------------------------- -------------------------
  120.   ●是否使用活动块(重定义)
  121.   #------------------------------------------------- -------------------------
  122.   高清 use_sprite?
  123.     返回 真
  124.   结束
  125.   #------------------------------------------------- -------------------------
  126.   #●取得战斗画面所述坐标(新增定义)
  127.   #------------------------------------------------- -------------------------
  128.   DEF screen_x
  129.     返回 ActorsBattlePosition [指数+ 1 ] [ 0 ]
  130.   结束
  131.   #------------------------------------------------- -------------------------
  132.   ●取得战斗系Ÿ坐标(新增定义)
  133.   #------------------------------------------------- -------------------------
  134.   DEF screen_y
  135.     返回 ActorsBattlePosition [指数+ 1 ] [ 1 ]
  136.   结束
  137.   #------------------------------------------------- -------------------------
  138.   #●取得战斗画面Ž坐标(新增定义)
  139.   #------------------------------------------------- -------------------------
  140.   DEF screen_z
  141.     返回 real_screen_y + 100
  142.   结束
  143. 结束
  144. #================================================= =============================
  145. #■Game_Enemy
  146. #================================================= =============================
  147. 类 Game_Enemy <Game_Battler
  148.   #------------------------------------------------- -------------------------
  149.   ●属性(新增定义)
  150.   #------------------------------------------------- -------------------------
  151.   attr_writer    :battler_name              #战斗图形文件名
  152.   attr_writer    :battler_hue               #战斗图形色相
  153.   #------------------------------------------------- -------------------------
  154.   #●取得战斗画面Ž坐标(重定义)
  155.   #------------------------------------------------- -------------------------
  156.   DEF screen_z
  157.     返回 real_screen_y + 100
  158.   结束
  159. 结束
  160. #================================================= =============================
  161. #■Game_Party
  162. #================================================= =============================
  163. 类 Game_Party <Game_Unit
  164.   流包括 Hzhj :: HorizontalBattleSystem
  165.   #------------------------------------------------- -------------------------
  166.   ●取得参战角色的最大数(重定义)
  167.   #------------------------------------------------- -------------------------
  168.   DEF max_battle_members
  169.     返回 MaxBattleMembers的
  170.   结束
  171. 结束


  172.   DEF wait_subject_duration
  173.     返回 _AT_ wait_subject_duration的 ,除非 _AT_ wait_subject_duration的。为零?
  174.     如果 / @瓦特\ [ ( \ - ?\ D + ) \ ] / =〜@名
  175.       @ wait_subject_duration = 1美元。to_i
  176.     其他
  177.       @ wait_subject_duration 0
  178.     结束
  179.     返回 _AT_ wait_subject_duration的
  180.   结束
  181.   attr_writer :wait_subject_duration
  182. 结束
  183. 角色扮演类:: UsableItem RPG :: BaseItem
  184.   流包括 Hzhj :: HorizontalBattleSystem
  185.   DEF animation1_id
  186.     返回 @ animation1_id的 除非 @ animation1_id。为零?
  187.     如果 / @ a1id \ [ ( \ D + ) \ / I =〜@注解
  188.       返回 ( @ to_i animation1_id = 1美元。)
  189.     其他
  190.       返回 ( @ animation1_id = 0 )
  191.     结束
  192.   结束
  193.   DEF wljn
  194.     返回 @ wljn  除非 @ wljn。为零?
  195.     如果 / @ wljn / I =〜@注解
  196.       回报 ( @ wljn = TRUE )
  197.     其他
  198.       返回 ( @ wljn = FALSE )
  199.     结束
  200.   结束
  201.   DEF rmva_mode
  202.     返回 _AT_ rmva_mode的 除非 @ rmva_mode。零?
  203.     如果 / @ rmva / I =〜@注解
  204.       返回 ( @ rmva_mode =!DefaultUseRmvaMode )
  205.     其他
  206.       返回 ( @ rmva_mode DefaultUseRmvaMode )
  207.     结束
  208.   结束
  209.   attr_writer :animation1_id
  210.   attr_writer :wljn
  211.   attr_writer :rmva_mode
  212. 结束
  213. 角色扮演类::武器RPG :: EquipItem
  214.   DEF animation1_id
  215.     返回 @ animation1_id的 除非 @ animation1_id。为零?
  216.     如果 / @ a1id \ [ ( \ D + ) \ ] / =〜@注解
  217.       返回 ( @ to_i animation1_id = 1美元。)
  218.     其他
  219.       返回 ( @ animation1_id = 0 )
  220.     结束
  221.   结束
  222.   attr_writer :animation1_id
  223. 结束
  224. 类 RPG ::敌人 < RPG :: BaseItem
  225.   DEF animation1_id
  226.     返回 @ animation1_id的 除非 @ animation1_id。为零?
  227.     如果 / @ a1id \ [ ( \ D + ) \ ] / =〜@注解
  228.       返回 ( @ to_i animation1_id = 1美元。)
  229.     其他
  230.       返回 ( @ animation1_id = 0 )
  231.     结束
  232.   结束
  233.   DEF animation2_id
  234.     返回 @ animation2_id的 除非 @ animation2_id。为零?
  235.     如果 / @ a2id \ [ ( \ D + ) \ ] / =〜@注解
  236.       返回 ( @ to_i animation2_id = 1美元。)
  237.     其他
  238.       返回 ( @ animation2_id = 0 )
  239.     结束
  240.   结束
  241.   DEF animation3_id
  242.     返回 @ animation3_id的 除非 @ animation3_id。为零?
  243.     如果 / @ a3id \ [ ( \ D + ) \ ] / =〜@注解
  244.       返回 ( @ to_i animation3_id = 1美元。)
  245.     其他
  246.       返回 ( @ animation3_id = 0 )
  247.     结束
  248.   结束
  249.   attr_writer :animation1_id
  250.   attr_writer :animation2_id
  251.   attr_writer :animation3_id
  252. 结束
  253. #================================================= =============================
  254. #■Game_Actor
  255. #================================================= =============================
  256. 类 Game_Actor <Game_Battler
  257.   #------------------------------------------------- -------------------------
  258.   #●取得普通攻击的行动方动画ID(新增定义)
  259.   #------------------------------------------------- -------------------------
  260.   DEF animation1_id
  261.     如果 dual_wield?
  262.       返回武器[ 0 ]。animation1_id  如果武器[ 0 ]
  263.       返回武器[ 1 ]?武器[ 1 ]。animation1_id:0
  264.     其他
  265.       返回武器[ 0 ]?的武器[ 0 ]。animation1_id:0
  266.     结束
  267.   结束
  268. 结束
  269. #================================================= =============================
  270. #■Game_Enemy
  271. #================================================= =============================
  272. 类 Game_Enemy <Game_Battler
  273.   #------------------------------------------------- -------------------------
  274.   #●取得普通攻击的行动方动画ID(新增定义)
  275.   #------------------------------------------------- -------------------------
  276.   DEF animation1_id
  277.     返回敌人。animation1_id的
  278.   结束
  279.   #------------------------------------------------- -------------------------
  280.   #●取得普通攻击的动画ID(新增定义)
  281.   #------------------------------------------------- -------------------------
  282.   DEF atk_animation_id1
  283.     返回敌人。animation2_id的
  284.   结束
  285.   #------------------------------------------------- -------------------------
  286.   #●取得普通攻击的动画ID(二刀流武器2)(新增定义)
  287.   #------------------------------------------------- -------------------------
  288.   DEF atk_animation_id2
  289.     返回敌人。animation3_id的
  290.   结束
  291. 结束
  292. #================================================= =============================
  293. #■Scene_Battle
  294. #================================================= =============================
  295. 类 Scene_Battle <Scene_Base
  296.   流包括 Hzhj :: HorizontalBattleSystem
  297.   #------------------------------------------------- -------------------------
  298.   #●使用技能/物品(重定义)
  299.   #------------------------------------------------- -------------------------
  300.   DEF use_item
  301.     项目= @科目。current_action。项目
  302.     @ log_window display_use_item ( @课题,项目)
  303.     @主题use_item (项)
  304.     refresh_status
  305.     目标= @主题current_action的make_targets 紧凑
  306.     show_animation (目标,项目animation_id )
  307.   结束
  308.   #------------------------------------------------- -------------------------
  309.   ●显示动画(重定义)
  310.   #------------------------------------------------- -------------------------
  311.   DEF show_animation (目标,animation_id )
  312.     项目= @科目。current_action。项目
  313.     如果项目rmva_mode的
  314.       show_rmva_animation (目标,animation_id项)
  315.     其他
  316.       show_hzhj_animation (目标,animation_id项)
  317.     结束
  318.   结束
  319.   #------------------------------------------------- -------------------------
  320.   #●RMVA模式显示动画(新增定义)
  321.   #------------------------------------------------- -------------------------
  322.   :DEF show_rmva_animation (目标animation_id项目)
  323.     @主题。damage_section_displayed = 假
  324.     @主题not_damage_section = 真
  325.     目标,每个 目标
  326. = 假damage_section_displayed       的目标。
  327.       目标。not_damage_section = TRUE
  328.     结束
  329.     ,如果 animation_id < 0
  330.       show_attack_animation (目标)
  331.     其他
  332.       show_rmva_usable_animation (目标,animation_id项)
  333.     结束
  334.   结束
  335.   #------------------------------------------------- -------------------------
  336.   #●HZHJ模式显示动画(新增定义)
  337.   #------------------------------------------------- -------------------------
  338.   :DEF show_hzhj_animation (目标animation_id项目)
  339.     ,如果 animation_id < 0
  340.       show_hzhj_attack_animation (目标项目)
  341.     其他
  342.       如果项目wljn的
  343.         show_wljn_skill_animation (目标,animation_id项)
  344.       其他
  345.         show_magic_skill_animation (目标,animation_id项)
  346.       结束
  347.     结束
  348.   结束
  349.   #------------------------------------------------- -------------------------
  350.   ●HZHJ模式显示攻击动画(重定义)
  351.   #------------------------------------------------- -------------------------
  352.   :DEF show_hzhj_attack_animation (目标项目)
  353.     进制= [ ]
  354.     need_move = FALSE
  355.     动画1 = $ data_animations,[ @主题。animation1_id ]
  356. 如果     need_move =动画1。need_move 动画1
  357.     come_back = TRUE
  358.     目标。的each_with_index  做目标,我|
  359.       进制[ 0 ] =目标
  360.       项目重复做
  361.         接下来 ,如果目标死了吗?&&项损坏。类型 == 1
  362.         接下来 ,如果 @主题。死了吗?
  363.         未来, 如果 @主题。current_action
  364.         如果 need_move && come_back
  365.           come_back = FALSE
  366.           @主题目标,RealMoveDuration动画1 move_se setup_move_info ()
  367.           wait_for_move
  368.         结束
  369.         damage_target = hzhj_apply_item_effects (目标项)
  370.         show_subject_animation ( @科目。animation1_id )
  371.         show_normal_animation (进制,@主题。atk_animation_id1,假)
  372.         show_normal_animation (进制,@主题。atk_animation_id2的,真实)
  373.         等待@ log_window。
  374.         wait_for_animation
  375.         hzhj_invoke_item (目标,项目damage_target; )
  376.       结束
  377.       如果 need_move
  378.         如果目标!=目标[ í +1 ]  或目标。死了吗?
  379.           come_back = TRUE
  380.           @主体come_back_self_position ( RealMoveDuration )
  381.           wait_for_move
  382.         其他
  383.           come_back = FALSE
  384.         结束
  385.       结束
  386.     结束
  387.   结束
  388.   #------------------------------------------------- -------------------------
  389.   ●HZHJ模式显示物理技能类动画(新增定义)
  390.   #------------------------------------------------- -------------------------
  391.   :DEF show_wljn_skill_animation (目标animation_id项目)
  392.     进制= [ ]
  393.     need_move = FALSE
  394.     动画1 = $ data_animations,[项目。animation1_id ]
  395. 如果     need_move =动画1。need_move 动画1
  396.     come_back = TRUE
  397.     目标。的each_with_index  做目标,我|
  398.       进制[ 0 ] =目标
  399.       项目重复做
  400.         接下来 ,如果目标死了吗?&&项损坏。类型 == 1
  401.         接下来 ,如果 @主题。死了吗?
  402.         未来, 如果 @主题。current_action
  403.         如果 need_move && come_back
  404.           come_back = FALSE
  405.           @主题目标,RealMoveDuration动画1 move_se setup_move_info ()
  406.           wait_for_move
  407.         结束
  408.         damage_target = hzhj_apply_item_effects (目标项)
  409.         show_subject_animation (animation1_id项目。)
  410.         show_normal_animation (进制,animation_id,假)
  411.         等待@ log_window。
  412.         wait_for_animation
  413.         hzhj_invoke_item (目标,项目damage_target; )
  414.       结束
  415.       如果 need_move
  416.         如果目标!=目标[ í +1 ]  或目标。死了吗?
  417.           come_back = TRUE
  418.           @主体come_back_self_position ( RealMoveDuration )
  419.           wait_for_move
  420.         其他
  421.           come_back = FALSE
  422.         结束
  423.       结束
  424.     结束
  425.   结束
  426.   #------------------------------------------------- -------------------------
  427.   ●HZHJ模式显示魔法技能类动画(新增定义)
  428.   #------------------------------------------------- -------------------------
  429.   :DEF show_magic_skill_animation (目标animation_id项目)
  430.     进制= [ ]
  431.     damage_targets = { }
  432.     项目重复做
  433.       接下来 ,如果 @主题。死了吗?
  434.       未来, 如果 @主题。current_action
  435. 明确       进制。
  436.       damage_targets 清晰
  437.       目标,每个 目标
  438.         接下来 ,如果目标死了吗?&&项损坏。类型 == 1
  439.         进制<<目标
  440.         damage_targets [目标] = hzhj_apply_item_effects (目标,项目)
  441.       结束
  442.        如果进制。空?
  443.       show_subject_animation (animation1_id项目。)
  444.       show_normal_animation (叉,animation_id )
  445.       等待@ log_window。
  446.       wait_for_animation
  447.       进制。|目标|
  448.         hzhj_invoke_item (目标,项目,damage_targets [目标] )
  449.       结束
  450.       如果 [ 9,10 ]。包括(项目范围)?
  451.         进制。|目标|
  452.           如果目标还活着吗?
  453.             目标。come_back_self_position ( RealMoveDuration )
  454.           结束
  455.         结束
  456.         wait_for_move
  457.       结束
  458.     结束
  459.   结束
  460.   #------------------------------------------------- -------------------------
  461.   ●RMVA模式显示攻击动画(重定义)
  462.   #------------------------------------------------- -------------------------
  463.   :DEF show_attack_animation (的目标)
  464.     项目= @科目。current_action。项目
  465.     show_subject_animation ( @科目。animation1_id )
  466.     show_normal_animation (目标,@主题。atk_animation_id1,假)
  467.     show_normal_animation (目标,@主题。atk_animation_id2,真实)
  468.     等待@ log_window。
  469.     wait_for_animation
  470.     目标。{ |目标|项目重复。次{ invoke_item: (目标,项目)} }   
  471.   结束
  472.   #------------------------------------------------- -------------------------
  473.   ●RMVA模式显示技能,物品动画(新增定义)
  474.   #------------------------------------------------- -------------------------
  475.   :DEF show_rmva_usable_animation (目标animation_id项目)
  476.     show_subject_animation (animation1_id项目。)
  477.     show_normal_animation (目标,animation_id的)
  478.     等待@ log_window。
  479.     wait_for_animation
  480.     目标。{ |目标|项目重复。次{ invoke_item: (目标,项目)} }   
  481.     如果 [ 9,10 ]。包括(项目范围)?
  482.       目标,每个 目标
  483.         如果目标还活着吗?
  484.           目标。come_back_self_position ( RealMoveDuration )
  485.         结束
  486.       结束
  487.       wait_for_move
  488.     结束
  489.   结束
  490.   #------------------------------------------------- -------------------------
  491.   ●显示行动方动画(新增定义)
  492.   #------------------------------------------------- -------------------------
  493.   :DEF show_subject_animation (主题= @主题,animation_id 镜= FALSE )
  494.     动画= $ data_animations [ animation_id ]
  495.     如果动画
  496.       主题。animation_id = animation_id
  497.       主题animation_mirror =镜子
  498.       如果动画wait_subject_duration 0
  499.         wait_for_animation
  500.       ELSIF动画。wait_subject_duration > 0
  501.         动画wait_subject_duration,次{ update_for_wait }
  502.       结束
  503.     结束
  504.   结束
  505. 结束


  506.   流包括 Hzhj :: HorizontalBattleSystem
  507.   def ani_z_correction中
  508.     返回 _AT_ ani_z_correction的 ,除非 _AT_ ani_z_correction的。为零?
  509.     如果 / @ AZ \ [ ( \ - ?\ D + ) \ ] / =〜@名
  510.       返回 ( @ ani_z_correction = $ 1 to_i。)
  511.     其他
  512.       返回 ( @ ani_z_correction = DefaultAniAddZ )
  513.     结束
  514.   结束
  515.   def loop_z_correction中
  516.     返回 _AT_ loop_z_correction的 ,除非 _AT_ loop_z_correction的。为零?
  517.     如果 / @ LZ \ [ ( \ - ?\ d + ) \ ] / =〜@名字
  518.       返回 ( @ loop_z_correction = $ 1 to_i。)
  519.     其他
  520.       返回 ( @ loop_z_correction = DefaultLoopAniAddZ )
  521.     结束
  522.   结束
  523.   attr_writer :ani_z_correction
  524.   attr_writer :loop_z_correction
  525. 结束
  526. 角色扮演类::国家RPG :: BaseItem
  527.   DEF animation_id
  528.     返回 @ animation_id的 除非 @ animation_id。为零?
  529.     如果 / @援助\ [ ( \ d + ) \ ] / =〜@注解
  530.       返回 ( @ to_i animation_id = 1美元。)
  531.     其他
  532.       返回 ( @ animation_id = 0 )
  533.     结束
  534.   结束
  535.   attr_writer :animation_id
  536. 结束
  537. #================================================= =============================
  538. #■Game_BattlerBase
  539. #================================================= =============================
  540. 类 Game_BattlerBase
  541.   #------------------------------------------------- -------------------------
  542.   ●实例变量(新增定义)
  543.   #------------------------------------------------- -------------------------
  544.   attr_reader    :hzhj_add_state_id
  545.   attr_reader    :hzhj_remove_state_id
  546.   attr_accessor中:need_update_state_animation
  547.   #------------------------------------------------- -------------------------
  548.   ●初始化(追加定义)
  549.   #------------------------------------------------- -------------------------
  550.   的别名 hzhj_old_init_for_state_ani_game_battler_base初始化
  551.   DEF初始化
  552.     @ hzhj_add_state_id = [ ]
  553.     @ hzhj_remove_state_id = [ ]
  554.     _AT_ need_update_state_animation = 虚假
  555.     @ = [ ]
  556.     @ state_turns = { }
  557.     @ state_steps = { }
  558.     hzhj_old_init_for_state_ani_game_battler_base
  559.   结束
  560.   #------------------------------------------------- -------------------------
  561.   #●清除状态信息(追加定义)
  562.   #------------------------------------------------- -------------------------
  563.   别名 hzhj_old_clear_states_for_state_ani_game_battler_base clear_states
  564.   DEF clear_states
  565.     old_states = @ 克隆。
  566.     hzhj_old_clear_states_for_state_ani_game_battler_base
  567.     丙吉old_states | @状态
  568.      如果丙吉返回空?
  569.     set_add_state_id (丙吉&@ )
  570.     set_remove_state_id (丙吉old_states的)
  571.   结束
  572.   #------------------------------------------------- -------------------------
  573.   ●消除状态(追加定义)
  574.   #------------------------------------------------- -------------------------
  575.   别名 hzhj_old_erase_state_for_state_ani_game_battler_base erase_state
  576.   高清 erase_state ( STATE_ID )
  577.     old_states = @ 克隆。
  578.     hzhj_old_erase_state_for_state_ani_game_battler_base ( STATE_ID )
  579.     丙吉old_states | @状态
  580.      如果丙吉返回空?
  581.     set_add_state_id (丙吉&@ )
  582.     set_remove_state_id (丙吉old_states的)
  583.   结束
  584.   #--------------------------------------------------------------------------
  585.   ●设置增加的状态(新增定义)
  586.   #------------------------------------------------- -------------------------
  587.   高清 set_add_state_id ( zjdzt )
  588.     为我在 zjdzt的
  589.       如果 $ data_states [我]。animation_id > 0
  590.         如果 不 hzhj_add_state_id 包括(我)
  591.           hzhj_add_state_id 推(我)
  592.         结束
  593.       结束
  594.     结束
  595.   结束
  596.   #------------------------------------------------- -------------------------
  597.   ●设置解除的状态(新增定义)
  598.   #------------------------------------------------- -------------------------
  599.   高清 set_remove_state_id ( jsdzt )
  600.     为我在 jsdzt的
  601.       如果 $ data_states [我]。animation_id > 0
  602.         如果 不 hzhj_remove_state_id 包括(我)
  603.           ani_id = $ data_states [我]。animation_id
  604.           not_end_loop_animation = FALSE
  605.           自我状态。
  606.             状态。animation_id的 == ani_id
  607.               not_end_loop_animation = TRUE
  608.               打破
  609.             结束
  610.           结束
  611.           除非 not_end_loop_animation
  612.             hzhj_remove_state_id 推(我)
  613.           结束
  614.         结束
  615.       结束
  616.     结束
  617.   结束
  618. 结束
  619. #================================================= =============================
  620. #■Game_Battler
  621. #================================================= =============================
  622. 类 Game_Battler <Game_BattlerBase
  623.   #------------------------------------------------- -------------------------
  624.   ●附加新的状态(追加定义)
  625.   #------------------------------------------------- -------------------------
  626.   别名 hzhj_old_add_new_state_for_state_ani_game_battler add_new_state
  627.   高清 add_new_state ( STATE_ID )
  628.     old_states = @ 克隆。
  629.     hzhj_old_add_new_state_for_state_ani_game_battler ( STATE_ID )
  630.     丙吉old_states | @状态
  631.      如果丙吉返回空?
  632.     set_add_state_id (丙吉&@ )
  633.     set_remove_state_id (丙吉old_states的)
  634.   结束
  635. 结束
  636. #================================================= =============================
  637. #■Sprite_Base
  638. #================================================= =============================
  639. 类 Sprite_Base <雪碧
  640.   #------------------------------------------------- -------------------------
  641.   ●初始化(追加定义)
  642.   #------------------------------------------------- -------------------------
  643.   的别名 hzhj_old_init_for_state_ani_spr_base初始化
  644.   DEF初始化( *参数)
  645.     hzhj_old_init_for_state_ani_spr_base ( *参数)
  646.     @ hzhj_loop_animations = [ ]
  647.     @ hzhj_loop_durations = { }
  648.     @ hzhj_loop_sprites = { }
  649.     @ hzhj_loop_bitmap1s = { }
  650.     @ hzhj_loop_bitmap2s = { }
  651.     @ hzhj_loop_ani_oxs = { }
  652.     @ hzhj_loop_ani_oys = { }
  653.     @ flash_nil_duration 0
  654.   结束
  655.   #------------------------------------------------- -------------------------
  656.   ●释放(追加定义)
  657.   #------------------------------------------------- -------------------------
  658.   的别名 hzhj_old_dispose_for_state_ani_spr_base处置
  659.   DEF处置
  660.     dispose_loop_animation
  661.     hzhj_old_dispose_for_state_ani_spr_base
  662.   结束
  663.   #------------------------------------------------- -------------------------
  664.   #●设置动画的活动块(追加定义)
  665.   #------------------------------------------------- -------------------------
  666.   别名 hzhj_old_ani_set_spr_for_state_ani_spr_base animation_set_sprites
  667.   :DEF animation_set_sprites ( *参数)
  668.     hzhj_old_ani_set_spr_for_state_ani_spr_base ( *参数)
  669.     “@”ani_sprites“ 。每个{ |精灵|精灵。Ž + = @的动画。ani_z_correction }
  670.   结束
  671.   #------------------------------------------------- -------------------------
  672.   #●判断是否有循环动画(新增定义)
  673.   #------------------------------------------------- -------------------------
  674.   高清 loop_animation?
  675.     回报 (不“  @“hzhj_loop_animations” 。空吗?)
  676.   结束
  677.   #------------------------------------------------- -------------------------
  678.   ●开始播放循环动画(新增定义)
  679.   #------------------------------------------------- -------------------------
  680.   :DEF start_loop_animation (动画)
  681.     返回 如果 @ hzhj_loop_animations。包括(动画)
  682.     如果动画为零?
  683.       dispose_loop_animation
  684.       返回
  685.     结束
  686.     set_animation_rate
  687.     @ hzhj_loop_animations 推(动画)
  688.     init_loop_animation_duration (动画)
  689.     load_loop_animation_bitmap (动画)
  690.     make_loop_animation_sprites (动画)
  691.     set_loop_animation_origin (动画)
  692.   结束
  693.   #------------------------------------------------- -------------------------
  694.   #●初始化循环动画播放位置(新增定义)
  695.   #------------------------------------------------- -------------------------
  696.   :DEF init_loop_animation_duration (动画)
  697.     @ hzhj_loop_durations [动画] =动画。frame_max * @ ani_rate + 1
  698.   结束
  699.   #------------------------------------------------- -------------------------
  700.   ●读取循环动画图像(新增定义)
  701.   #------------------------------------------------- -------------------------
  702.   :DEF load_loop_animation_bitmap (动画)
  703.     animation1_name = animation1_name动画。
  704.     animation1_hue = animation1_hue动画。
  705.     animation2_name = animation2_name动画。
  706.     animation2_hue = animation2_hue动画。
  707.     bitmap1 =缓存的动画( animation1_name animation1_hue )
  708.     bitmap2 =缓存的动画( animation2_name,animation2_hue )
  709.     如果 @ @ _reference_count 包括?( bitmap1 )
  710.       @ @ _reference_count [ bitmap1 ] + = 1
  711.     其他
  712.       @ @ _reference_count [ bitmap1 ] = 1
  713.     结束
  714.     如果 @ @ _reference_count 包括?( bitmap2 )
  715.       @ @ _reference_count [ bitmap2 ] + = 1
  716.     其他
  717.       @ @ _reference_count [ bitmap2 ] = 1
  718.     结束
  719.     @ hzhj_loop_bitmap1s [动画] = bitmap1
  720.     @ hzhj_loop_bitmap2s [动画] = bitmap2
  721.     图形。frame_reset
  722.   结束
  723.   #------------------------------------------------- -------------------------
  724.   #●生成循环动画活动块(新增定义)
  725.   #------------------------------------------------- -------------------------
  726.   :DEF make_loop_animation_sprites (动画)
  727.     精灵= [ ]
  728.     如果 @ use_sprite的
  729.       16 倍
  730.         雪碧= ::雪碧新(视口)。
  731.         雪碧。可见 = 假
  732.         精灵推(精灵)
  733.       结束
  734.     结束
  735.     @ hzhj_loop_sprites [动画] =精灵
  736.   结束
  737.   #------------------------------------------------- -------------------------
  738.   ●设定循环动画的原点(新增定义)
  739.   #------------------------------------------------- -------------------------
  740.   :DEF set_loop_animation_origin (动画)
  741.     如果动画位置 == 3
  742.       如果视口== 零
  743.         ani_ox =图形宽度 / 2。
  744.         ani_oy =图形高度 / 2
  745.       其他
  746.         ani_ox =视口矩形的宽度 / 2
  747.         ani_oy =口。正确的高度 / 2
  748.       结束
  749.     其他
  750.       ani_ox = X -牛+宽/ 2
  751.       ani_oy = Y - OY +高/ 2
  752.       如果动画位置 == 0
  753.         ani_oy - =身高/ 2
  754.       的ELSIF动画。位置 ==
  755.         ani_oy + =身高/ 2
  756.       结束
  757.     结束
  758.     @ hzhj_loop_ani_oxs [动画] = ani_ox
  759.     @ hzhj_loop_ani_oys [动画] = ani_oy
  760.   结束
  761.   #------------------------------------------------- -------------------------
  762.   ●释放所有循环动画(新增定义)
  763.   #------------------------------------------------- -------------------------
  764.   DEF dispose_loop_animation
  765.     返回, 除非 loop_animation?
  766.     为动画@ hzhj_loop_animations。克隆
  767.       end_loop_animation (动画)
  768.     结束
  769.     @ hzhj_loop_durations 清晰
  770.     @ 明确hzhj_loop_sprites。
  771.     @ hzhj_loop_bitmap1s 清晰
  772.     @ hzhj_loop_bitmap2s 清晰
  773.     @ hzhj_loop_ani_oxs 清晰
  774.     @ hzhj_loop_ani_oys 清晰
  775.     @ hzhj_loop_animations 清晰
  776.   结束
  777.   #------------------------------------------------- -------------------------
  778.   ●结束某个循环动画(新增定义)
  779.   #------------------------------------------------- -------------------------
  780.   :DEF end_loop_animation (动画)
  781.     返回, 如果 不能的 @ hzhj_loop_animations。包括?(动画)
  782.     bitmap1 = @ hzhj_loop_bitmap1s [动画]
  783.     @ @ _reference_count [ bitmap1 ] - = 1
  784.     如果 @ @ _reference_count [ bitmap1 ] == 0
  785.       @ _reference_count 删除( bitmap1 )
  786.       bitmap1 处置。
  787.     结束
  788.     bitmap2 = @ hzhj_loop_bitmap2s [动画]
  789.     @ @ _reference_count [ bitmap2 ] - = 1
  790.     @ _reference_count [ bitmap2 ] == 0
  791.       @ _reference_count 删除( bitmap2 )
  792.       bitmap2 处置。
  793.     结束
  794.     精灵= @ hzhj_loop_sprites [动画]
  795.     精灵精灵
  796.       雪碧。处置
  797.     结束
  798.     “@”hzhj_loop_durations“ 。删除(动画)
  799.     “@”hzhj_loop_sprites“ 。删除(动画)
  800.     “@”hzhj_loop_bitmap1s“ 。删除(动画)
  801.     “@”hzhj_loop_bitmap2s“ 。删除(动画)
  802.     “@”hzhj_loop_ani_oxs“ 。删除(动画)
  803.     “@”hzhj_loop_ani_oys“ 。删除(动画)
  804.     @ hzhj_loop_animations 删除(动画)
  805.   结束
  806.   #------------------------------------------------- -------------------------
  807.   #●刷新(追加定义)
  808.   #------------------------------------------------- -------------------------
  809.   别名 hzhj_old_update_for_state_ani_spr_base更新
  810.   DEF更新
  811.     hzhj_old_update_for_state_ani_spr_base
  812.     update_loop_animation
  813.   结束
  814.   #------------------------------------------------- -------------------------
  815.   #●刷新循环动画(新增定义)
  816.   #------------------------------------------------- -------------------------
  817.   DEF update_loop_animation
  818.     @ flash_nil_duration - = 1, 如果 @ flash_nil_duration 0
  819.     返回, 除非 loop_animation?
  820.     在@ hzhj_loop_animations动画
  821.       @ hzhj_loop_durations [动画] - = 1
  822.       持续时间= @ hzhj_loop_durations [动画]
  823.       如果持续时间%@ ani_rate == 0
  824.         如果持续时间> 0
  825.           set_loop_animation_origin (动画)
  826.           frame_index = frame_max动画。
  827.           frame_index - = (持续时间+ @ ani_rate的 - 1 ) / @ ani_rate
  828.           参数= [ ]
  829.           参数[ 0 ] = @ hzhj_loop_sprites [动画]
  830.           参数[ 1 ] = _AT_ hzhj_loop_bitmap1s [动画]
  831.           参数[ 2 ] = _AT_ hzhj_loop_bitmap2s [动画]
  832.           参数[ 3 ] = _AT_ hzhj_loop_ani_oxs [动画]
  833.           参数[ 4 ] = _AT_ hzhj_loop_ani_oys [动画]
  834.           参数[ 5 ] =动画loop_z_correction
  835.           ARGS [ 6 ] = (​​(不 flash_nil?或动画。to_screen?) 和可见光)
  836.           loop_animation_set_sprites (动画帧[ frame_index ]里,args )
  837.           动画。计时。|定时|
  838.             loop_animation_process_timing (定时), 如果帧 == frame_index 时机。
  839.           结束
  840.         其他
  841.           init_loop_animation_duration (动画)
  842.           重做
  843.         结束
  844.       结束
  845.     结束
  846.   结束
  847.   #------------------------------------------------- -------------------------
  848.   ●设定循环动画的活动块(新增定义)
  849.   #------------------------------------------------- -------------------------
  850.   DEF loop_animation_set_sprites (帧,参数)
  851.     精灵=参数[ 0 ]
  852.     bitmap1 0 = [ 1 ]
  853.     bitmap2 0 = [ 2 ]
  854.     ani_ox 0 = [ 3 ]
  855.     ani_oy 0 = [ 4 ]
  856.     loop_z_correction 0 = [ 5 ]
  857.     state_visible 0 = [ 6 ]
  858.     cell_data = cell_data框架。
  859.     精灵each_with_index  |精灵,我|
  860.       未来 除非精灵
  861.       模式= cell_data [ I,0 ]
  862.       如果图案| |模式< 0
  863.         雪碧。可见 = 假
  864.         下
  865.       结束
  866.       精灵位图模式< 100?bitmap1:bitmap2
  867.       精灵可见 state_visible中
  868.       雪碧。src_rect 集(模式5%* 192,
  869.         样式%100 / 5 * 192,192,192 )
  870.       雪碧。所述 = ani_ox + cell_data [ I,1 ]
  871.       雪碧。Ÿ = ani_oy + cell_data [ I,2 ]
  872.       雪碧。角 = cell_data [ I,4 ]
  873.       雪碧。镜 = ( cell_data [ I,5 ] == 1 )
  874.       如果 loop_z_correction> 9999
  875.         雪碧。Ž = loop_z_correction%10000 +
  876.       ELSIF loop_z_correction < -9999
  877.         雪碧。Ž = loop_z_correction%-10000 + I
  878.       其他
  879.         精灵Ž = 自我。Ž + loop_z_correction +我
  880.       结束
  881.       雪碧。牛 = 96
  882.       雪碧。OY = 96
  883.       雪碧。zoom_x cell_data [ I,3 ] / 100.0
  884.       雪碧。zoom_y cell_data [ I,3 ] / 100.0
  885.       雪碧。不透明度 = cell_data [ I,6 ] * 自混浊 / 255.0
  886.       雪碧。blend_type cell_data [ I,7 ]
  887.     结束
  888.   结束
  889.   #------------------------------------------------- -------------------------
  890.   #●循环动画SE和闪烁时机的处理(新增定义)
  891.   #------------------------------------------------- -------------------------
  892.   DEF loop_animation_process_timing (定时)
  893.     时序。本身玩
  894.     flash_scope 情况的时机。
  895.     当 1
  896.       自我闪光灯(时机。flash_color时机。flash_duration * @ ani_rate )
  897.      2
  898.       如果视口
  899.         口中。闪光灯(时机。flash_color时机。flash_duration * @ ani_rate )
  900.       结束
  901.     时
  902.       自我闪光灯(无定时。flash_duration * @ ani_rate )
  903.     结束
  904.   结束
  905.   #------------------------------------------------- -------------------------
  906.   ●设置闪烁(追加定义)
  907.   #------------------------------------------------- -------------------------
  908.   别名 hzhj_old_flash_for_state_ani_spr_base闪光
  909.   高清闪存( *参数)
  910.     如果 ARGS [ 0 ] 为零?
  911.       _AT_ flash_nil_duration的 0 = [ 1 ]
  912.     其他
  913.       @ flash_nil_duration 0
  914.     结束
  915.     hzhj_old_flash_for_state_ani_spr_base ( *参数)
  916.   结束
  917.   #------------------------------------------------- -------------------------
  918.   ●判断是否正处于【隐藏目标】(新增定义)
  919.   #------------------------------------------------- -------------------------
  920.   高清 flash_nil?
  921.     返回 ( @ flash_nil_duration 0 )
  922.   结束
  923. 结束
  924. #================================================= =============================
  925. #■Sprite_Battler
  926. #================================================= =============================
  927. 类 Sprite_Battler <Sprite_Base
  928.   #------------------------------------------------- -------------------------
  929.   ●初始化(追加定义)
  930.   #------------------------------------------------- -------------------------
  931.   的别名 hzhj_old_init_for_state_ani_spr_battler初始化
  932.   DEF初始化( *参数)
  933.     hzhj_old_init_for_state_ani_spr_battler ( *参数)
  934.     init_battler_add_state_id
  935.   结束
  936.   #------------------------------------------------- -------------------------
  937.   ●初始化战斗者要播放状态动画的状态(新增定义)
  938.   #------------------------------------------------- -------------------------
  939.   DEF init_battler_add_state_id
  940.     如果 @战斗者。为零?
  941.       dispose_loop_animation
  942.     其他
  943.       @战斗者。hzhj_add_state_id 清晰
  944.       @战斗者。hzhj_remove_state_id 清晰
  945.       @战斗者。need_update_state_animation = 真
  946.       为@战斗者状态状态
  947.         接下来 ,如果状态。为零?
  948.         未来 如果 $ data_animations [。animation_id状态零?
  949.         @战斗者。hzhj_add_state_id 推(状态ID )
  950.       结束
  951.     结束
  952.   结束
  953.   #------------------------------------------------- -------------------------
  954.   #●设置战斗者(追加定义)
  955.   #------------------------------------------------- -------------------------
  956.   别名 hzhj_old_battlerdy_for_state_ani_spr_battler的战斗者=
  957.   DEF战斗者= (值)
  958.     old_battler = @战斗者
  959.     hzhj_old_battlerdy_for_state_ani_spr_battler (值)
  960.     如果 old_battler!= @战斗者
  961.       init_battler_add_state_id
  962.     结束
  963.   结束
  964.   #------------------------------------------------- -------------------------
  965.   #●刷新(追加定义)
  966.   #------------------------------------------------- -------------------------
  967.   别名 hzhj_old_update_for_state_ani_spr_battler更新
  968.   DEF更新
  969.     hzhj_old_update_for_state_ani_spr_battler
  970.     如果 @战斗者
  971.       如果 @战斗者。need_update_state_animation的
  972.         @战斗者。need_update_state_animation = FALSE
  973.         如果  战斗者。hzhj_add_state_id 空?
  974.           我@战斗者hzhj_add_state_id的
  975.             如果 @战斗者状态(我)吗?
  976.               ani_id = $ data_states [我]。animation_id
  977.               动画= $ data_animations [ ani_id ]
  978.               start_loop_animation (动画) ,如果 不是动画为零?
  979.             结束
  980.           结束
  981.           @战斗者。hzhj_add_state_id 清晰
  982.         结束
  983.         如果  战斗者。hzhj_remove_state_id 空?
  984.           我@战斗者hzhj_remove_state_id的
  985.             如果 不能 战斗者状态?(我)
  986.               ani_id = $ data_states [我]。animation_id
  987.               动画= $ data_animations [ ani_id ]
  988.               end_loop_animation (动画) ,如果 不是动画为零?
  989.             结束
  990.           结束
  991.           @战斗者。hzhj_remove_state_id 清晰
  992.         结束
  993.       结束
  994.     结束
  995.   结束
  996. 结束
  997. #================================================= =============================
  998. #■Window_BattleLog
  999. #================================================= =============================
  1000. 类 Window_BattleLog <Window_Selectable
  1001.   #------------------------------------------------- -------------------------
  1002.   ●显示状态附加/解除(追加定义)
  1003.   #------------------------------------------------- -------------------------
  1004.   别名 hzhj_old_display_status_for_state_ani_wnd_btlog display_changed_states
  1005.   DEF display_changed_states (目标)
  1006.     目标。need_update_state_animation = TRUE
  1007.     hzhj_old_display_status_for_state_ani_wnd_btlog (目标)
  1008.   结束
  1009. 结束

  1010. #================================================= =============================
  1011. ID:■Sprite_Damage $(新增类)
  1012. #================================================= =============================
  1013. 类 Sprite_Damage <雪碧
  1014.   流包括 Hzhj :: HorizontalBattleSystem
  1015.   #------------------------------------------------- -------------------------
  1016.   #●获取/生成伤害值源图
  1017.   #------------------------------------------------- -------------------------
  1018.   @ obmp = 零
  1019.   DEF  自obmp
  1020.     @ obmp 为零?@ obmp。处置?
  1021.       @ obmp = 新的位图。(180,256 )
  1022.       @ obmp 字体加粗 = 真
  1023.       @ obmp 字体阴影 = 假
  1024.       @ obmp 字体轮廓 = 真
  1025.       @ obmp 字体。out_color =颜色。新(255,255,255,255 )
  1026.       @ obmp。字体大小 = 32。
  1027.       种= [ ]
  1028.       颜色。推(颜色新的(255,    0,    0,255 ))。
  1029.       颜色。推(新颜色。(255,128,128,255 ))
  1030.       颜色。推(新  颜色(0,    0,255,255 ))
  1031.       颜色。推(新颜色。(128,128,255,255 ))
  1032.       颜色。推(新  颜色(0,255,    0,255 ))
  1033.       颜色。推(新颜色(128,255,128,255 ))
  1034.       颜色。each_with_index  |色,喜|
  1035.         @ obmp 字体颜色 =颜色
  1036.         无线在 0 .. 9
  1037.           @ obmp draw_text,喜( WI * 18 * 32,18,32,“#{威斯康星}” ,1 )
  1038.         结束
  1039.       结束
  1040.       @ obmp 字体大小 = 20。
  1041.       @ obmp 字体斜体 = TRUE
  1042.       @ @ 字体。obmp out_color =颜色。新的(0,0,0,255 )
  1043.       @ obmp 字体颜色 =颜色新(255,255,255,255 )
  1044.       @ obmp draw_text ( 0,192,90,32,“重要”,1 )
  1045.       @ obmp draw_text (90,192,90,32,“小姐”,1 )
  1046.       @ @ obmp draw_text ( 0,224,90,32,“规避”,1 )
  1047.       @ obmp hue_change ( DamageBitmapHue )
  1048.     结束
  1049.     返回 @ obmp
  1050.   结束
  1051.   #------------------------------------------------- -------------------------
  1052.   #●初始化
  1053.   #------------------------------------------------- -------------------------
  1054.   DEF初始化(视口,参数)
  1055.     超(视口)
  1056.     @类型 =参数[ 0 ]
  1057.     @值 0 = [ 1 ]
  1058.     @临界 0 = [ 2 ]
  1059.     自我。所述 0 = [ 4 ]
  1060.     自我。0 = [ 5 ]
  1061.     自我Ž =参数[ 6 ] +图形。高度 * 5
  1062.     make_move ( args的[ 3 ] )
  1063.     刷新
  1064.   结束
  1065.   #------------------------------------------------- -------------------------
  1066.   #●生成移动数据
  1067.   #------------------------------------------------- -------------------------
  1068.   高清 make_move ( battler_obj_class )
  1069.     @移动 = [ ]
  1070.     案例 battler_obj_class
  1071.     当 演员
  1072.       make_move_actor
  1073.     当 敌人
  1074.       make_move_enemy
  1075.     其他
  1076.       make_move_default
  1077.     结束
  1078.   结束
  1079.   #------------------------------------------------- -------------------------
  1080.   #●生成移动数据默认
  1081.   #------------------------------------------------- -------------------------
  1082.   DEF make_move_default
  1083.     45 倍  | N |
  1084.       如果%3 == 0
  1085.         ADY = -6:-1 < 21?
  1086.         OPA = N < 21?255:255 - ( Ñ -21 ) * 6
  1087.         @移动推([ 0,安以轩,OPA )
  1088.       其他
  1089.         @移动推(0,0,-1 ] )
  1090.       结束
  1091.     结束
  1092.   结束
  1093.   #------------------------------------------------- -------------------------
  1094.   #●生成移动数据角色
  1095.   #------------------------------------------------- -------------------------
  1096.   DEF make_move_actor
  1097.     make_move_default
  1098.   结束
  1099.   #------------------------------------------------- -------------------------
  1100.   #●生成移动数据敌人
  1101.   #------------------------------------------------- -------------------------
  1102.   DEF make_move_enemy
  1103.     make_move_default
  1104.   结束
  1105.   #------------------------------------------------- -------------------------
  1106.   #●描绘
  1107.   #------------------------------------------------- -------------------------
  1108.   DEF刷新
  1109.     如果 没有 自我的位图。为零?
  1110.       自我处置位图。
  1111.       自位图 = 零
  1112.     结束
  1113.     开始
  1114.       @ obmp =缓存动画(“损害”,DamageBitmapHue )
  1115.     抢救 ERRNO :: ENOENT
  1116.       @ obmp = Sprite_Damage。obmp
  1117.     结束
  1118.     @ numw = @ obmp 宽度 / 10
  1119.     @ numh = @ obmp。高度 / 8
  1120.     @ STRW = @ obmp。宽 / 2
  1121.     案例 @值
  1122.     当 数字
  1123.       blt_obmp_numeric
  1124.     当 符号
  1125.       blt_obmp_text
  1126.     结束
  1127.   结束
  1128.   #------------------------------------------------- -------------------------
  1129.   #●通过源图描绘数字
  1130.   #------------------------------------------------- -------------------------
  1131.   DEF blt_obmp_numeric
  1132.     次数= @值。to_i。ABS 的to_s 分割(“” )。
  1133.     nbmpw次数大小 * @ numw
  1134.     bmph = @ numh
  1135.     cbmpw = 0
  1136.     CRECT = 零
  1137.     DY = 0
  1138.     如果 关键
  1139.       cbmpw = @ STRW
  1140.       bmph * 2 =
  1141.       CRECT =矩形。新(0,numh * 6,@ STRW numh )
  1142.       DY = numh的
  1143.     结束
  1144.     自位图新([ nbmpw,cbmpw 32 ]。最大 bmph 32 ]。最大的位图。)
  1145.     自牛 =位图。宽度 / 2
  1146.     自OY = bmph / 2
  1147.     位图。的BLT ((位图宽度 - cbmpw ) / 2,0,@ obmp,CRECT ) 如果 CRECT
  1148.     DX = (位图宽度 - nbmpw ) / 2
  1149.     RY = 0
  1150.     情况 @型
  1151.     时 :马力
  1152.       RY = @值 > = 0?0:@ numh
  1153.     当 :熔点
  1154.       RY = @值 > = 0?@ numh * 2:@ numh * 3
  1155.     时 :TP
  1156.       RY = @值 > = 0?@ numh * 4:@ numh * 5
  1157.     其他
  1158.       返回
  1159.     结束
  1160.     RECT =矩形新的(0,RY,@ numw,numh )
  1161.     数组nums each_with_index  |海峡,我|
  1162.       正确。所述 = str的to_i * @ numw
  1163.       位图。BLT ( DX,DY,@ obmp,正确)
  1164.       DX + = @ numw
  1165.     结束
  1166.   结束
  1167.   #------------------------------------------------- -------------------------
  1168.   #●通过源图描绘文字
  1169.   #------------------------------------------------- -------------------------
  1170.   DEF blt_obmp_text
  1171.     自我位图 = 新的位图。([ @ STRW 32 ]。最大,[: @ numh 32 ]。最大)
  1172.     自牛 = @ STRW / 2
  1173.     自OY = @ numh / 2
  1174.     RX = RY = 0
  1175.     情况 @型
  1176.     时 :想念
  1177.       RX = STRW的
  1178.       RY = @ numh * 6
  1179.     时 :EVA
  1180.       RY = @ numh * 7
  1181.     其他
  1182.       返回
  1183.     结束
  1184.     RECT =矩形的新( RX,RY @ STRW的@ numh的)
  1185.     位图。BLT (0,0,@ obmp,正确)
  1186.   结束
  1187.   #------------------------------------------------- -------------------------
  1188.   #●释放
  1189.   #------------------------------------------------- -------------------------
  1190.   DEF处置
  1191.     位图。出售 ,如果位图
  1192.     非常
  1193.   结束
  1194.   #------------------------------------------------- -------------------------
  1195.   #●移动中判定
  1196.   #------------------------------------------------- -------------------------
  1197.   高清移动?
  1198.     返回 ( @举动。空的吗?)
  1199.   结束
  1200.   #------------------------------------------------- -------------------------
  1201.   #●刷新
  1202.   #------------------------------------------------- -------------------------
  1203.   DEF更新
  1204.     非常
  1205.     如果移动?
  1206.       进制= @举措。转变
  1207.       自所述 + =进制[ 0 ]
  1208.       自ÿ + =进制[ 1 ]
  1209.       自我不透明度 =进制[ 2 ]  如果进制[ 2 ] > = 0
  1210.     结束
  1211.   结束
  1212. 结束
  1213. #================================================= =============================
  1214. #■Game_BattlerBase
  1215. #================================================= =============================
  1216. 类 Game_BattlerBase
  1217.   #------------------------------------------------- -------------------------
  1218.   ●实例变量(新增定义)
  1219.   #------------------------------------------------- -------------------------
  1220.   attr_accessor中hzhj_damage的
  1221.   #------------------------------------------------- -------------------------
  1222.   ●初始化(追加定义)
  1223.   #------------------------------------------------- -------------------------
  1224.   的别名 hzhj_old_init_for_display_damage_game_battler_base初始化
  1225.   DEF初始化
  1226.     _AT_ hzhj_damage ]
  1227.     hzhj_old_init_for_display_damage_game_battler_base
  1228.   结束
  1229. 结束
  1230. #================================================= =============================
  1231. #■Sprite_Base
  1232. #================================================= =============================
  1233. 类 Sprite_Base <雪碧
  1234.   #------------------------------------------------- -------------------------
  1235.   ●初始化(追加定义)
  1236.   #------------------------------------------------- -------------------------
  1237.   的别名 hzhj_old_init_for_display_damage_spr_base初始化
  1238.   DEF初始化( *参数)
  1239.     hzhj_old_init_for_display_damage_spr_base ( *参数)
  1240.     @ hzhj_damage_sprites = [ ]
  1241.   结束
  1242.   #------------------------------------------------- -------------------------
  1243.   ●释放(追加定义)
  1244.   #------------------------------------------------- -------------------------
  1245.   的别名 hzhj_old_dispose_for_display_damage_spr_base处置
  1246.   DEF处置
  1247.     hzhj_old_dispose_for_display_damage_spr_base
  1248.     dispose_damage
  1249.   结束
  1250.   #------------------------------------------------- -------------------------
  1251.   ●判断是否有伤害在显示(新增定义)
  1252.   #------------------------------------------------- -------------------------
  1253.   DEF损伤?
  1254.     返回 (不“  @“hzhj_damage_sprites” 。空的吗?)
  1255.   结束
  1256.   #------------------------------------------------- -------------------------
  1257.   #●开始显示伤害(新增定义)
  1258.   #------------------------------------------------- -------------------------
  1259.   DEF start_damage (参数)
  1260.     参数[ 4 ] = X -牛+宽/ 2
  1261.     参数[ 5 ] = Y - OY +高/ 2
  1262.     参数[ 6 ] = Z
  1263.     @ hzhj_damage_sprites 推( Sprite_Damage。新(视口,参数))
  1264.   结束
  1265.   #------------------------------------------------- -------------------------
  1266.   ●释放所有伤害显示(新增定义)
  1267.   #------------------------------------------------- -------------------------
  1268.   DEF dispose_damage
  1269.     返回, 除非损坏?
  1270.     “@”hzhj_damage_sprites“ 。每个{ |雪碧雪碧。处置}
  1271.     @ 明确hzhj_damage_sprites。
  1272.   结束
  1273.   #------------------------------------------------- -------------------------
  1274.   #●刷新(追加定义)
  1275.   #------------------------------------------------- -------------------------
  1276.   别名 hzhj_old_update_for_display_damage_spr_base更新
  1277.   DEF更新
  1278.     hzhj_old_update_for_display_damage_spr_base
  1279.     update_damage
  1280.   结束
  1281.   #------------------------------------------------- -------------------------
  1282.   #●刷新显示伤害(新增定义)
  1283.   #------------------------------------------------- -------------------------
  1284.   DEF update_damage
  1285.     返回, 除非损坏?
  1286.     “@”hzhj_damage_sprites“ 。each_with_index  |精灵,我|
  1287.       如果精灵动人?
  1288. 更新         雪碧。
  1289.       其他
  1290.         雪碧。处置
  1291.         @ hzhj_damage_sprites [我] = 零
  1292.       结束
  1293.     结束
  1294.     “@”hzhj_damage_sprites“ 。删除(零)
  1295.   结束
  1296. 结束
  1297. #================================================= =============================
  1298. #■Sprite_Battler
  1299. #================================================= =============================
  1300. 类 Sprite_Battler <Sprite_Base
  1301.   #------------------------------------------------- -------------------------
  1302.   #●刷新(追加定义)
  1303.   #------------------------------------------------- -------------------------
  1304.   别名 hzhj_old_update_for_display_damage_spr_battler更新
  1305.   DEF更新
  1306.     hzhj_old_update_for_display_damage_spr_battler
  1307.     如果 @战斗者
  1308.       如果 不是 @战斗者hzhj_damage 空?
  1309.         除非 @战斗者。damage_section_displayed,
  1310.           参数= @战斗者hzhj_damage 克隆
  1311.           ARGS [ 3 ] = @战斗者的演员吗??演员:( @战斗者。敌人?:敌人:无)
  1312.           start_damage (参数)
  1313.         结束
  1314.         @战斗者。hzhj_damage 清晰
  1315.       结束
  1316.     结束
  1317.   结束
  1318. 结束
  1319. #================================================= =============================
  1320. #■Window_BattleLog
  1321. #================================================= =============================
  1322. 类 Window_BattleLog <Window_Selectable
  1323.   #------------------------------------------------- -------------------------
  1324.   ●显示MISS(追加定义)
  1325.   #------------------------------------------------- -------------------------
  1326.   别名 hzhj_old_display_miss_for_display_damage_wnd_btlog display_miss
  1327.   :DEF display_miss (目标项)
  1328.     的目标。hzhj_damage = [ :小姐,小姐,假]
  1329.     hzhj_old_display_miss_for_display_damage_wnd_btlog (目标项)
  1330.   结束
  1331.   #------------------------------------------------- -------------------------
  1332.   #●显示回避(追加定义)
  1333.   #------------------------------------------------- -------------------------
  1334.   别名 hzhj_old_display_evasion_for_display_damage_wnd_btlog display_evasion
  1335.   :DEF display_evasion (目标项)
  1336.     目标。hzhj_damage = [ :EVA :逃避,虚假]
  1337.     hzhj_old_display_evasion_for_display_damage_wnd_btlog (目标项)
  1338.   结束
  1339.   #------------------------------------------------- -------------------------
  1340.   ●显示HP伤害(追加定义)
  1341.   #------------------------------------------------- -------------------------
  1342.   别名 hzhj_old_display_hp_damage_for_display_damage_wnd_btlog display_hp_damage
  1343.   :DEF display_hp_damage (目标项)
  1344.      如果目标的结果。hp_damage == 0 &&项目&&!项目。损坏。to_hp 返回?
  1345.     值= hp_damage目标的结果。
  1346.     关键目标的关键结果。
  1347.     目标。hzhj_damage = [ :马力,价值,关键]
  1348.     hzhj_old_display_hp_damage_for_display_damage_wnd_btlog (目标项)
  1349.   结束
  1350.   #------------------------------------------------- -------------------------
  1351.   ●显示MP伤害(追加定义)
  1352.   #------------------------------------------------- -------------------------
  1353.   别名 hzhj_old_display_mp_damage_for_display_damage_wnd_btlog display_mp_damage
  1354.   :DEF display_mp_damage (目标项)
  1355.      如果目标返回。死了吗?| |的目标。结果mp_damage == 0
  1356.     值= mp_damage目标的结果。
  1357.     关键目标的关键结果。
  1358.     目标。hzhj_damage = [ :熔点,价值,关键]
  1359.     hzhj_old_display_mp_damage_for_display_damage_wnd_btlog (目标项)
  1360.   结束
  1361.   #------------------------------------------------- -------------------------
  1362.   ●显示TP伤害(追加定义)
  1363.   #------------------------------------------------- -------------------------
  1364.   别名 hzhj_old_display_tp_damage_for_display_damage_wnd_btlog display_tp_damage
  1365.   :DEF display_tp_damage (目标项)
  1366.      如果目标返回。死了吗?| |的目标。结果tp_damage == 0
  1367.     值= tp_damage目标的结果。
  1368.     关键目标的关键结果。
  1369.     目标。hzhj_damage = [ :TP,价值,关键]
  1370.     hzhj_old_display_tp_damage_for_display_damage_wnd_btlog (目标项)
  1371.   结束
  1372. 结束


  1373.   DEF need_move
  1374.     返回 _AT_ need_move的 除非 @ need_move。零?
  1375.     如果 / @ [ RR ] [ MM ] / =〜@名
  1376.       回报 ( @ need_move = TRUE )
  1377.     其他
  1378.       回报 ( @ need_move = FALSE )
  1379.     结束
  1380.   结束
  1381.   DEF move_se
  1382.     返回 _AT_ move_se的 除非 @ move_se。零?
  1383.     @ move_se = RPG :: SE 新
  1384.     如果 / @ [ SS ] [ EE ] \ [ ( + ) \ ] / =〜@名字
  1385.       @ move_se 名称 = $ 1。克隆
  1386.     结束
  1387.     返回 @ move_se
  1388.   结束
  1389.   attr_writer :need_move
  1390.   attr_writer :move_se
  1391. 结束
  1392. #================================================= =============================
  1393. #■Game_Battler
  1394. #================================================= =============================
  1395. 类 Game_Battler <Game_BattlerBase
  1396.   流包括 Hzhj :: HorizontalBattleSystem
  1397.   #------------------------------------------------- -------------------------
  1398.   #●属性
  1399.   #------------------------------------------------- -------------------------
  1400.   attr_accessor中:ADD_X                     #X坐标变化量
  1401.   attr_accessor中:add_y                     #Y坐标变化量
  1402.   attr_accessor中:move_speed_x              #战斗图所述移动速度
  1403.   attr_accessor中:move_speed_y              #战斗图Ÿ移动速度
  1404.   #------------------------------------------------- -------------------------
  1405.   ●初始化(追加定义)
  1406.   #------------------------------------------------- -------------------------
  1407.   的别名 hzhj_old_init_for_real_move_game_battler初始化
  1408.   DEF初始化
  1409.     @ ADD_X = 0
  1410.     @ add_y 0
  1411.     @ move_speed_x 0
  1412.     @ move_speed_y 0
  1413.     hzhj_old_init_for_real_move_game_battler
  1414.   结束
  1415.   #------------------------------------------------- -------------------------
  1416.   ●真实所述坐标(新增定义)
  1417.   #------------------------------------------------- -------------------------
  1418.   DEF real_screen_x
  1419.     返回 screen_x + ADD_X
  1420.   结束
  1421.   #------------------------------------------------- -------------------------
  1422.   ●真实Ÿ坐标(新增定义)
  1423.   #------------------------------------------------- -------------------------
  1424.   DEF real_screen_y
  1425.     返回 screen_y + add_y
  1426.   结束
  1427.   #------------------------------------------------- -------------------------
  1428.   #●返回自己的战斗位置(新增定义)
  1429.   #------------------------------------------------- -------------------------
  1430.   DEF come_back_self_position (持续时间)
  1431.     返回 ,如果死了吗?
  1432.     TX = screen_x
  1433.     TY = screen_y的
  1434.     ADDX = TX  -  real_screen_x
  1435.     阿迪= TY  -  real_screen_y
  1436.      如果返回 ADDX 阿迪== 0 == 0 &&
  1437.     @ ADD_X = 0
  1438.     @ add_y 0
  1439.     最大@ move_speed_x = [ ( ADDX ABS /持续时间to_f ),光大,1 ]。
  1440.     最大@ move_speed_y = [ (阿迪ABS /持续时间to_f ),光大,1 ]。
  1441.   结束
  1442.   #------------------------------------------------- -------------------------
  1443.   #●设置移动信息(新增定义)
  1444.   #------------------------------------------------- -------------------------
  1445.   高清 setup_move_info ( target_battler,持续时间,move_se )
  1446.     返回 ,如果死了吗?
  1447.     TBMP =缓存战斗者( target_battler。battler_name target_battler battler_hue )
  1448.     sbmp =缓存。战斗者( @ battler_name,battler_hue )
  1449.     TBW = TBMP 宽度 / DynamicPatternMax的RealMoveBmpAddW
  1450.     沉鼓= sbmp。宽度 / DynamicPatternMax的RealMoveBmpAddW
  1451.     TBH = TBMP。高度 + RealMoveBmpAddH
  1452.     SBH = sbmp。高度 + RealMoveBmpAddH
  1453.     D =演员??:10 - ActorDirection的ActorDirection
  1454.     TX = target_battler用。real_screen_x
  1455.     TY = real_screen_y target_battler。
  1456.     ð 情况
  1457.     当 1
  1458.       TX = TX + TBW / 2 + SBW / 2
  1459.       TY = TY - SBH / 2
  1460.      2
  1461.       TY = TY - SBH / 2
  1462.     时
  1463.       TX = TX - TBW / 2 - SBW / 2
  1464.       TY = TY - SBH / 2
  1465.     时
  1466.       TX = TX + TBW / 2 + SBW / 2
  1467.     时
  1468.       TX = TX - TBW / 2 - SBW / 2
  1469.     时
  1470.       TX = TX + TBW / 2 + SBW / 2
  1471.       TY = TY + SBH / 2
  1472.     时
  1473.       TY = TY + SBH / 2
  1474.     时
  1475.       TX = TX - TBW / 2 - SBW / 2
  1476.       TY = TY + SBH / 2
  1477.     结束
  1478.     ADDX = TX  -  real_screen_x
  1479.     阿迪= TY  -  real_screen_y
  1480.      如果返回 ADDX 阿迪== 0 == 0 &&
  1481.     @ ADD_X = TX - screen_x 如果 ADDX!= 0
  1482.     @ add_y = TY - screen_y 如果阿迪= 0,
  1483.     最大@ move_speed_x = [ ( ADDX ABS /持续时间to_f ),光大,1 ]。
  1484.     最大@ move_speed_y = [ (阿迪ABS /持续时间to_f ),光大,1 ]。
  1485.     move_se 发挥。
  1486.   结束
  1487. 结束
  1488. #================================================= =============================
  1489. #■Sprite_Battler
  1490. #================================================= =============================
  1491. 类 Sprite_Battler <Sprite_Base
  1492.   #------------------------------------------------- -------------------------
  1493.   ●初始化(追加定义)
  1494.   #------------------------------------------------- -------------------------
  1495.   的别名 hzhj_old_init_for_real_move_spr_battler初始化
  1496.   DEF初始化(视口,战斗者= 零)
  1497.     hzhj_old_init_for_real_move_spr_battler (视口,战斗者)
  1498.     init_position ( @战斗者)  @战斗者
  1499.   结束
  1500.   #------------------------------------------------- -------------------------
  1501.   #●设置战斗者(追加定义)
  1502.   #------------------------------------------------- -------------------------
  1503.   别名 hzhj_old_set_battler_for_real_move_spr_battler的战斗者=
  1504.   DEF战斗者= (值)
  1505.     如果 @战斗者 = value &&的价值!
  1506.       init_position (值)
  1507.     结束
  1508.     hzhj_old_set_battler_for_real_move_spr_battler (值)
  1509.   结束
  1510.   #------------------------------------------------- -------------------------
  1511.   ●初始化位置(新增定义)
  1512.   #------------------------------------------------- -------------------------
  1513.   :DEF init_position (战斗者)
  1514.     战斗者ADD_X = 0
  1515.     战斗者add_y = 0
  1516.     自所述战斗者real_screen_x
  1517.     自我Ÿ =战斗者。real_screen_y
  1518.     自Ž =战斗者screen_z
  1519.   结束
  1520.   #------------------------------------------------- -------------------------
  1521.   #●移动中判定(新增定义)
  1522.   #------------------------------------------------- -------------------------
  1523.   高清移动?
  1524.     返回 假, 除非 @战斗者
  1525.     (到X!= @战斗者real_screen_x  或 Ÿ!= @战斗者。real_screen_y ) && @战斗者
  1526.   结束
  1527.   #------------------------------------------------- -------------------------
  1528.   #●位置的更新(重定义)
  1529.   #------------------------------------------------- -------------------------
  1530.   def update_position
  1531.     if [email protected]?
  1532.       if x < @battler.real_screen_x
  1533.         self.x = [x + @battler.move_speed_x, @battler.real_screen_x].min
  1534.       elsif x > @battler.real_screen_x
  1535.         self.x = [x - @battler.move_speed_x, @battler.real_screen_x].max
  1536.       end
  1537.       if y < @battler.real_screen_y
  1538.         self.y = [y + @battler.move_speed_y, @battler.real_screen_y].min
  1539.       elsif y > @battler.real_screen_y
  1540.         self.y = [y - @battler.move_speed_y, @battler.real_screen_y].max
  1541.       end
  1542.       self.z = y + 100
  1543.     end
  1544.   end
  1545. end
  1546. #==============================================================================
  1547. # ■ Spriteset_Battle
  1548. #==============================================================================
  1549. class Spriteset_Battle
  1550.   #--------------------------------------------------------------------------
  1551.   # ● 判定是否移动中(新增定义)
  1552.   #--------------------------------------------------------------------------
  1553.   def moving?
  1554.     battler_sprites.any? {|sprite| sprite.moving? }
  1555.   end
  1556. end
  1557. #==============================================================================
  1558. # ■ Scene_Battle
  1559. #==============================================================================
  1560. class Scene_Battle < Scene_Base
  1561.   #--------------------------------------------------------------------------
  1562.   # ● 等待战斗图移动的结束(新增定义)
  1563.   #--------------------------------------------------------------------------
  1564.   def wait_for_move
  1565.     update_for_wait
  1566.     update_for_wait while @spriteset.moving?
  1567.   end
  1568. end

  1569. class RPG::Troop
  1570.   include Hzhj::HorizontalBattleSystem
  1571.   def display_enemy_bar
  1572.     return @display_enemy_bar unless @display_enemy_bar.nil?
  1573.     if /@ebar/i =~ @name
  1574.       return (@display_enemy_bar = !DefaultDisplayEnemyBar)
  1575.     else
  1576.       return (@display_enemy_bar = DefaultDisplayEnemyBar)
  1577.     end
  1578.   end
  1579.   attr_writer :display_enemy_bar
  1580. end
  1581. #==============================================================================
  1582. # ■ Game_Troop
  1583. #==============================================================================
  1584. class Game_Troop < Game_Unit
  1585.   attr_accessor :display_enemy_bar      # 是否显示敌人HP条、MP条、TP条
  1586.   #--------------------------------------------------------------------------
  1587.   # ● 设置
  1588.   #--------------------------------------------------------------------------
  1589.   alias hzhj_old_setup_for_display_enemy_bar_game_troop setup
  1590.   def setup(troop_id)
  1591.     hzhj_old_setup_for_display_enemy_bar_game_troop(troop_id)
  1592.     @display_enemy_bar = troop.display_enemy_bar
  1593.   end
  1594. end
  1595. #==============================================================================
  1596. # ■ Window_BattleEnemy
  1597. #==============================================================================
  1598. class Window_BattleEnemy < Window_Selectable
  1599.   #--------------------------------------------------------------------------
  1600.   # ● 取得列数
  1601.   #--------------------------------------------------------------------------
  1602.   def col_max
  1603.     if $game_troop.display_enemy_bar
  1604.       return 1
  1605.     else
  1606.       return 2
  1607.     end
  1608.   end
  1609.   #--------------------------------------------------------------------------
  1610.   # ● 刷新
  1611.   #--------------------------------------------------------------------------
  1612.   def refresh
  1613.     create_contents
  1614.     super
  1615.   end
  1616.   #--------------------------------------------------------------------------
  1617.   # ● 描画项目
  1618.   #--------------------------------------------------------------------------
  1619.   def draw_item(index)
  1620.     if $game_troop.display_enemy_bar
  1621.       enemy = $game_troop.alive_members[index]
  1622.       draw_basic_area(basic_area_rect(index), enemy)
  1623.       draw_gauge_area(gauge_area_rect(index), enemy)
  1624.     else
  1625.       change_color(normal_color)
  1626.       name = $game_troop.alive_members[index].name
  1627.       draw_text(item_rect_for_text(index), name)
  1628.     end
  1629.   end
  1630.   #--------------------------------------------------------------------------
  1631.   # ● 取得基本区域的矩形
  1632.   #--------------------------------------------------------------------------
  1633.   def basic_area_rect(index)
  1634.     rect = item_rect_for_text(index)
  1635.     rect.width -= gauge_area_width + 10
  1636.     rect
  1637.   end
  1638.   #--------------------------------------------------------------------------
  1639.   # ● 取得值槽区域的矩形
  1640.   #--------------------------------------------------------------------------
  1641.   def gauge_area_rect(index)
  1642.     rect = item_rect_for_text(index)
  1643.     rect.x += rect.width - gauge_area_width
  1644.     rect.width = gauge_area_width
  1645.     rect
  1646.   end
  1647.   #--------------------------------------------------------------------------
  1648.   # ● 取得值槽区域的宽度
  1649.   #--------------------------------------------------------------------------
  1650.   def gauge_area_width
  1651.     return 220
  1652.   end
  1653.   #--------------------------------------------------------------------------
  1654.   # ● 描画基本区域
  1655.   #--------------------------------------------------------------------------
  1656.   def draw_basic_area(rect, actor)
  1657.     draw_actor_name(actor, rect.x + 0, rect.y, 100)
  1658.     draw_actor_icons(actor, rect.x + 104, rect.y, rect.width - 104)
  1659.   end
  1660.   #--------------------------------------------------------------------------
  1661.   # ● 描画值槽区域
  1662.   #--------------------------------------------------------------------------
  1663.   def draw_gauge_area(rect, actor)
  1664.     if $data_system.opt_display_tp
  1665.       draw_gauge_area_with_tp(rect, actor)
  1666.     else
  1667.       draw_gauge_area_without_tp(rect, actor)
  1668.     end
  1669.   end
  1670.   #--------------------------------------------------------------------------
  1671.   # ● 描画值槽区域(包括 TP 值)
  1672.   #--------------------------------------------------------------------------
  1673.   def draw_gauge_area_with_tp(rect, actor)
  1674.     draw_actor_hp(actor, rect.x + 0, rect.y, 72)
  1675.     draw_actor_mp(actor, rect.x + 82, rect.y, 64)
  1676.     draw_actor_tp(actor, rect.x + 156, rect.y, 64)
  1677.   end
  1678.   #--------------------------------------------------------------------------
  1679.   # ● 描画值槽区域(不包括 TP 值)
  1680.   #--------------------------------------------------------------------------
  1681.   def draw_gauge_area_without_tp(rect, actor)
  1682.     draw_actor_hp(actor, rect.x + 0, rect.y, 134)
  1683.     draw_actor_mp(actor, rect.x + 144,  rect.y, 76)
  1684.   end
  1685. end

  1686. #==============================================================================
  1687. # ■ Sprite_Battler
  1688. #==============================================================================
  1689. class Sprite_Battler < Sprite_Base
  1690.   include Hzhj::HorizontalBattleSystem
  1691.   #--------------------------------------------------------------------------
  1692.   # ● 初始化(追加定义)
  1693.   #--------------------------------------------------------------------------
  1694.   alias hzhj_old_init_for_dynamic_spr_battler initialize
  1695.   def initialize(viewport, battler = nil)
  1696.     hzhj_old_init_for_dynamic_spr_battler(viewport, battler)
  1697.     @dynamic_duration = 0
  1698.     @dynamic_duration_max = DynamicPatternMax * OnePatternDuration
  1699.   end
  1700.   #--------------------------------------------------------------------------
  1701.   # ● 源位图(Source Bitmap)的更新(重定义)
  1702.   #--------------------------------------------------------------------------
  1703.   def update_bitmap
  1704.     new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
  1705.     if bitmap != new_bitmap
  1706.       self.bitmap = new_bitmap
  1707.       init_visibility
  1708.       @dynamic_duration = 0
  1709.       @sx = 0
  1710.       @sw = bitmap.width / DynamicPatternMax
  1711.       @sh = bitmap.height
  1712.       self.ox = @sw / 2
  1713.       self.oy = @sh
  1714.       src_rect.set(@sx, 0, @sw, @sh)
  1715.     end
  1716.   end
  1717.   #--------------------------------------------------------------------------
  1718.   # ● 原点的更新(重定义)
  1719.   #--------------------------------------------------------------------------
  1720.   def update_origin
  1721.     if bitmap
  1722.       @dynamic_duration += 1
  1723.       @dynamic_duration %= @dynamic_duration_max
  1724.       @sx = @dynamic_duration / OnePatternDuration * @sw
  1725.       src_rect.set(@sx, 0, @sw, @sh)
  1726.     end
  1727.   end
  1728.   #--------------------------------------------------------------------------
  1729.   # ● 返回普通设定(追加定义)
  1730.   #--------------------------------------------------------------------------
  1731.   alias hzhj_old_revert_to_normal_for_dynamic_spr_battler revert_to_normal
  1732.   def revert_to_normal
  1733.     hzhj_old_revert_to_normal_for_dynamic_spr_battler
  1734.     self.ox = @sw / 2 if bitmap
  1735.   end
  1736.   #--------------------------------------------------------------------------
  1737.   # ● BOSS 战败(崩坏)效果的更新(追加定义)
  1738.   #--------------------------------------------------------------------------
  1739.   alias hzhj_old_update_boss_col_for_dynamic_spr_battler update_boss_collapse
  1740.   def update_boss_collapse
  1741.     hzhj_old_update_boss_col_for_dynamic_spr_battler
  1742.     self.ox = @sw / 2 + @effect_duration % 2 * 4 - 2
  1743.   end
  1744. end

  1745. #==============================================================================
  1746. # ■ Game_Battler
  1747. #==============================================================================
  1748. class Game_Battler < Game_BattlerBase
  1749.   def set_normal_battler_name
  1750.     @battler_name = @battler_name.split(/★/)[0]
  1751.   end
  1752.   def set_beaten_battler_name
  1753.     if guard?
  1754.       if (UseActorGuardGraphic && actor?) or
  1755.          (UseEnemyGuardGraphic && enemy?)
  1756.         set_guard_battler_name
  1757.         return
  1758.       end
  1759.     end
  1760.     @battler_name = @battler_name.split(/★/)[0] + "★1"
  1761.     if UseActorWBSE && actor?
  1762.       Audio.se_play("Audio/SE/AWBSE_#{id}", 100, 100)
  1763.     elsif UseEnemyWBSE && enemy?
  1764.       Audio.se_play("Audio/SE/EWBSE_#{enemy_id}", 100, 100)
  1765.     end
  1766.   end
  1767.   def set_dead_battler_name
  1768.     @battler_name = @battler_name.split(/★/)[0] + "★2"
  1769.   end
  1770.   def set_guard_battler_name
  1771.     @battler_name = @battler_name.split(/★/)[0] + "★3"
  1772.     if UseActorGDSE && actor?
  1773.       Audio.se_play("Audio/SE/AGDSE_#{id}", 100, 100)
  1774.     elsif UseEnemyGDSE && enemy?
  1775.       Audio.se_play("Audio/SE/EGDSE_#{enemy_id}", 100, 100)
  1776.     end
  1777.   end
  1778. end
  1779. #==============================================================================
  1780. # ■ Sprite_Battler
  1781. #==============================================================================
  1782. class Sprite_Battler < Sprite_Base
  1783.   #--------------------------------------------------------------------------
  1784.   # ● 初始化(追加定义)
  1785.   #--------------------------------------------------------------------------
  1786.   alias hzhj_old_init_for_dead_spr_battler initialize
  1787.   def initialize(viewport, battler = nil)
  1788.     hzhj_old_init_for_dead_spr_battler(viewport, battler)
  1789.     @dead_graphic_used = false
  1790.     if @battler
  1791.       @battler.set_normal_battler_name
  1792.       if @battler.dead?
  1793.         if (UseActorDeadGraphic && @battler.actor?) or
  1794.            (UseEnemyDeadGraphic && @battler.enemy?)
  1795.           @battler.set_dead_battler_name
  1796.           @dead_graphic_used = true
  1797.         end
  1798.       end
  1799.     end
  1800.     @beaten_duration = -1
  1801.   end
  1802.   #--------------------------------------------------------------------------
  1803.   # ● 设置战斗者(追加定义)
  1804.   #--------------------------------------------------------------------------
  1805.   alias hzhj_old_set_battler_for_dead_spr_battler battler=
  1806.   def battler=(value)
  1807.     if [url=home.php?mod=space&uid=133701]@battler[/url] != value
  1808.       @dead_graphic_used = false
  1809.       if value
  1810.         value.set_normal_battler_name
  1811.         if value.dead?
  1812.           if (UseActorDeadGraphic && value.actor?) or
  1813.              (UseEnemyDeadGraphic && value.enemy?)
  1814.             value.set_dead_battler_name
  1815.             @dead_graphic_used = true
  1816.           end
  1817.         end
  1818.       end
  1819.       @beaten_duration = -1
  1820.     end
  1821.     hzhj_old_set_battler_for_dead_spr_battler(value)
  1822.   end
  1823.   #--------------------------------------------------------------------------
  1824.   # ● 源位图(Source Bitmap)的更新(重定义)
  1825.   #--------------------------------------------------------------------------
  1826.   alias hzhj_old_update_bitmap_for_was_beaten_spr_battler update_bitmap
  1827.   def update_bitmap
  1828.     if @beaten_duration > 0
  1829.       @beaten_duration -= 1
  1830.     elsif @beaten_duration == 0
  1831.       @beaten_duration = -1
  1832.       set_bitmap(:normal)
  1833.     end
  1834.     hzhj_old_update_bitmap_for_was_beaten_spr_battler
  1835.   end
  1836.   #--------------------------------------------------------------------------
  1837.   # ● 初始化可视状态(追加定义)
  1838.   #--------------------------------------------------------------------------
  1839.   alias hzhj_old_visibility_for_dead_spr_battler init_visibility
  1840.   def init_visibility
  1841.     hzhj_old_visibility_for_dead_spr_battler
  1842.     if @battler.dead?
  1843.       if (UseActorDeadGraphic && @battler.actor?) or
  1844.          (UseEnemyDeadGraphic && @battler.enemy?)
  1845.         self.opacity = 255
  1846.       end
  1847.     end
  1848.   end
  1849.   #--------------------------------------------------------------------------
  1850.   # ● 效果开始(追加定义)
  1851.   #--------------------------------------------------------------------------
  1852.   alias hzhj_old_start_effect_for_dead_spr_battler start_effect
  1853.   def start_effect(effect_type)
  1854.     if effect_type == :appear
  1855.       if @dead_graphic_used
  1856.         set_bitmap(:normal)
  1857.         @effect_type = nil
  1858.         @effect_duration = 0
  1859.         @dead_graphic_used = false
  1860.         @battler_visible = true
  1861.         return
  1862.       end
  1863.     elsif effect_type == :collapse or
  1864.           effect_type == :boss_collapse or
  1865.           effect_type == :instant_collapse
  1866.       if @beaten_duration >= 0
  1867.         @beaten_duration = -1
  1868.         set_bitmap(:normal)
  1869.       end
  1870.       if (UseActorDeadGraphic && @battler.actor?) or
  1871.          (UseEnemyDeadGraphic && @battler.enemy?)
  1872.         set_bitmap(:dead)
  1873.         @effect_type = nil
  1874.         @effect_duration = 0
  1875.         @dead_graphic_used = true
  1876.         @battler_visible = false
  1877.         return
  1878.       end
  1879.     end
  1880.     hzhj_old_start_effect_for_dead_spr_battler(effect_type)
  1881.   end
  1882.   #--------------------------------------------------------------------------
  1883.   # ● 设置新的位图(新增定义)
  1884.   #--------------------------------------------------------------------------
  1885.   def set_bitmap(sym)
  1886.     case sym
  1887.     when :normal
  1888.       @battler.set_normal_battler_name
  1889.     when :was_beaten
  1890.       @battler.set_beaten_battler_name
  1891.     when :dead
  1892.       @battler.set_dead_battler_name
  1893.     else
  1894.       return
  1895.     end
  1896.     new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
  1897.     if bitmap != new_bitmap
  1898.       self.bitmap = new_bitmap
  1899.       @dynamic_duration = 0
  1900.       @sx = 0
  1901.       @sw = bitmap.width / DynamicPatternMax
  1902.       @sh = bitmap.height
  1903.       self.ox = @sw / 2
  1904.       self.oy = @sh
  1905.       src_rect.set(@sx, 0, @sw, @sh)
  1906.     end
  1907.     update_origin
  1908.     update_position
  1909.   end
  1910. end

  1911. #==============================================================================
  1912. # ■ Scene_Battle
  1913. #==============================================================================
  1914. class Scene_Battle < Scene_Base
  1915.   #--------------------------------------------------------------------------
  1916.   # ● 发动技能/物品(新增定义)
  1917.   #--------------------------------------------------------------------------
  1918.   def hzhj_invoke_item(target, item, damage_target)
  1919.     refresh_status
  1920.     @log_window.display_action_results(damage_target, item)
  1921.     @subject.damage_section_displayed = false
  1922.     @subject.last_target_index = target.index
  1923.     return if target.dead?
  1924.     if rand < target.item_cnt(@subject, item)
  1925.       hzhj_invoke_counter_attack(target, item)
  1926.     elsif rand < target.item_mrf(@subject, item)
  1927.       hzhj_invoke_magic_reflection(target, item)
  1928.     end
  1929.   end
  1930.   #--------------------------------------------------------------------------
  1931.   # ● 发动物理反击(新增定义)
  1932.   #--------------------------------------------------------------------------
  1933.   def hzhj_invoke_counter_attack(target, item)
  1934.     @log_window.display_counter(target, item)
  1935.     attack_skill = $data_skills[target.attack_skill_id]
  1936.     @subject.item_apply(target, attack_skill)
  1937.     need_move = false
  1938.     animation1 = $data_animations[target.animation1_id]
  1939.     need_move = animation1.need_move if animation1
  1940.     ary = [@subject]
  1941.     if need_move
  1942.       target.setup_move_info(@subject, RealMoveDuration, animation1.move_se)
  1943.       wait_for_move
  1944.     end
  1945.     @subject.damage_section_displayed = false
  1946.     @subject.not_damage_section = false
  1947.     show_subject_animation(target.animation1_id, target)
  1948.     show_normal_animation(ary, target.atk_animation_id1, false)
  1949.     show_normal_animation(ary, target.atk_animation_id2, true)
  1950.     @log_window.wait
  1951.     wait_for_animation
  1952.     if need_move && target.alive?
  1953.       target.come_back_self_position(RealMoveDuration)
  1954.       wait_for_move
  1955.     end
  1956.     refresh_status
  1957.     @log_window.display_action_results(@subject, attack_skill)
  1958.   end
  1959.   #--------------------------------------------------------------------------
  1960.   # ● 发动魔法反射(新增定义)
  1961.   #--------------------------------------------------------------------------
  1962.   def hzhj_invoke_magic_reflection(target, item)
  1963.     @subject.damage_section_displayed = false
  1964.     @subject.not_damage_section = false
  1965.     @log_window.display_reflection(target, item)
  1966.     @subject.item_apply(@subject, item)
  1967.     refresh_status
  1968.     @log_window.display_action_results(@subject, item)
  1969.   end
  1970. end

  1971. #==============================================================================
  1972. # ■ Game_Battler
  1973. #==============================================================================
  1974. class Game_Battler < Game_BattlerBase
  1975.   attr_accessor :damage_section_displayed
  1976.   attr_accessor :not_damage_section
  1977. end
  1978. #==============================================================================
  1979. # ■ Game_Actor
  1980. #==============================================================================
  1981. class Game_Actor < Game_Battler
  1982.   #--------------------------------------------------------------------------
  1983.   # ● 执行伤害效果
  1984.   #--------------------------------------------------------------------------
  1985.   alias hzhj_old_per_damage_for_damage_section_game_actor perform_damage_effect
  1986.   def perform_damage_effect
  1987.     unless damage_section_displayed
  1988.       hzhj_old_per_damage_for_damage_section_game_actor
  1989.     end
  1990.   end
  1991. end
  1992. #==============================================================================
  1993. # ■ Game_Enemy
  1994. #==============================================================================
  1995. class Game_Enemy < Game_Battler
  1996.   #--------------------------------------------------------------------------
  1997.   # ● 执行伤害效果
  1998.   #--------------------------------------------------------------------------
  1999.   alias hzhj_old_per_damage_for_damage_section_game_enemy perform_damage_effect
  2000.   def perform_damage_effect
  2001.     unless damage_section_displayed
  2002.       hzhj_old_per_damage_for_damage_section_game_enemy
  2003.     end
  2004.   end
  2005. end
  2006. #==============================================================================
  2007. # ■ Sprite_Battler
  2008. #==============================================================================
  2009. class Sprite_Battler < Sprite_Base
  2010.   #--------------------------------------------------------------------------
  2011.   # ● SE 和闪烁时机的处理
  2012.   #--------------------------------------------------------------------------
  2013.   def animation_process_timing(timing)
  2014.     if timing.se.name == DamageSectionDisplaySEName
  2015.       hp_value = @battler.result.hp_damage
  2016.       mp_value = @battler.result.mp_damage
  2017.       tp_value = @battler.result.tp_damage
  2018.       value = args = nil
  2019.       was_beaten = false
  2020.       if hp_value != 0 && [email protected]_damage_section
  2021.         was_beaten = true if hp_value > 0
  2022.         value = hp_value * timing.flash_color.red.to_i / 100
  2023.         critical = @battler.result.critical
  2024.         args = [:hp, value, critical]
  2025.       elsif mp_value != 0 && [email protected]_damage_section
  2026.         was_beaten = true if mp_value > 0
  2027.         value = mp_value * timing.flash_color.red.to_i / 100
  2028.         critical = @battler.result.critical
  2029.         args = [:mp, value, critical]
  2030.       elsif tp_value != 0 && [email protected]_damage_section
  2031.         was_beaten = true if tp_value > 0
  2032.         value = tp_value * timing.flash_color.red.to_i / 100
  2033.         critical = @battler.result.critical
  2034.         args = [:tp, value, critical]
  2035.       end
  2036.       if value && args
  2037.         args[3] = @battler.actor? ? :actor : (@battler.enemy? ? :enemy : nil)
  2038.         @battler.damage_section_displayed = true
  2039.         start_damage(args)
  2040.         if UseBeatenGraphic && was_beaten
  2041.           set_bitmap(:was_beaten)
  2042.           @beaten_duration = BeatenGraphicDuration
  2043.         end
  2044.       end
  2045.       return
  2046.     end
  2047.     super(timing)
  2048.   end
  2049. end
  2050. #==============================================================================
  2051. # ■ Scene_Battle
  2052. #==============================================================================
  2053. class Scene_Battle < Scene_Base
  2054.   #--------------------------------------------------------------------------
  2055.   # ● 应用技能/物品效果(新增定义)
  2056.   #--------------------------------------------------------------------------
  2057.   def hzhj_apply_item_effects(target, item)
  2058.     target.damage_section_displayed = false
  2059.     target.not_damage_section = false
  2060.     target = apply_substitute(target, item)
  2061.     target.damage_section_displayed = false
  2062.     target.not_damage_section = false
  2063.     target.item_apply(@subject, item)
  2064.     return target
  2065.   end
  2066. end
  2067. #==============================================================================
  2068. # ■ 此脚本来自 [url]www.66rpg.com[/url]
  2069. #==============================================================================
复制代码
这个是后知后觉的作品,你可以用一下。
是va横版战斗脚本

作者: timo    时间: 2013-4-29 18:04
1142881837 发表于 2013-4-27 06:55

没用额啊
作者: 薄皮嫩肉胡萝卜    时间: 2013-4-29 19:43
是这种吗?
作者: 百科砖家    时间: 2013-4-30 11:35
你可以试试sideview100





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