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

Project1

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

[已经过期] 还是全动画脚本的问题……

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2010-8-1
帖子
231
跳转到指定楼层
1
发表于 2010-9-3 13:11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 seasoneast 于 2010-9-20 22:55 编辑

为何使用果冻叮当猫的脚本后,普通战斗胜利正常,而事件中的战斗处理胜利后不显示胜利动画……?
  1. #==============================================================================
  2. # ■ 全动画战斗系统(修改加强再加强版)
  3. #------------------------------------------------------------------------------
  4. #  By whbm
  5. #   应用脚本 彩虹神剑 By 66
  6. #==============================================================================
  7.     $fangyu = 0
  8. #   修改内容:
  9. #   1.修改战斗失败继续后被怪打就出现死亡静态或者不再出现死亡动态的BUG
  10. #   2.改变防御方式,怪打的时候防御动作才显现,打完就恢复
  11. #   3.修正一个角色死亡后,其他角色添加第6号状态的问题,就是那个一个死了,其他的都要被
  12. #     打好几次的BUG.
  13. #   4.修正不显示战斗胜利图的BUG
  14. #                                        by 星云
  15. #   5.在此脚本中增加了施法动画(放在第八个★动画里面)
  16. #   6.修复了伤害数值与动画被敌人挡住的情况
  17. #   7.修复了攻击动画帧数过多的情况下和人物死亡判定情况下的挨打动画(闪烁判定)
  18. #   8.增加了伤害美化效果(可选,素材放在Pictures文件夹的子文件夹Srting中)
  19. #   9.修改了总伤害与分段伤害显示不一致的BUG
  20. #   10.修复了全画面动画向下的错误
  21. #   11.修复了使用复活出现的错误
  22. #   12.修改了坐标,横纵版均支持
  23. #   13.其他问题会继续跟进(即将加入动态扣血,正在排除BUG中- -,想优先使用的可以来联系我)
  24. #                                        by 果冻叮当猫
  25. #==============================================================================
  26. #简要介绍:
  27. #    本脚本实现了战斗的动态效果,其中包含了待机、攻击、防御、挨打、胜利、死亡。类似于超级横版、超级战斗。但是本系统特色在于所有效果的实现并不是靠庞大的战斗图,而是使用了数据库中的动画。这样不仅突破了不同人不同祯数量的限制,并且方便了单动画单祯的修改。
  28. #使用方法:
  29. #    个人觉得还是比较简单,但是大量的怪物还是会令人头痛。
  30. #    1.数据库的设置
  31. #      敌人必要的动画有待机、挨打、死亡三个必要的动画
  32. #      角色必要的动画有待机、挨打、防御、死亡动态、胜利动态、死亡静态、胜利静态
  33. #
  34. #      死亡静态与胜利静态:动画中只有1祯,为相应动态动画的最后一祯
  35. #      
  36. #      剩下的就是人物攻击的动画,和正常的动画是一样设置
  37. #      如图中的攻击等待动画只是为了在播放攻击动画的同时消除人物本身(素材原因,人物攻击的时候离开了原位,如果是在原位置放魔法是用不上的)
  38. #    2.战斗图的设置
  39. #      战斗图其实只是一个透明的图片,它只是用来描述一个敌人或者角色的大小,并与相应的战斗动画编号相衔接。
  40. #      战斗图的文件名格式如下:
  41. #          名字★待机★防御★挨打★死亡动态★死亡静态★胜利动态★胜利静态★施法动画(本人自己添加的).png
  42. #          (其中“名字”一项与动画无关)
  43. #          例如:
  44. #          紫烟★140★141★148★149★150★144★145★146.png
  45. #      对于敌人无胜利动画或者防御动画,请保持该位置为空,例如:
  46. #          蓝若冰★124★★126★127★128★★★129.png
  47. #    综上,设置就这么完成了。
  48. #注意事项:
  49. #    1.由于系统中待机由动画实现,所以无法使用状态附带动画的功能。
  50. #    2.可以在脚本中使用Ctrl+Shift+F通篇搜索“小改动”,可以修改某些窗口的Z值。
  51. #    3.当您将此系统向您的工程中移植的时候也要注意事项2中的“小改动”。
  52. #    4.系统是从游戏“石焚刃暖”中提取出来的,或许会有疏漏与多余的东西,BUG也是不免的。大家尽管提便是。     
  53. #==============================================================================
  54. class Spriteset_Battle
  55.   #--------------------------------------------------------------------------
  56.   # ● 初始化变量
  57.   #--------------------------------------------------------------------------
  58.   def initialize
  59.     # 生成显示端口
  60.     @viewport1 = Viewport.new(0, 0, 640, 480)
  61.     @viewport2 = Viewport.new(0, 0, 640, 480)
  62.     @viewport3 = Viewport.new(0, 0, 640, 480)
  63.     @viewport4 = Viewport.new(0, 0, 640, 480)
  64.     @viewport2.z = 101
  65.     @viewport3.z = 200
  66.     @viewport4.z = 5000
  67.     # 生成战斗背景活动块
  68.     @battleback_sprite = Sprite.new(@viewport1)
  69.     # 生成敌人活动块
  70.     @enemy_sprites = []
  71.     for enemy in $game_troop.enemies.reverse
  72. #      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  73.       @enemy_sprites.push(Sprite_Battler.new(@viewport4, enemy))#敌人的显示高度
  74.     end
  75.     # 生成敌人活动块
  76.     @actor_sprites = []
  77.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  78.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  79.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  80.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  81.     # 生成天候
  82.     @weather = RPG::Weather.new(@viewport1)
  83.     # 生成图片活动块
  84.     @picture_sprites = []
  85.     for i in 51..100
  86.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  87.         $game_screen.pictures[i]))
  88.     end
  89.     # 生成计时器块
  90.     @timer_sprite = Sprite_Timer.new
  91.     # 刷新画面
  92.     update
  93.   end
  94.   #..........................................................................
  95.   #--------------------------------------------------------------------------
  96.   # ● 胜利图
  97.   #--------------------------------------------------------------------------
  98.   def win
  99.     for sprite in @actor_sprites
  100.       sprite.win
  101.     end
  102.   end
  103.   #..........................................................................
  104.   #--------------------------------------------------------------------------
  105.   # ● 刷新画面
  106.   #--------------------------------------------------------------------------
  107.   def update
  108.     # 刷新角色的活动块 (对应角色的替换)
  109.     @actor_sprites[0].battler = $game_party.actors[0]
  110.     @actor_sprites[1].battler = $game_party.actors[1]
  111.     @actor_sprites[2].battler = $game_party.actors[2]
  112.     @actor_sprites[3].battler = $game_party.actors[3]
  113.     # 战斗背景的文件名与现在情况有差异的情况下
  114.     if @battleback_name != $game_temp.battleback_name
  115.       @battleback_name = $game_temp.battleback_name
  116.       if @battleback_sprite.bitmap != nil
  117.         @battleback_sprite.bitmap.dispose
  118.       end
  119.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  120.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  121.     end
  122.     # 刷新战斗者的活动块
  123.     for sprite in @enemy_sprites + @actor_sprites
  124.       sprite.update
  125.     end
  126.     # 刷新天气图形
  127.     @weather.type = $game_screen.weather_type
  128.     @weather.max = $game_screen.weather_max
  129.     @weather.update
  130.     # 刷新图片活动块
  131.     for sprite in @picture_sprites
  132.       sprite.update
  133.     end
  134.     # 刷新计时器活动块
  135.     @timer_sprite.update
  136.     # 设置画面的色调与震动位置
  137.     @viewport1.tone = $game_screen.tone
  138.     @viewport1.ox = $game_screen.shake
  139.     # 设置画面的闪烁色
  140.     @viewport4.color = $game_screen.flash_color
  141.     # 刷新显示端口
  142.     @viewport1.update
  143.     @viewport2.update
  144.     @viewport4.update
  145.   end
  146. end
  147. class Arrow_Enemy < Arrow_Base
  148.   #--------------------------------------------------------------------------
  149.   # ● 获取光标指向的敌人
  150.   #--------------------------------------------------------------------------
  151.   def enemy
  152.     return $game_troop.enemies[@index]
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 刷新画面
  156.   #--------------------------------------------------------------------------
  157.   def update
  158.     super
  159.     # 如果指向不存在的敌人就离开
  160.     $game_troop.enemies.size.times do
  161.       break if self.enemy.exist?
  162.       @index += 1
  163.       @index %= $game_troop.enemies.size
  164.     end
  165.     # 光标右
  166.     if Input.repeat?(Input::RIGHT)
  167.       $game_system.se_play($data_system.cursor_se)
  168.       $game_troop.enemies.size.times do
  169.         @index += 1
  170.         @index %= $game_troop.enemies.size
  171.         break if self.enemy.exist?
  172.       end
  173.     end
  174.     # 光标左
  175.     if Input.repeat?(Input::LEFT)
  176.       $game_system.se_play($data_system.cursor_se)
  177.       $game_troop.enemies.size.times do
  178.         @index += $game_troop.enemies.size - 1
  179.         @index %= $game_troop.enemies.size
  180.         break if self.enemy.exist?
  181.       end
  182.     end
  183.     # 设置活动块坐标
  184.     if self.enemy != nil
  185.       self.x = self.enemy.screen_x + self.ox
  186.       self.y = self.enemy.screen_y + self.oy
  187.     end
  188.   end
  189. end
  190. class Arrow_Actor < Arrow_Base
  191.   #--------------------------------------------------------------------------
  192.   # ● 获取光标指向的角色
  193.   #--------------------------------------------------------------------------
  194.   def actor
  195.     return $game_party.actors[@index]
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ● 刷新画面
  199.   #--------------------------------------------------------------------------
  200.   def update
  201.     super
  202.     # 光标右
  203.     if Input.repeat?(Input::RIGHT)
  204.       $game_system.se_play($data_system.cursor_se)
  205.       @index += 1
  206.       @index %= $game_party.actors.size
  207.     end
  208.     # 光标左
  209.     if Input.repeat?(Input::LEFT)
  210.       $game_system.se_play($data_system.cursor_se)
  211.       @index += $game_party.actors.size - 1
  212.       @index %= $game_party.actors.size
  213.     end
  214.     # 设置活动块坐标
  215.     if self.actor != nil
  216.       self.x = self.actor.screen_x + self.ox
  217.       self.y = self.actor.screen_y + self.oy
  218.     end
  219.   end
  220. end
  221. class Scene_Battle
  222.   #--------------------------------------------------------------------------
  223.   # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  224.   #--------------------------------------------------------------------------
  225.   def update_phase4_step3
  226.     # 行动方动画 (ID 为 0 的情况下是白色闪烁)
  227.     if @animation1_id == 0
  228.       @active_battler.white_flash = true
  229.     else
  230.     # 添加施法动画
  231.       @active_battler.setup_battler_ani(@active_battler.battler_name.split(/★/)[8], 1)
  232.       @active_battler.animation_id = @animation1_id
  233.       @active_battler.animation_hit = true
  234.     end
  235.     # 对像方动画
  236.     for target in @target_battlers
  237.       target.animation_id = @animation2_id
  238.       target.animation_hit = (target.damage != "Miss")
  239.       ###########################################################
  240.       target.setup_battler_dead_ani(0)
  241.       ############################################################
  242.       #.......................................................................
  243.       if target.is_a?(Game_Actor)
  244.         ##############
  245.         if target.guarding?
  246.           $fangyu = 1
  247.         end
  248.         ##############
  249.         if target.current_action.kind == 0 and target.current_action.basic == 1
  250.            target.setup_battler_ani(target.battler_name.split(/★/)[2], 1)
  251.         else
  252.          target.setup_battler_hurt_ani(0)
  253.         end
  254.       end
  255.       if target.is_a?(Game_Enemy)
  256.        if target.current_action.kind == 0 and target.current_action.basic == 1
  257.           target.setup_battler_ani(target.battler_name.split(/★/)[1])
  258.         else
  259.           target.setup_battler_hurt_ani(0)
  260.         end
  261.       end
  262.       #.......................................................................
  263.     end
  264.     # 对像方动画
  265.     for target in @target_battlers
  266.       target.animation_id = @animation2_id
  267.       target.animation_hit = (target.damage != "Miss")
  268.       #......................................................................
  269.     end
  270.     # 限制动画长度、最低 8 帧
  271.     @wait_count = 8
  272.     # 移至步骤 5
  273.     @phase4_step = 5
  274.   end
  275.   #--------------------------------------------------------------------------
  276.   # ● 刷新画面 (主回合步骤 4 : 对像方动画) ★
  277.   #--------------------------------------------------------------------------
  278.   def update_phase4_step4
  279.     # 移至步骤 5
  280.     @phase4_step = 5
  281.   end
  282. end
  283. class Game_Actor < Game_Battler
  284.   
  285. #小改动
  286. #############################################################################
  287. #                                横版修改                                   #
  288. #############################################################################
  289.   
  290.   #--------------------------------------------------------------------------
  291.   # ● 取得战斗画面的 X 坐标
  292.   #--------------------------------------------------------------------------
  293.   SCREEN_X = 50
  294.   
  295.   def screen_x
  296.     case self.index
  297.     when 0
  298.       return 515 + SCREEN_X
  299.     when 1
  300.       return 440 + SCREEN_X
  301.     when 2
  302.       return 590 + SCREEN_X
  303.     when 3
  304.       return 390 + SCREEN_X
  305.     else
  306.       return 640 + SCREEN_X
  307.     end
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● 取得战斗画面的 Y 坐标
  311.   #--------------------------------------------------------------------------
  312.   SCREEN_Y = 60
  313.   
  314.   def screen_y
  315.     case self.index
  316.     when 0
  317.       return 310 + SCREEN_Y
  318.     when 1
  319.       return 295 + SCREEN_Y
  320.     when 2
  321.       return 325 + SCREEN_Y
  322.     when 3
  323.       return 340 + SCREEN_Y
  324.     else
  325.       return 1000 + SCREEN_Y
  326.     end
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● 取得战斗画面的 Z 坐标
  330.   #--------------------------------------------------------------------------
  331.   def screen_z
  332.     case self.index
  333.     when 0
  334.       return 1
  335.     when 1
  336.       return 0
  337.     when 2
  338.       return 2
  339.     when 3
  340.       return 3
  341.     else
  342.       return 0
  343.     end
  344.   end
  345.   
  346.   
  347. #############################################################################
  348.   
  349.   
  350.   
  351.   #--------------------------------------------------------------------------
  352.   # ● 取得战斗画面的 X 坐标
  353.   #--------------------------------------------------------------------------
  354. #  def screen_x
  355.     # 返回计算后的队伍 X 坐标的排列顺序
  356. #    if self.index != nil
  357.       #......................................................................
  358. #      return self.index * 90 + 500
  359.       #......................................................................
  360. #    else
  361. #      return 0
  362. #    end
  363. #  end
  364.   #--------------------------------------------------------------------------
  365.   # ● 取得战斗画面的 Y 坐标
  366.   #--------------------------------------------------------------------------
  367. #  def screen_y
  368.     #........................................................................
  369. #    return 464 - self.index * 110
  370.     #........................................................................
  371. #  end
  372.   #--------------------------------------------------------------------------
  373.   # ● 取得战斗画面的 Z 坐标
  374.   #--------------------------------------------------------------------------
  375. #  def screen_z
  376.     # 返回计算后的队伍 Z 坐标的排列顺序
  377. #    if self.index != nil
  378. #      return 4 - self.index
  379. #    else
  380. #      return 0
  381. #    end
  382. #  end
  383. end

  384. class Scene_Battle
  385.   #..........................................................................
  386.   #--------------------------------------------------------------------------
  387.   # ● 返回phase
  388.   #--------------------------------------------------------------------------
  389.   def phase
  390.     return @phase
  391.   end
  392.   #--------------------------------------------------------------------------
  393.   # ● 返回phase4_step
  394.   #--------------------------------------------------------------------------
  395.   def phase4_step
  396.     return @phase4_step
  397.   end
  398.   #--------------------------------------------------------------------------
  399.   # ● 返回phase4_step
  400.   #--------------------------------------------------------------------------
  401.   def actor_command_active?
  402.     return @actor_command_window.active
  403.   end
  404.   #..........................................................................
  405. end
  406. class Game_Battler
  407.   #..........................................................................
  408.   #--------------------------------------------------------------------------
  409.   # ● 获取循环的动画 ID
  410.   #--------------------------------------------------------------------------  
  411.   def show_damage(value)
  412.     @show_damage_value = value
  413.   end
  414.   #--------------------------------------------------------------------------
  415.   # ● 获取循环的动画 ID
  416.   #--------------------------------------------------------------------------
  417.   def show_damage_value
  418.     return @show_damage_value
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ● 获取循环的动画 ID
  422.   #--------------------------------------------------------------------------
  423.   def battler_ani
  424.     return @battler_ani
  425.   end
  426.   #--------------------------------------------------------------------------
  427.   # ● 获取循环的动画 ID
  428.   #--------------------------------------------------------------------------
  429.   def setup_battler_ani(battler_ani, once = 0)
  430.     @battler_ani = battler_ani
  431.     @once = once
  432.   end
  433.   #--------------------------------------------------------------------------
  434.   # ● 获取循环的动画 ID
  435.   #--------------------------------------------------------------------------
  436.   def setup_battler_hurt_ani(hurt)
  437.     @hurt = hurt
  438.   end  
  439.   #--------------------------------------------------------------------------
  440.   # ● 获取循环的动画 ID
  441.   #--------------------------------------------------------------------------
  442.   def setup_battler_dead_ani(over)
  443.     @over = over
  444.   end
  445.   #--------------------------------------------------------------------------
  446.   # ● 获取循环的动画 ID
  447.   #--------------------------------------------------------------------------
  448.   def battler_dead_ani
  449.     return @over
  450.   end
  451.   #--------------------------------------------------------------------------
  452.   # ● 获取循环的动画 ID
  453.   #--------------------------------------------------------------------------
  454.   def battler_ani_once
  455.     return @once
  456.   end
  457.   #--------------------------------------------------------------------------
  458.   # ● 获取循环的动画 ID
  459.   #--------------------------------------------------------------------------
  460.   def battler_hurt_ani
  461.     return @hurt
  462.   end
  463.   #..........................................................................
  464. end
  465. class Sprite_Battler < RPG::Sprite
  466.   #..........................................................................
  467.   #--------------------------------------------------------------------------
  468.   # ● 胜利图
  469.   #--------------------------------------------------------------------------
  470.   def win
  471.     if @battler_name != nil and not @battler.hidden and not @battler.dead?
  472.       @battler.setup_battler_ani(@battler_name.split(/★/)[6], 1)
  473.     end
  474.   end
  475.   #..........................................................................
  476.   #--------------------------------------------------------------------------
  477.   # ● 释放
  478.   #--------------------------------------------------------------------------
  479.   def dispose
  480.     if self.bitmap != nil
  481.       self.bitmap.dispose
  482.     end
  483.     super
  484.   end
  485.   #--------------------------------------------------------------------------
  486.   # ● 刷新画面
  487.   #--------------------------------------------------------------------------
  488.   def update
  489.     super
  490.     # 战斗者为 nil 的情况下
  491.     if @battler == nil
  492.       self.bitmap = nil
  493.       loop_animation(nil)
  494.       return
  495.     end
  496.     # 文件名和色相与当前情况有差异的情况下
  497.     if @battler.battler_name != @battler_name or
  498.        @battler.battler_hue != @battler_hue
  499.       @battler_hue = @battler.battler_hue
  500.       # 获取、设置位图
  501.       @battler_name = @battler.battler_name
  502.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  503.       #.......................................................................
  504.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  505.       #.......................................................................
  506.       @width = bitmap.width
  507.       @height = bitmap.height
  508.       self.ox = @width / 2
  509.       self.oy = @height
  510.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  511.       if @battler.is_a?(Game_Enemy)
  512.         if @battler.dead? or @battler.hidden
  513.           self.opacity = 0
  514.         end
  515.       end
  516.     end
  517.     # 动画 ID 与当前的情况有差异的情况下
  518.     #.........................................................................
  519.     if @battler.battler_ani != @battler_ani
  520.       @battler_ani = @battler.battler_ani
  521.       loop_animation($data_animations[@battler_ani.to_i])
  522.     end
  523.     #.........................................................................
  524.     # 应该被显示的角色的情况下
  525.     if @battler.is_a?(Game_Actor) and @battler_visible
  526.       # 不是主状态的时候稍稍降低点透明度
  527.       if $game_temp.battle_main_phase
  528.         self.opacity += 3 if self.opacity < 255
  529.       else
  530.         self.opacity -= 3 if self.opacity > 207
  531.       end
  532.     end
  533.     # 明灭
  534.     if @battler.blink
  535.       blink_on
  536.     else
  537.       blink_off
  538.     end
  539.     # 不可见的情况下
  540.     unless @battler_visible
  541.       # 出现 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  542.       if not @battler.hidden and not @battler.dead? and
  543.          (@battler.damage == nil or @battler.damage_pop)
  544.         if @battler.is_a?(Game_Enemy)
  545.           appear
  546.         else
  547.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  548.         end
  549.         @battler_visible = true
  550.       end
  551.     end
  552.     # 可见的情况下
  553.     if @battler_visible
  554.       # 逃跑
  555.       if @battler.hidden
  556.         $game_system.se_play($data_system.escape_se)
  557.         escape
  558.         @battler_visible = false
  559.       end
  560.       # 白色闪烁
  561.       if @battler.white_flash
  562.         whiten
  563.         @battler.white_flash = false
  564.       end
  565.       # 动画
  566.       if @battler.animation_id != 0
  567.         animation = $data_animations[@battler.animation_id]
  568.         animation(animation, @battler.animation_hit)
  569.         @battler.animation_id = 0
  570.       end
  571.       # 伤害
  572.       if @battler.damage_pop
  573.         damage(@battler.damage, @battler.critical)
  574.         @battler.damage = nil
  575.         @battler.critical = false
  576.         @battler.damage_pop = false
  577.       end
  578.       # korapusu
  579.       if @battler.damage == nil and @battler.dead?
  580.         #....................................................................
  581.         if @battler.is_a?(Game_Enemy)
  582.           $game_system.se_play($data_system.enemy_collapse_se)
  583.           #collapse
  584.         else
  585.           $game_system.se_play($data_system.actor_collapse_se)
  586.         end
  587.         #....................................................................
  588.         @battler_visible = false
  589.       end
  590.     end
  591.     # 设置活动块的坐标
  592.     self.x = @battler.screen_x
  593.     self.y = @battler.screen_y
  594.     self.z = @battler.screen_z
  595.   end
  596. end
  597. module RPG
  598.   class Sprite < ::Sprite
  599.     def damage(value, critical)
  600.       dispose_damage
  601.       if value.is_a?(Numeric)
  602.         damage_string = value.abs.to_s
  603.       else
  604.         damage_string = value.to_s
  605.       end
  606.       bitmap = Bitmap.new(160, 48)
  607.       bitmap.font.name = "Arial Black"
  608.       bitmap.font.size = 32
  609.       bitmap.font.color.set(0, 0, 0)
  610.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  611.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  612.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  613.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  614.       if value.is_a?(Numeric) and value < 0
  615.         bitmap.font.color.set(176, 255, 144)
  616.       else
  617.         bitmap.font.color.set(255, 255, 255)
  618.       end
  619.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  620.       if critical
  621.         bitmap.font.size = 20
  622.         bitmap.font.color.set(0, 0, 0)
  623.         bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  624.         bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  625.         bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  626.         bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  627.         bitmap.font.color.set(255, 255, 255)
  628.         bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  629.       end
  630.       @_damage_sprite = ::Sprite.new(self.viewport)
  631.       @_damage_sprite.bitmap = bitmap
  632.       @_damage_sprite.ox = 80
  633.       @_damage_sprite.oy = 20
  634.       @_damage_sprite.x = self.x
  635.       @_damage_sprite.x -= self.bitmap.width/2 if @battler.is_a?(Game_Actor)
  636.       @_damage_sprite.y = self.y - self.oy / 2
  637.       @_damage_sprite.z = 3000
  638.       @_damage_duration = 40
  639.     end
  640.   end
  641. end
  642. module RPG
  643. #--------------------------------------------------------------------------
  644. # ● 常量设定
  645. #--------------------------------------------------------------------------
  646. # 是否显示总伤害
  647. SHOW_TOTAL_DAMAGE = false
  648. # 角色受攻击时是否跳一下
  649. BATTLER_JUMP = true
  650. # 伤害美化字符串文件夹名(放在Pictures文件夹中的子文件夹)
  651. STRING_DOCUMENTS = "String/"
  652. # 是否使用伤害美化效果
  653. USE_DAMAGE = true
  654. # 会心一击音效
  655. CRITICAL_SE="Audio/SE/1267.wav"

  656. class Sprite < ::Sprite
  657.    #==========================================
  658.    # 修改说明:
  659.    # @flash_shake用来制作挨打时候跳跃
  660.    # @_damage    用来记录每次打击之后弹出数字
  661.    # @_total_damage 记录总伤害
  662.    # @_total_damage_duration 总伤害持续帧
  663.    #==========================================
  664.    #alias 66RPG_rainbow_initialize : initialize
  665.    def initialize(viewport = nil)
  666.      #66RPG_rainbow_initialize(viewport)
  667.      super(viewport)
  668.      @_whiten_duration = 0
  669.      @_appear_duration = 0
  670.      @_escape_duration = 0
  671.      @_collapse_duration = 0
  672.      @_damage_duration = 0
  673.      @_animation_duration = 0
  674.      @_blink = false
  675.      # 挨打时候跳跃
  676.      @flash_shake = 0
  677.      # 伤害记录数组
  678.      @_damage = []
  679.      # 总伤害数字
  680.      @_total_damage = 0
  681.      # 总伤害持续帧
  682.      @_total_damage_duration = 0
  683.      #.........................................................................
  684.      #记录已经发生的伤害的变量
  685.      @p_dam=0
  686.      @d_dam=0
  687.      @hits=0
  688.      ############ #小改动
  689.      #记录前一次攻击次数
  690.      @temp_hits=0
  691.      #判断是否为最后一次攻击
  692.      @last_hits=0
  693.      ############
  694.      #.........................................................................
  695.    end
