Project1

标题: 到底哪错了? [打印本页]

作者: lxmstc    时间: 2008-3-27 23:52
标题: 到底哪错了?
  1. #==============================================================================
  2. # ■ Sprite_Battler
  3. #------------------------------------------------------------------------------
  4. #  战斗显示用活动块。Game_Battler 类的实例监视、
  5. # 活动块的状态的监视。
  6. #==============================================================================

  7. class Sprite_Battler < RPG::Sprite
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :battler                  # 战斗者
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     viewport : 显示端口
  15.   #     battler  : 战斗者 (Game_Battler)
  16.   #--------------------------------------------------------------------------
  17.   def initialize(viewport, battler = nil)
  18.     super(viewport)
  19.     @battler = battler
  20.     @battler_visible = false
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 释放
  24.   #--------------------------------------------------------------------------
  25.   def dispose
  26.     if self.bitmap != nil
  27.       self.bitmap.dispose
  28.     end
  29.     super
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 刷新画面
  33.   #    增添跳跃功能
  34.   #--------------------------------------------------------------------------
  35.   def update
  36.     super
  37.     # 战斗者为 nil 的情况下
  38.     if @battler == nil
  39.       self.bitmap = nil
  40.       loop_animation(nil)
  41.       return
  42.     end
  43.     # 文件名和色相与当前情况有差异的情况下
  44.     if @battler.battler_name != @battler_name or
  45.        @battler.battler_hue != @battler_hue
  46.       # 获取、设置位图
  47.       @battler_name = @battler.battler_name
  48.       @battler_hue = @battler.battler_hue
  49.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  50.       @width = bitmap.width
  51.       @height = bitmap.height
  52.       self.ox = @width / 2
  53.       self.oy = @height
  54.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  55.       #######如果是战斗不能就更改战斗图片#######
  56.       if @battler.dead? or @battler.hidden
  57.          self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
  58.          @width = bitmap.width
  59.          @height = bitmap.height
  60.          self.ox = @width / 2
  61.          self.oy = @height
  62.          self.opacity = 255
  63.        end
  64.     end
  65.     # 动画 ID 与当前的情况有差异的情况下
  66.     if @battler.damage == nil and
  67.        @battler.state_animation_id != @state_animation_id
  68.       @state_animation_id = @battler.state_animation_id
  69.       loop_animation($data_animations[@state_animation_id])
  70.     end
  71.     # 应该被显示的角色的情况下
  72.     if @battler.is_a?(Game_Actor) and @battler_visible
  73.       # 不是主状态的时候稍稍降低点透明度
  74.       if $game_temp.battle_main_phase
  75.         self.opacity += 3 if self.opacity < 255
  76.       else
  77.         self.opacity -= 3 if self.opacity > 207
  78.       end
  79.     end
  80.     # 明灭
  81.     if @battler.blink
  82.       blink_on
  83.     else
  84.       blink_off
  85.     end
  86.     # 不可见的情况下
  87.     unless @battler_visible
  88.       # 出现
  89.       if not @battler.hidden and not @battler.dead? and
  90.          (@battler.damage == nil or @battler.damage_pop)
  91.         appear
  92.         @battler_visible = true
  93.         if @battler.damage == nil and @battler.dead?
  94.            self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
  95.            @width = bitmap.width
  96.            @height = bitmap.height
  97.            self.ox = @width / 2
  98.            self.oy = @height
  99.            self.opacity = 255
  100.         else           
  101.         self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  102.         @width = bitmap.width
  103.         @height = bitmap.height
  104.         self.ox = @width / 2
  105.         self.oy = @height
  106.         end
  107.       end
  108.     end
  109.     # 可见的情况下
  110.     if @battler_visible
  111.       # 逃跑
  112.       if @battler.hidden
  113.         $game_system.se_play($data_system.escape_se)
  114.         escape
  115.         @battler_visible = false
  116.       end
  117.       # 白色闪烁
  118.       if @battler.white_flash
  119.         whiten
  120.         @battler.white_flash = false
  121.       end
  122.       # 动画
  123.       if @battler.animation_id != 0
  124.         
  125.         animation = $data_animations[@battler.animation_id]
  126.         animation(animation, @battler.animation_hit,@battler.damage, @battler.critical)
  127.         @battler.animation_id = 0
  128.       end
  129.       # 伤害
  130.       if @battler.damage_pop
  131.         @battler.damage = nil
  132.         @battler.critical = false
  133.         @battler.damage_pop = false
  134.       end
  135.       # korapusu
  136.       if @battler.damage == nil and @battler.dead?
  137.         if @battler.is_a?(Game_Enemy)
  138.           $game_system.se_play($data_system.enemy_collapse_se)
  139.           collapse
  140.           @battler_visible = false
  141.          
  142.         else
  143.           @male=[001] #----每个角色用逗号隔开
  144.           if @male.include?(@battler.id)
  145.             
  146.             #Audio.se_play("Audio/SE/SWDRSLGDIR_0358_1000-39")  #--你的文件名是你自己音效的文件名
  147.             self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
  148.             @width = bitmap.width
  149.             @height = bitmap.height
  150.             self.ox = @width / 2
  151.             self.oy = @height
  152.             self.opacity = 255
  153.             
  154.         else
  155.             #Audio.se_play("Audio/SE/SWDRSLGDIR_0343_1001-39")  
  156.             
  157.             self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
  158.             @width = bitmap.width
  159.             @height = bitmap.height
  160.             self.ox = @width / 2
  161.             self.oy = @height
  162.             self.opacity = 255
  163.            end
  164.         end
  165.        @battler_visible = false   
  166.       end
  167.     end
  168.     # 设置活动块的坐标
  169.     if @flash_shake_switch == true
  170.       self.x = @battler.screen_x
  171.       self.y = @battler.screen_y
  172.       self.z = @battler.screen_z
  173.       @flash_shake_switch = false
  174.     end
  175.     if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
  176.       case @flash_shake
  177.       when 9..10
  178.         self.x = @battler.screen_x
  179.         self.y -=4
  180.         self.z = @battler.screen_z
  181.       when 6..8
  182.         self.x = @battler.screen_x
  183.         self.y -=2
  184.         self.z = @battler.screen_z
  185.       when 3..5
  186.         self.x = @battler.screen_x
  187.         self.y +=2
  188.         self.z = @battler.screen_z
  189.       when 2
  190.         self.x = @battler.screen_x
  191.         self.y += 4
  192.         self.z = @battler.screen_z
  193.       when 1
  194.         self.x = @battler.screen_x
  195.         self.y = @battler.screen_y
  196.         self.z = @battler.screen_z
  197.       end
  198.       @flash_shake -= 1
  199.     end
  200.   end
  201. end
复制代码

为什么一用法术就会出:
127行发生了ArgumentError。wrong number of arguments(4 for 2)
昨天还好好的。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 水迭澜    时间: 2008-3-27 23:54
你的参数数量不对啦~
        animation(animation, @battler.animation_hit,@battler.damage,@battler.critical)
这个把后边两个去掉看看? [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: lxmstc    时间: 2008-3-27 23:59
那样就不会显示伤害了,那个参数在哪个脚本里可以改啊?
作者: 水迭澜    时间: 2008-3-28 00:02
那个要在RPG::Sprite里改,默认的脚本里没有
你用的这个是什么脚本?

把我下边这段复制到你的脚本里,替换127行前后相应那个位置……


      # 动画
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      # 伤害
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
作者: lxmstc    时间: 2008-3-28 00:07
就是能显示(也只能显示)死亡时图片的,我也不知道叫什么,是从灵儿续传里摘出来的,以前一直都没问题啊
作者: 水迭澜    时间: 2008-3-28 00:12
肯定是你漏了什么地方……
从已经完成的工程里提取脚本很容易出错的
问题现在解决了吗?
作者: lxmstc    时间: 2008-3-28 00:15

作者: lxmstc    时间: 2008-3-28 00:22
用了4楼的方法后伤害数值一出现就不会消失了,我还用了彩虹神剑脚本
作者: lxmstc    时间: 2008-3-28 00:44
原来是和RTAB血槽起了冲突,给大家添麻烦了




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