复制代码
  1.    #--------------------------------------------------------------------------
  2.    #美化的伤害处理
  3.    #--------------------------------------------------------------------------
  4.     def damage(value, critical)
  5.       
  6. if USE_DAMAGE == true then
  7.   
  8.       # 释放伤害,效果是伤害数字快速消失,觉得不如不消失好看......
  9.       #dispose_damage
  10.       #清除hit数
  11.       dispose_hit
  12.       # 如果伤害值是数值
  13.       if value.is_a?(Numeric)
  14.         # 绝对值转为字符串
  15.         damage_string = value.abs.to_s
  16.       else
  17.         # 转为字符串
  18.         damage_string = value.to_s
  19.       end
  20.       # 初始化位图
  21.       bitmap = Bitmap.new(162, 64)
  22.       bitmap.font.name = ["华文行楷","黑体", "宋体"]
  23.       bitmap.font.size = 32
  24.       # 伤害值是数值的情况下
  25.       if value.is_a?(Numeric)
  26.         # 分割伤害值字符串
  27.         damage_array = damage_string.scan(/./)
  28.         damage_x = 81 - damage_string.size * 9
  29.         # 伤害值为负的情况下
  30.         if value < 0
  31.           # 调用回复数字表
  32.           rect_y = 32
  33.         else
  34.           # 调用伤害数字表
  35.           rect_y = 0
  36.         end
  37.         # 循环伤害值字符串
  38.         for char in damage_array
  39.           number = char.to_i
  40.           # 显示伤害数字
  41.           bitmap.blt(damage_x, 32, RPG::Cache.picture(STRING_DOCUMENTS + "Damage"),#"Damagenew"),
  42.           Rect.new(number * 18, rect_y, 18, 32))
  43.           # 后移一位
  44.           damage_x += 18
  45.         end
  46.       # 伤害值不是数值的情况
  47.       else
  48.         # 如果伤害值不是 Miss
  49.         unless value == "Miss"
  50.           # 系统默认描画字符串
  51.           bitmap.font.color.set(0, 0, 0)
  52.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
  53.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
  54.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
  55.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
  56.           bitmap.font.color.set(255, 255, 255)
  57.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
  58.         # Miss 的情况下
  59.         else
  60.           # 显示未击中图画
  61.           bitmap.blt(36, 28, RPG::Cache.picture(STRING_DOCUMENTS + "Damage"), Rect.new(90, 64, 90, 32))
  62.         end
  63.       end
  64.       # 会心一击标志打开的情况
  65.       if critical
  66.         #会心一击伤害效果
  67. ###########################################################
  68.         Audio.se_play(CRITICAL_SE,90,100) if CRITICAL_SE != "" and !$use_skill
  69.         $game_screen.start_flash(Color.new(255,255,255,255),5)
  70. ###########################################################
  71.         # 显示会心一击图画
  72.         bitmap.blt(36, 0, RPG::Cache.picture(STRING_DOCUMENTS + "Damage"), Rect.new(0, 64, 90, 32))
  73.       end
  74.       
  75. else
  76.       
  77.      #.........................................................................
  78.      #清除hit数
  79.      dispose_hit
  80.      #.........................................................................
  81.      if value.is_a?(Numeric)
  82.        damage_string = value.abs.to_s
  83.      else
  84.        damage_string = value.to_s
  85.      end
  86.      bitmap = Bitmap.new(160, 48)
  87.      bitmap.font.name = "Arial Black"
  88.      bitmap.font.size = 32
  89.      bitmap.font.color.set(0, 0, 0)
  90.      bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  91.      bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  92.      bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  93.      bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  94.      #=======================================
  95.      # 修改:颜色
  96.      #=======================================
  97.      if value.is_a?(Numeric) and value < 0
  98.        bitmap.font.color.set(176, 255, 144)
  99.      else
  100.        bitmap.font.color.set(255, 55, 55)
  101.      end
  102.      bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  103.      if critical
  104.        #会心一击伤害效果
  105. ###########################################################
  106.        Audio.se_play(CRITICAL_SE,50,100) if CRITICAL_SE != "" and !$use_skill
  107.        $game_screen.start_flash(Color.new(255,255,255,255),5)
  108. ###########################################################
  109.        bitmap.font.size = 20
  110.        bitmap.font.color.set(0, 0, 0)
  111.        bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  112.        bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  113.        bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  114.        bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  115.        bitmap.font.color.set(255, 255, 255)
  116.        bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  117.      end
  118.      
  119. end
  120.    
  121.      # 伤害值定位     
  122.      @_damage_sprite = ::Sprite.new#(self.viewport)
  123.      @_damage_sprite.bitmap = bitmap
  124.      @_damage_sprite.ox = 80
  125.      @_damage_sprite.oy = 20
  126.      @_damage_sprite.x = self.x
  127.      @_damage_sprite.y = self.y - self.oy / 2
  128.      @_damage_sprite.z = 30000
  129.      @_damage_duration = 40
  130.      #=======================================
  131.      # 修改:推入新的伤害
  132.      #=======================================
  133.      @_damage.push([@_damage_sprite,@_damage_duration-10,0, rand(30) - 15, rand(3)])
  134.      # 总伤害处理
  135.      make_total_damage(value)
  136.      
  137.      
  138.      
  139.     end
  140.    #--------------------------------------------------------------------------
  141.    # ● 返回 @hits
  142.    #--------------------------------------------------------------------------
  143.    def get_hit
  144.      return @hits
  145.    end
  146.    #--------------------------------------------------------------------------
  147.    # ● hit数的美化描绘
  148.    #--------------------------------------------------------------------------
  149.    #..........................................................................
  150.    def hit
  151.      # 如果伤害值是数值
  152.      # 转为字符串
  153.      value=@hits
  154.      hits_string = value.to_s
  155.      # 初始化位图
  156.      bitmap = Bitmap.new(320, 64)
  157.      bitmap.font.name = "Arial Black"
  158.      bitmap.font.size = 32
  159.      # 分割伤害值字符串
  160.      hits_array = hits_string.scan(/./)
  161.      hits_x = - 36.2#hits_string.size * 18.1 # 81 - hits_string.size * 18.1
  162.      rect_y = 0
  163.      # 循环伤害值字符串
  164.      for char in hits_array
  165.        # 后移一位
  166.        hits_x += 36.2
  167.        number = char.to_i
  168.        # 显示伤害数字
  169.        bitmap.blt(hits_x, 0, RPG::Cache.picture(STRING_DOCUMENTS + "Number"),
  170.        Rect.new(number * 36.2, rect_y, 36.2, 50))
  171.      end
  172.      hits_x += 18.1
  173.      bitmap.blt(hits_x, 0, RPG::Cache.picture(STRING_DOCUMENTS + "HITS"),
  174.                 Rect.new(0, -21, 90, 50))
  175.      # 伤害值定位
  176.      @_hits_sprite = ::Sprite.new(self.viewport)
  177.      @_hits_sprite.bitmap = bitmap
  178.      @_hits_sprite.x = 560 - hits_string.size * 36.2
  179.      @_hits_sprite.y = 70
  180.      @_hits_sprite.z = 30000
  181.      @_hits_duration = 40
  182.    end
  183.    #..........................................................................
  184.    #--------------------------------------------------------------------------
  185.    # ● 美化的总伤害处理
  186.    #--------------------------------------------------------------------------
  187.    def make_total_damage(value)
  188.      
  189. if USE_DAMAGE == true then     
  190.      
  191.      if value.is_a?(Numeric)# and SHOW_TOTAL_DAMAGE
  192.        @_total_damage += value
  193.         # 绝对值转为字符串
  194.         damage_string = @_total_damage.abs.to_s
  195.       else
  196.         return
  197.       end
  198. #####################################################小改动
  199.      if SHOW_TOTAL_DAMAGE
  200. #####################################################
  201.       # 初始化位图
  202.       bitmap = Bitmap.new(300, 150)
  203.       bitmap.font.name = "Arial Black"
  204.       bitmap.font.size = 32
  205.       # 伤害值是数值的情况下
  206.       if value.is_a?(Numeric)
  207.         # 分割伤害值字符串
  208.         damage_array = damage_string.scan(/./)
  209.         damage_x = 40 - damage_string.size * 9
  210.         # 伤害值为负的情况下
  211.         if value < 0
  212.           # 调用回复数字表
  213.           name= STRING_DOCUMENTS + "Number3"
  214.         else
  215.           # 调用伤害数字表
  216.           name= STRING_DOCUMENTS + "Number2"
  217.         end
  218.         # 循环伤害值字符串
  219.         for char in damage_array
  220.           number = char.to_i
  221.           # 显示伤害数字
  222.           bitmap.blt(damage_x, 0, RPG::Cache.picture(name),
  223.           Rect.new(number * 36.2, 0, 36.2, 50))
  224.           # 后移一位
  225.           damage_x += 36.2
  226.         end
  227. #####################################################小改动
  228.      end
  229. #####################################################
  230.       end
  231.       
  232. else
  233.             
  234.    #--------------------------------------------------------------------------
  235.    # ● 总伤害处理
  236.    #--------------------------------------------------------------------------
  237.      if value.is_a?(Numeric)# and SHOW_TOTAL_DAMAGE
  238.        @_total_damage += value
  239.      else
  240.        return
  241.      end
  242. #####################################################小改动
  243.      if SHOW_TOTAL_DAMAGE
  244. #####################################################
  245.      bitmap = Bitmap.new(300, 150)
  246.      bitmap.font.name = "Arial Black"
  247.      bitmap.font.size = 48
  248.      bitmap.font.color.set(0, 0, 0)
  249.      bitmap.draw_text(+2, 12+2, 160, 36, @_total_damage.abs.to_s, 1)
  250.      if @_total_damage < 0
  251.        bitmap.font.color.set(80, 255, 00)
  252.      else
  253.        bitmap.font.color.set(255, 140, 0)
  254.      end
  255.      bitmap.draw_text(0, 12, 160, 36, @_total_damage.abs.to_s, 1)
  256. #####################################################小改动
  257.      end
  258. #####################################################
  259. end

  260.      if @_total_damage_sprite.nil?
  261.        @_total_damage_sprite = ::Sprite.new#(self.viewport)
  262.        @_total_damage_sprite.ox = 80
  263.        @_total_damage_sprite.oy = 20
  264.        @_total_damage_sprite.z = 30000
  265.      end
  266.      @_total_damage_sprite.bitmap = bitmap
  267.      @_total_damage_sprite.zoom_x = 1.5
  268.      @_total_damage_sprite.zoom_y = 1.5
  269.      @_total_damage_sprite.x = self.x
  270.      @_total_damage_sprite.y = self.y  - self.oy / 2 - 64
  271.      @_total_damage_sprite.z = 30001
  272.      #.........................................................................
  273.      @_total_damage_duration = 40
  274.      #.........................................................................
  275.      #.........................................................................
  276.      #hit数描绘
  277.      @hits+=1
  278.      hit
  279.      #.........................................................................
  280.    end
  281.    def animation(animation, hit, battler_damage="", battler_critical=false)
  282.      dispose_animation      
  283.      #=======================================
  284.      # 修改:记录伤害和critical
  285.      #=======================================
  286.      @battler_damage = battler_damage
  287.      @battler_critical = battler_critical
  288.      @_animation = animation
  289.      return if @_animation == nil
  290.      @_animation_hit = hit
  291.      @_animation_duration = @_animation.frame_max
  292.      animation_name = @_animation.animation_name
  293.      animation_hue = @_animation.animation_hue
  294.      bitmap = RPG::Cache.animation(animation_name, animation_hue)
  295.      #=======================================
  296.      # 修改:计算总闪光权限值
  297.      #=======================================
  298.      for timing in @_animation.timings
  299.        quanzhong = animation_process_timing(timing, @_animation_hit,true)
  300.        @all_quanzhong += quanzhong
  301.        # 记录最后一次闪光
  302.        @_last_frame = timing.frame if quanzhong != 0
  303.      end
  304.      #.........................................................................
  305.      @last_frame = @_last_frame
  306.      #.........................................................................
  307.      if @@_reference_count.include?(bitmap)
  308.        @@_reference_count[bitmap] += 1
  309.      else
  310.        @@_reference_count[bitmap] = 1
  311.      end
  312.      #=======================================
  313.      # 修改:行动方动画不显示伤害
  314.      #=======================================
  315.      if $scene.is_a?(Scene_Battle)
  316.        if $scene.animation1_id == @battler.animation_id
  317.          @battler_damage = ""
  318.        end
  319.      end
  320.      @_animation_sprites = []
  321.      if @_animation.position != 3 or not @@_animations.include?(animation)
  322.        for i in 0..15
  323.          sprite = ::Sprite.new(self.viewport)
  324.          sprite.bitmap = bitmap
  325.          sprite.visible = false
  326.          @_animation_sprites.push(sprite)
  327.        end
  328.        unless @@_animations.include?(animation)
  329.          @@_animations.push(animation)
  330.        end
  331.      end
  332.      update_animation
  333.    end
  334.    #=======================================
  335.    # 修改:更换清除伤害的算法,以防万一
  336.    #       本内容在脚本中没有使用过
  337.    #=======================================
  338.    def dispose_damage
  339.      for damage in @_damage.reverse
  340.        damage[0].bitmap.dispose
  341.        damage[0].dispose
  342.        @_damage.delete(damage)
  343.      end
  344.      @_total_damage = 0
  345.      @_last_frame = -1
  346.      if @_total_damage_sprite != nil
  347.        @_total_damage_duration = 0
  348.        @_total_damage_sprite.bitmap.dispose
  349.        @_total_damage_sprite.dispose
  350.        @_total_damage_sprite = nil
  351.      end
  352.    end
  353.    #=======================================
  354.    # 清除hit数
  355.    #=======================================
  356.    #...........................................................................
  357.    def dispose_hit
  358.      if @_hits_sprite != nil
  359.        @_hits_sprite.bitmap.dispose
  360.        @_hits_sprite.dispose
  361.        @_hits_sprite = nil
  362.      end
  363.    end
  364.    #...........................................................................
  365.    def dispose_animation
  366.      #=======================================
  367.      # 修改:清除记录的伤害,清除权重记录
  368.      #=======================================
  369.      @battler_damage = nil
  370.      @battler_critical = nil
  371.      @all_quanzhong = 1
  372.      @_total_damage = 0
  373.      @_last_frame = -1
  374.      #.........................................................................
  375.      @hits = 0
  376.      #.........................................................................
  377.      if @_animation_sprites != nil
  378.        sprite = @_animation_sprites[0]
  379.        if sprite != nil
  380.          @@_reference_count[sprite.bitmap] -= 1
  381.          if @@_reference_count[sprite.bitmap] == 0
  382.            sprite.bitmap.dispose
  383.          end
  384.        end
  385.        for sprite in @_animation_sprites
  386.          sprite.dispose
  387.        end
  388.        @_animation_sprites = nil
  389.        @_animation = nil
  390.      end
  391.    end
  392.    def update
  393.      super
  394.      if @_whiten_duration > 0
  395.        @_whiten_duration -= 1
  396.        self.color.alpha = 128 - (16 - @_whiten_duration) * 10
  397.      end
  398.      if @_appear_duration > 0
  399.        @_appear_duration -= 1
  400.        self.opacity = (16 - @_appear_duration) * 16
  401.      end
  402.      if @_escape_duration > 0
  403.        @_escape_duration -= 1
  404.        self.opacity = 256 - (32 - @_escape_duration) * 10
  405.      end
  406.      if @_collapse_duration > 0
  407.        @_collapse_duration -= 1
  408.        self.opacity = 256 - (48 - @_collapse_duration) * 6
  409.      end
  410.      #=======================================
  411.      # 修改:更新算法,更新弹出
  412.      #=======================================
  413.      if @_damage_duration > 0
  414.        @_damage_duration -= 1
  415.        for damage in @_damage
  416.          damage[0].x = self.x + self.viewport.rect.x -
  417.                        self.ox + self.src_rect.width / 2 +
  418.                        (40 - damage[1]) * damage[3] / 10
  419.          damage[0].y -= damage[4]+damage[1]/10
  420.          damage[0].opacity = damage[1]*20
  421.          damage[1] -= 1
  422.          if damage[1]==0
  423.            damage[0].bitmap.dispose
  424.            damage[0].dispose
  425.            @_damage.delete(damage)
  426.            next
  427.          end
  428.        end
  429.      end
  430.      #=======================================
  431.      # 添加:弹出总伤害
  432.      #=======================================
  433.      if @_total_damage_duration > 0
  434.        @_total_damage_duration -= 1
  435.        @_total_damage_sprite.y -= 1 if @_total_damage_duration % 2 == 0
  436.        if @_total_damage_sprite.zoom_x > 1.0
  437.          @_total_damage_sprite.zoom_x -= 0.05
  438.        end
  439.        if @_total_damage_sprite.zoom_y > 1.0
  440.          @_total_damage_sprite.zoom_y -= 0.05
  441.        end
  442.        @_total_damage_sprite.opacity = 256 - (24 - @_total_damage_duration) * 16
  443.        #......................................................................
  444.        if @_total_damage_duration <= 7 and @_total_damage_duration > 0
  445.          @_hits_sprite.opacity -= 32
  446.          @_hits_sprite.x += 1
  447.        end
  448.        #......................................................................
  449.        if @_total_damage_duration <= 0
  450.          #.....................................................................
  451.          dispose_hit
  452. ##########################
  453.          @_total_damage = 0
  454. ##########################
  455.          #.....................................................................
  456.          @_total_damage = 0
  457.          @_total_damage_duration = 0
  458. #####################################################小改动
  459.          if SHOW_TOTAL_DAMAGE
  460.          @_total_damage_sprite.bitmap.dispose
  461.          end
  462. #####################################################
  463.          @_total_damage_sprite.dispose
  464.          @_total_damage_sprite = nil
  465.        end
  466.      end
  467.      #=======================================
  468.      if @_animation != nil and (Graphics.frame_count % 2 == 0)
  469.        @_animation_duration -= 1
  470.        update_animation
  471.      end
  472.      if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
  473.        update_loop_animation
  474.        @_loop_animation_index += 1
  475.        #......................................................................
  476.        @loop_animation_once = 0
  477.        @loop_animation_once = 1 if @once == 1 and @_loop_animation_index == @_loop_animation.frame_max
  478.        #......................................................................
  479.        @_loop_animation_index %= @_loop_animation.frame_max
  480.      end
  481.      if @_blink
  482.        @_blink_count = (@_blink_count + 1) % 32
  483.        if @_blink_count < 16
  484.          alpha = (16 - @_blink_count) * 6
  485.        else
  486.          alpha = (@_blink_count - 16) * 6
  487.        end
  488.        self.color.set(255, 255, 255, alpha)
  489.      end
  490.      @@_animations.clear
  491.    end
  492.    #..........................................................................
  493.    def loop_animation_once
  494.      return @_loop_animation_once
  495.    end
  496.    #..........................................................................
  497.    def update_animation
  498.      if @_animation_duration > 0
  499.        frame_index = @_animation.frame_max - @_animation_duration
  500.        @frame_index = frame_index
  501.        cell_data = @_animation.frames[frame_index].cell_data
  502.        position = @_animation.position
  503.        animation_set_sprites(@_animation_sprites, cell_data, position)
  504.        #=======================================
  505.        # 修改:弹出伤害,权重计算
  506.        #=======================================
  507.        for timing in @_animation.timings
  508.          if timing.frame == frame_index
  509.            t = 1.0 * animation_process_timing(timing, @_animation_hit)            
  510.            #p t,"当前权重", @all_quanzhong,"总权重"
  511.            if @battler_damage.is_a?(Numeric) and t != 0
  512.              t *= @battler_damage
  513.              t /= @all_quanzhong
  514.              t = t.to_i
  515.              #在闪光不是最后一次的情况下,把这次伤害加入到已经发生的伤害中★★★★★★★★★★★★★★★★★★★★★★★★★★
  516.              if frame_index != @_last_frame
  517.              @p_dam+= t
  518.              ##########
  519.              @d_dam = t if $动态扣血
  520.              ##########
  521.              end
  522.              #p @p_dam,"已发生伤害",@battler_damage,"总伤害"(调试用)★★★★★★★★★★★★★★★★★★★★★★★★★★
  523.              #闪光为最后一次的情况下,改变这次伤害的计算方法(总伤害-已经发生伤害)★★★★★★★★★★★★★★★★★★★★★★★★★★
  524.              if frame_index == @_last_frame
  525.                t=@battler_damage-@p_dam
  526.              end
  527.              #p t,"当前伤害",@battler_damage,"总伤害"
  528.              # 最后一次闪光的话,伤害修正
  529.              if frame_index == @_last_frame
  530.                @_total_damage = @battler_damage - t
  531.                #############
  532.                @d_dam = @battler_damage-@p_dam  if $动态扣血
  533.                #############
  534.                @p_dam=0      #已经发生的伤害归0★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  535.             end
  536.              #p t,@battler_damage,@all_quanzhong
  537.              damage(t,@battler_critical)
  538.             #连击次数归0★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  539.             if frame_index == @_last_frame
  540.                       ############ #小改动
  541.                       @last_hits=1
  542.                       @temp_hits=0
  543.                       ############
  544.                       @hits=0
  545.                       ##################
  546.                       $use_skill = false
  547.                       ##################
  548.             end
  549.            # 防止重复播放miss
  550.            elsif !@battler_damage.is_a?(Numeric) and timing.flash_scope != 0
  551.              damage(@battler_damage,@battler_critical)
  552.            end
  553.          end
  554.        end
  555.      else
  556.        dispose_animation
  557.      end
  558.    end
  559.    #=======================================
  560.    # 修改:敌人跳跃的功能 + 添加返回数值
  561.    #=======================================
  562.    def update_loop_animation
  563.      frame_index = @_loop_animation_index
  564.      cell_data = @_loop_animation.frames[frame_index].cell_data
  565.      position = @_loop_animation.position
  566.      #·改·
  567.      if @wait_count.to_i <= 0
  568.        @wait_count = 0
  569.        animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  570.      else
  571.        @wait_count -= 1
  572.        for sprite in @_loop_animation_sprites
  573.          sprite.visible = false
  574.        end
  575.      end
  576.      if @wait_flash.to_i <= 0
  577.        @wait_flash = 0
  578.      else
  579.        @wait_flash -= 1
  580.        for sprite in @_loop_animation_sprites
  581.          sprite.blend_type = 1
  582.        end
  583.      end
  584.      #·改·
  585.      for timing in @_loop_animation.timings
  586.        if timing.frame == frame_index
  587.          animation_process_timing(timing, true)
  588.        end
  589.      end
  590.    end
  591.    #=======================================
  592.    # 修改:敌人跳跃的功能 + 添加返回数值
  593.    #=======================================
  594.    def loop_animation(animation)
  595.      return if animation == @_loop_animation
  596.      dispose_loop_animation
  597.      @_loop_animation = animation
  598.      return if @_loop_animation == nil
  599.      @_loop_animation_index = 0
  600.      animation_name = @_loop_animation.animation_name
  601.      animation_hue = @_loop_animation.animation_hue
  602.      bitmap = RPG::Cache.animation(animation_name, animation_hue)
  603.      if @@_reference_count.include?(bitmap)
  604.        @@_reference_count[bitmap] += 1
  605.      else
  606.        @@_reference_count[bitmap] = 1
  607.      end
  608.      @_loop_animation_sprites = []
  609.      for i in 0..15
  610.        sprite = ::Sprite.new
  611.        sprite.bitmap = bitmap
  612.        sprite.visible = false
  613.        @_loop_animation_sprites.push(sprite)
  614.      end
  615.      update_loop_animation
  616.    end
  617.    #=======================================
  618.    # 修改:敌人跳跃的功能 + 添加返回数值
  619.    #=======================================
  620.     def animation_process_timing(timing, hit,dontflash=false)
  621.       if (timing.condition == 0) or
  622.          (timing.condition == 1 and hit == true) or
  623.          (timing.condition == 2 and hit == false)
  624.         unless dontflash
  625.           if timing.se.name != ""
  626.             se = timing.se
  627.             Audio.se_play("Audio/SE/" + se.name, se.volume, se.pitch)
  628.           end
  629.         end
  630.         case timing.flash_scope
  631.         when 1
  632.           unless dontflash
  633.             self.flash(timing.flash_color, timing.flash_duration * 2)
  634.             #....................................................................
  635.             @wait_flash = timing.flash_duration
  636.             #....................................................................
  637.             if @_total_damage >0
  638.               @flash_shake_switch = true
  639.               @flash_shake = 10
  640.             end
  641.           end
  642.           return timing.flash_color.alpha * timing.flash_duration
  643.         when 2
  644.           unless dontflash
  645.             if self.viewport != nil
  646.               self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
  647.               return timing.flash_color.alpha * timing.flash_duration
  648.             end
  649.           end
  650.         when 3
  651.           unless dontflash
  652.             self.flash(nil, timing.flash_duration * 2)
  653.             #@_loop_animation_count = 1
  654.             #·改·
  655.             @wait_count = timing.flash_duration
  656.             #·改·
  657.           end
  658.           return timing.flash_color.alpha * timing.flash_duration
  659.         end
  660.       end      
  661.       return 0
  662.     end   
  663. end
  664. end
  665. #==============================================================================
  666. # ■ Sprite_Battler
  667. #==============================================================================
  668. class Sprite_Battler < RPG::Sprite
  669. #--------------------------------------------------------------------------
  670. # ● 初始化对像
  671. #    添加跳跃记录
  672. #--------------------------------------------------------------------------
  673. def initialize(viewport, battler = nil)
  674.   super(viewport)
  675.   @battler = battler
  676.   @battler_visible = false
  677.   @flash_shake_switch = true
  678.   #........................................................................
  679.   @once = 0
  680.   @frame_index = -1
  681.   @last_frame = 0
  682.   #........................................................................
  683. end
  684. #--------------------------------------------------------------------------
  685. # ● 刷新画面
  686. #    增添跳跃功能
  687. #--------------------------------------------------------------------------
  688. def update
  689.   super
  690.   # 战斗者为 nil 的情况下
  691.   if @battler == nil
  692.     self.bitmap = nil
  693.     loop_animation(nil)
  694.     return
  695.   end
  696.   # 文件名和色相与当前情况有差异的情况下
  697.   if @battler.battler_name != @battler_name or
  698.      @battler.battler_hue != @battler_hue
  699.     # 获取、设置位图
  700.     @battler_name = @battler.battler_name
  701.     @battler_hue = @battler.battler_hue
  702.     self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  703.     #.......................................................................
  704.     if not @battler.hidden and not @battler.dead?
  705.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  706.     end
  707.     #.......................................................................
  708.     @width = bitmap.width
  709.     @height = bitmap.height
  710.     self.ox = @width / 2
  711.     self.oy = @height
  712.   end
  713.   #.......................................................................
  714.   update_actor_animation
  715.   update_enemy_animation
  716.   #.......................................................................
  717.   # 动画 ID 与当前的情况有差异的情况下
  718.   #.........................................................................
  719.   if @battler.is_a?(Game_Enemy)
  720.     if @once == 1 and @loop_animation_once == 1 and
  721.        @battler.battler_dead_ani == 1
  722.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[5])
  723.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase != 5
  724.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  725.     end
  726.   end
  727.   if @battler.is_a?(Game_Actor)
  728.     ####################################################################
  729.     if @once == 1 and @loop_animation_once == 1 and $scene.phase != 5 and
  730.        @battler.battler_dead_ani == 1 and @battler.dead?
  731.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[5])
  732.     #######################################################################
  733.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase != 5
  734.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  735.       #################################################################
  736.       $fangyu = 0
  737.       @battler.setup_battler_dead_ani(0)
  738.       ########################################################
  739.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase == 5 and
  740.           not @battler.dead?
  741.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[7])
  742.       ######################################################
  743.       $fangyu = 0
  744.       @battler.setup_battler_dead_ani(0)
  745.       ######################################################
  746.     end
  747.   end
  748.   if @battler.battler_ani != @battler_ani
  749.     @battler_ani = @battler.battler_ani
  750.     @once = @battler.battler_ani_once
  751.     loop_animation($data_animations[@battler_ani.to_i])
  752.   end
  753.   #.........................................................................
  754.   # 明灭
  755.   if @battler.blink
  756.     blink_on
  757.   else
  758.     blink_off
  759.   end
  760.   # 不可见的情况下
  761.   unless @battler_visible
  762.     # 出现
  763.     if not @battler.hidden and not @battler.dead? and
  764.        (@battler.damage == nil or @battler.damage_pop)
  765.       #.......................................................................
  766.       if @battler.is_a?(Game_Enemy)
  767.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  768.         #appear
  769.       else
  770.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  771.       end
  772.       #.......................................................................
  773.       @battler_visible = true
  774.     end
  775.   end
  776.   # 可见的情况下
  777.   if @battler_visible
  778.     # 逃跑
  779.     if @battler.hidden
  780.       $game_system.se_play($data_system.escape_se)
  781.       escape
  782.       @battler_visible = false
  783.     end
  784.     # 白色闪烁
  785.     if @battler.white_flash
  786.       whiten
  787.       @battler.white_flash = false
  788.     end
  789.     # 动画
  790.     if @battler.animation_id != 0
  791.       animation = $data_animations[@battler.animation_id]
  792.       animation(animation, @battler.animation_hit,@battler.damage, @battler.critical)
  793.       @battler.animation_id = 0
  794.     end
  795.     # 伤害
  796.     if @battler.damage_pop
  797.       @battler.damage = nil
  798.       @battler.critical = false
  799.       @battler.damage_pop = false
  800.     end
  801.     # korapusu
  802.     if @battler.damage == nil and @battler.dead?
  803.       if @battler.is_a?(Game_Enemy)
  804.         if @battler.battler_dead_ani != 1
  805.           #p "Battler Death Error"
  806.           $game_system.se_play($data_system.enemy_collapse_se)
  807.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  808.           @battler.setup_battler_dead_ani(1)
  809.         end
  810.         #.....................................................................
  811.         collapse
  812.         #.....................................................................
  813.       else
  814.         #.....................................................................
  815.         if @battler.battler_dead_ani != 1
  816.           #p "Battler Death Error"
  817.           $game_system.se_play($data_system.enemy_collapse_se)
  818.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  819.           @battler.setup_battler_dead_ani(1)
  820.         end
  821.         #.....................................................................
  822.       end
  823.       @battler_visible = false
  824.     end
  825.   end
  826.   # 设置活动块的坐标
  827.   if @flash_shake_switch == true
  828.     self.x = @battler.screen_x
  829.     self.y = @battler.screen_y
  830.     self.z = @battler.screen_z
  831.     @flash_shake_switch = false
  832.   end
  833.   if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
  834.     if @battler.is_a?(Game_Enemy)
  835.       case @flash_shake
  836.       when 9..10
  837.         self.x -=4
  838.         self.y -=4
  839.         self.z = @battler.screen_z
  840.       when 6..8
  841.         self.x -=2
  842.         self.y -=2
  843.         self.z = @battler.screen_z
  844.       when 3..5
  845.         self.x +=2
  846.         self.y +=2
  847.         self.z = @battler.screen_z
  848.       when 1..2
  849.         self.x +=4
  850.         self.y +=4
  851.         self.z = @battler.screen_z
  852.       end
  853.     end
  854.     if @battler.is_a?(Game_Actor)
  855.       case @flash_shake
  856.       when 9..10
  857.         self.x +=4
  858.         self.y +=4
  859.         self.z = @battler.screen_z
  860.       when 6..8
  861.         self.x +=2
  862.         self.y +=2
  863.         self.z = @battler.screen_z
  864.       when 3..5
  865.         self.x -=2
  866.         self.y -=2
  867.         self.z = @battler.screen_z
  868.       when 1..2
  869.         self.x -=4
  870.         self.y -=4
  871.         self.z = @battler.screen_z
  872.       end
  873.     end
  874.     @flash_shake -= 1
  875.   end
  876. end
  877. end

  878. #==============================================================================
  879. # ■ Scene_Battle
  880. #------------------------------------------------------------------------------
  881. #  处理战斗画面的类。
  882. #==============================================================================

  883. class Scene_Battle
  884. #--------------------------------------------------------------------------
  885. # ● 定义实例变量
  886. #--------------------------------------------------------------------------
  887. attr_reader   :animation1_id                    # 行动方动画ID
  888. end
  889. class Sprite_Battler < RPG::Sprite
  890.   #--------------------------------------------------------------------------
  891.   # ● 处理角色动作
  892.   #--------------------------------------------------------------------------
  893.   def update_actor_animation
  894.     if @battler.is_a?(Game_Actor)
  895.       if @battler.show_damage_value != nil
  896.         self.damage(@battler.show_damage_value, false)
  897.         @battler.show_damage(nil)
  898.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  899.         @battler.setup_battler_hurt_ani(1)
  900.       end
  901.       if @battler.current_action.kind == 0 and @battler.current_action.basic == 1 and @battler.show_damage_value != nil
  902.         # 防御的时候
  903.         if @hits > @temp_hits and not @battler.dead?
  904.           #########################
  905.           @battler.temphp -= @d_dam if $动态扣血
  906.           #########################
  907.           ############ #小改动
  908.           @temp_hits+=1
  909.           ############
  910.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  911.           @battler.setup_battler_hurt_ani(1)
  912.           #################################################################
  913.         elsif @last_hits == 1 and not @battler.dead?
  914.           #########################
  915.           @battler.temphp -= @d_dam if $动态扣血
  916.           #########################
  917.           ############ #小改动
  918.           @last_hits = 0
  919.           ############
  920.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  921.           @battler.setup_battler_hurt_ani(1)
  922.           #################################################################
  923.         elsif @frame_index != -1 and @frame_index != @last_frame and not @battler.dead? and [email protected]_a?(Numeric)
  924.           #########################
  925.           @battler.temphp -= @d_dam if $动态扣血
  926.           #########################
  927.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  928.           @battler.setup_battler_hurt_ani(1)
  929.           #################################################################
  930.         elsif @last_hits == 1 and not @battler.dead? and [email protected]_a?(Numeric)
  931.           #########################
  932.           @battler.temphp -= @d_dam if $动态扣血
  933.           #########################
  934.           ############ #小改动
  935.           @last_hits = 0
  936.           ############
  937.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  938.           @battler.setup_battler_hurt_ani(1)
  939.           #################################################################
  940.         end
  941.       else
  942.         # 单回合只有一次攻击
  943.         if @last_hits == 1 and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and $fangyu != 1
  944.           #########################
  945.           @battler.temphp -= @d_dam if $动态扣血
  946.           #########################
  947.           ############ #小改动
  948.           @last_hits = 0
  949.           ############
  950.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  951.           @battler.setup_battler_hurt_ani(1)
  952.           #################################################################
  953.         # 单回合多次攻击
  954.         elsif @hits > @temp_hits and @frame_index != @last_frame and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and $fangyu != 1
  955.           #########################
  956.           @battler.temphp -= @d_dam if $动态扣血
  957.           #########################
  958.           ############ #小改动
  959.           @temp_hits+=1
  960.           ############
  961.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  962.           @battler.setup_battler_hurt_ani(1)
  963.         ########################################################################
  964.         # 死亡之前攻击
  965.         elsif @hits > @temp_hits and @frame_index != @last_frame and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and $fangyu != 1 and @battler.dead? and @battler.battler_dead_ani != 1
  966.           #########################
  967.           @battler.temphp -= @d_dam if $动态扣血
  968.           @battler.temphp = @battler.hp if $动态扣血
  969.           #########################
  970.           ############ #小改动
  971.           @temp_hits+=1
  972.           ############
  973.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  974.           @battler.setup_battler_hurt_ani(1)
  975.           #################################################################
  976.         # 闪避的回合
  977.         elsif !@battler_damage.is_a?(Numeric) and @last_hits == 1 and @frame_index == @last_frame
  978.           #########################
  979.           @battler.temphp -= @d_dam  if $动态扣血
  980.           #########################
  981.           @last_hits = 0
  982.           #################################################################
  983.         # 无伤害的攻击
  984.         elsif @battler_damage.is_a?(Numeric) and @battler.damage == 0 and @last_hits == 1 and @frame_index == @last_frame
  985.           #########################
  986.           @battler.temphp -= @d_dam  if $动态扣血
  987.           #########################
  988.           @last_hits = 0
  989.           ######################################################
  990.           $fangyu = 0
  991.           @battler.setup_battler_dead_ani(0)
  992.           ######################################################
  993.           #################################################################
  994.         # 死亡判定
  995.         elsif @last_hits == 1 and @frame_index == @last_frame and @battler.dead? and @battler.battler_dead_ani != 1
  996. #          for actor in $game_party.actors
  997. #            if @battler != actor
  998. #              actor.add_state(6)
  999. #            end
  1000. #          end
  1001.           #########################
  1002.           @battler.temphp -= @d_dam  if $动态扣血
  1003.           @battler.temphp = @battler.hp  if $动态扣血
  1004.           #########################
  1005.           @last_hits = 0
  1006.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1007.           @battler.setup_battler_dead_ani(1)
  1008.           #################################################################
  1009.         # 胜利判定
  1010.         elsif $scene.phase == 5 and @once == 0 and @battler_name != nil and not @battler.hidden and not @battler.dead? and $game_temp.battle_proc == nil
  1011.              @once = 1
  1012.              @battler.setup_battler_ani(@battler_name.split(/★/)[6], 1)
  1013.         end
  1014.       end
  1015.     end
  1016.   end
  1017.   #--------------------------------------------------------------------------
  1018.   # ● 处理敌人动作
  1019.   #--------------------------------------------------------------------------
  1020.   def update_enemy_animation
  1021.     if @battler.is_a?(Game_Enemy)
  1022.       if @battler.show_damage_value != nil
  1023.         self.damage(@battler.show_damage_value, false)
  1024.         @battler.show_damage(nil)
  1025.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1026.         @battler.setup_battler_hurt_ani(1)
  1027.       end
  1028.       if @battler.current_action.kind == 0 and @battler.current_action.basic == 1
  1029.       else
  1030.         # 单回合只有一次攻击
  1031.         if @last_hits == 1 and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0
  1032.           ############ #小改动
  1033.           @last_hits = 0
  1034.           ############
  1035.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1036.           @battler.setup_battler_hurt_ani(1)
  1037.           #################################################################
  1038.         # 单回合多次攻击
  1039.         elsif @hits > @temp_hits and @frame_index != @last_frame and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0
  1040.           ############ #小改动
  1041.           @temp_hits+=1
  1042.           ############
  1043.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1044.           @battler.setup_battler_hurt_ani(1)
  1045.           #################################################################
  1046.         # 死亡之前攻击
  1047.         elsif @hits > @temp_hits and @frame_index != @last_frame and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and @battler.dead? and @battler.battler_dead_ani != 1
  1048.           ############ #小改动
  1049.           @temp_hits+=1
  1050.           ############
  1051.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1052.           @battler.setup_battler_hurt_ani(1)
  1053.           #################################################################
  1054.         # 无伤害的攻击
  1055.         elsif @battler_damage.is_a?(Numeric) and @battler.damage <= 0 and @last_hits == 1 and @frame_index == @last_frame
  1056.           @last_hits = 0
  1057.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1058.           ######################################################
  1059.           $fangyu = 0
  1060.           @battler.setup_battler_dead_ani(0)
  1061.           ######################################################
  1062.           #################################################################
  1063.         # 闪避的回合
  1064.         elsif !@battler_damage.is_a?(Numeric) and @last_hits == 1 and @frame_index == @last_frame
  1065.           @last_hits = 0
  1066.           #################################################################
  1067.         # 死亡判定
  1068.         elsif @last_hits == 1 and @frame_index == @last_frame and @battler.dead? and @battler.battler_dead_ani != 1
  1069.           @last_hits = 0
  1070.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1071.           @battler.setup_battler_dead_ani(1)
  1072.           collapse
  1073.         end
  1074.       end
  1075.     end
  1076.   end
  1077. end
复制代码

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42404
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2010-9-3 13:33:11 | 只看该作者
回复 seasoneast 的帖子


    难道让我们自己去找脚本帮你解决?怎么也该贴个脚本把
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2010-8-1
帖子
231
3
 楼主| 发表于 2010-9-3 13:43:19 | 只看该作者
回复 fux2 的帖子


    不好意思……脚本实在太长了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2010-8-1
帖子
231
4
 楼主| 发表于 2010-9-3 23:18:01 | 只看该作者
自顶一下……这里已经付了脚本……但是实在太长了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2010-6-22
帖子
11
5
发表于 2010-9-10 14:18:34 | 只看该作者
楼主的问题解决了吗?我也发现这个问题了。本人是新手,还找不到具体原因。能做的只是帮你顶一下了。感觉问题应该是在以下三个选择语句吧。
  #--------------------------------------------------------------------------
  # ● 胜利图
  #--------------------------------------------------------------------------
  def win
    if @battler_name != nil and not @battler.hidden and not @battler.dead?
      @battler.setup_battler_ani(@battler_name.split(/★/)[6], 1)
    end
  end
  #..........................................................................

点评

想不到还有人注意到~谢谢~我现在还没解决……实在还是不太擅长脚本,所以决定留下问题先好好把脚本研究好再回来解决……  发表于 2010-9-10 23:54
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
6
发表于 2010-9-20 19:29:22 | 只看该作者
建议你不要使用这个脚本。
这个脚本问题很多,当时定型后就有诸多问题,大家进行了广泛讨论,但直到最后(66rpg关闭时)都没有解决;新版开通后少有看到果冻叮当猫了,探讨也无从进行了。

点评

唉~是啊~那个帖子还是08年的呢……好可惜啊……那我就把这个问题关了吧~  发表于 2010-9-20 22:54
步兵中尉
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
143 小时
注册时间
2010-8-29
帖子
215
7
发表于 2010-9-21 23:10:15 | 只看该作者
这是个非常危险的脚本,操作不当就会OVER
二次元不是能实现希望的地方,他的存在本身……就是希望!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 20:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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