Project1

标题: 超级横版 [打印本页]

作者: 1358840591    时间: 2012-10-14 17:04
标题: 超级横版
本帖最后由 1358840591 于 2012-10-14 17:22 编辑

我想问,为什么我用超级横版,会发生错误呢,如下图

脚本 超级横版的363 行 发生了 ZerDvisionError        divided by 0
各位高手帮帮忙,帮我解决问题吧
  1. #==============================================================================
  2. # * Animated_Sprite                                Scripted by: SiR_VaIlHoR
  3. #                                                  Edited by: 柳柳
  4. #------------------------------------------------------------------------------
  5. #  A class for animated sprites.
  6. #==============================================================================

  7. #==============================================================================
  8. # □ RPG::Class
  9. #==============================================================================
  10. module RPG
  11.   class Class
  12.     def name
  13.       name = @name.split(/,/)[0]
  14.       return name != nil ? name : ''
  15.     end
  16.     def name2
  17.       name = @name.split(/,/)[1]
  18.       return name != nil ? name : ''
  19.     end
  20.   end
  21.   class Weapon
  22.     def name
  23.       name = @name.split(/,/)[0]
  24.       return name != nil ? name : ''
  25.     end
  26.     def name2
  27.       name = @name.split(/,/)[1]
  28.       return name != nil ? name : ''
  29.     end   
  30.   end  
  31. ###########
  32.   class Enemy
  33.     def name
  34.       name = @name.split(/,/)[0]
  35.       return name != nil ? name : ''
  36.     end
  37.     def name2
  38.       name = @name.split(/,/)[1]
  39.       return name != nil ? name : ''
  40.     end        
  41.   end
  42.   
  43. class Animation
  44.     def hit_cp
  45.       name = @name.split(/,/)[2].to_i
  46.       return name != nil ? name : 0
  47.     end
  48.   end
  49. ###########
  50. end

  51. class Game_Actor
  52.   #--------------------------------------------------------------------------
  53.   # ● 更改名称
  54.   #     name : 新的名称
  55.   #--------------------------------------------------------------------------
  56.   def picturephase
  57.     name = $data_classes[class_id].name2
  58.     return name != nil ? name : "66RPG"
  59.   end
  60. end

  61. class Game_Enemy
  62.   #--------------------------------------------------------------------------
  63.   # ● 获取名称
  64.   #--------------------------------------------------------------------------
  65.   def name
  66.     name = $data_enemies[@enemy_id].name.split(/,/)[0]
  67.     return name != nil ? name : ''
  68.   end
  69.   def picturephase
  70.     name = $data_enemies[@enemy_id].name.split(/,/)[1]
  71.     return name != nil ? name : "66RPG"
  72.   end  
  73. end

  74. class Animated_Sprite < RPG::Sprite
  75. #--------------------------------------------------------------------------
  76. # - Accessible instance variables.
  77. #--------------------------------------------------------------------------
  78. attr_accessor :frames        # Number of animation frames
  79. attr_accessor :delay         # Delay time between frames (speed)
  80. attr_accessor :frame_width   # Width of each frame
  81. attr_accessor :frame_height  # Height of each frame
  82. attr_accessor :offset_x      # X coordinate of the 1st frame
  83. attr_accessor :offset_y      # Y coordinate of all frames
  84. attr_accessor :current_frame # Current animation frame
  85. attr_accessor :moving        # Is the sprite moving?

  86. #--------------------------------------------------------------------------
  87. # - Initialize an animated sprite
  88. #   viewport : Sprite viewport
  89. #--------------------------------------------------------------------------
  90. def initialize(viewport = nil)
  91.    super(viewport)
  92.    @frame_width, @frame_height = 0, 0
  93.    change    # A basic change to set initial variables
  94.    @old = Graphics.frame_count  # For the delay method
  95.    @goingup = true    # Increasing animation? (if @rm2k_mode is true)
  96.    @once = false      # Is the animation only played once?
  97.    @animated = true   # Used to stop animation when @once is true
  98. end

  99. #--------------------------------------------------------------------------
  100. # Comment by RPG
  101. #   - Change the source rect (change the animation)
  102. #   frames : Number of animation frames
  103. #   delay : Frame delay, controls animation speed
  104. #   offx : X coordinate of the 1st frame
  105. #   offy : Y coordinate of all frames
  106. #   startf : Starting frame for animation
  107. #   once : Is the animation only played once?
  108. #   rm2k_mode : Animation pattern: 1-2-3-2 if true, 1-2-3-1 if false
  109. #
  110. # Comment by cybersam
  111. #
  112. # the rm2k_mode isnt pressent anymore...
  113. # if you want that feature then use rm2k or use RPG's scrîpt...
  114. #--------------------------------------------------------------------------
  115. def change(frames = 0, delay = 0, offx = 0, offy = 0,
  116.             startf = 0, once = false)
  117.    @frames = frames
  118.    @delay = delay
  119.    @offset_x, @offset_y = offx, offy
  120.    @current_frame = startf
  121.    @once = once
  122.    x = @current_frame * @frame_width + @offset_x
  123.    self.src_rect = Rect.new(x, @offset_y, @frame_width, @frame_height)
  124.    @goingup = true
  125.    @animated = true
  126. end
  127.   
  128. #--------------------------------------------------------------------------
  129. # - Update animation and movement
  130. #--------------------------------------------------------------------------
  131. def update
  132.    super
  133.    if self.bitmap != nil and delay(@delay) and @animated
  134.      x = @current_frame * @frame_width + @offset_x
  135.      self.src_rect = Rect.new(x, @offset_y, @frame_width, @frame_height)
  136.        @current_frame = (@current_frame + 1) unless @frames == 0
  137.        @animated = false if @current_frame == @frames and @once
  138.        @current_frame %= @frames
  139.    end
  140. end
  141.   
  142. #--------------------------------------------------------------------------
  143. # - Move the sprite
  144. #   x : X coordinate of the destination point
  145. #   y : Y coordinate of the destination point
  146. #   speed : Speed of movement (0 = delayed, 1+ = faster)
  147. #   delay : Movement delay if speed is at 0
  148. #--------------------------------------------------------------------------
  149. def move(x, y, speed = 1, delay = 0)
  150.    @destx = x
  151.    @desty = y
  152.    @move_speed = speed
  153.    @move_delay = delay
  154.    @move_old = Graphics.frame_count
  155.    @moving = true
  156. end
  157.   
  158. #--------------------------------------------------------------------------
  159. # - Move sprite to destx and desty
  160. #--------------------------------------------------------------------------
  161. def update_move
  162.    return unless @moving
  163.    movinc = @move_speed == 0 ? 1 : @move_speed
  164.    if Graphics.frame_count - @move_old > @move_delay or @move_speed != 0
  165.      self.x += movinc if self.x < @destx
  166.      self.x -= movinc if self.x > @destx
  167.      self.y += movinc if self.y < @desty
  168.      self.y -= movinc if self.y > @desty
  169.      @move_old = Graphics.frame_count
  170.    end
  171.    if @move_speed > 1  # Check if sprite can't reach that point
  172.      self.x = @destx if (@destx - self.x).abs % @move_speed != 0 and
  173.                         (@destx - self.x).abs <= @move_speed
  174.      self.y = @desty if (@desty - self.y).abs % @move_speed != 0 and
  175.                         (@desty - self.y).abs <= @move_speed
  176.    end
  177.    if self.x == @destx and self.y == @desty
  178.      @moving = false
  179.    end
  180. end
  181.   
  182. #--------------------------------------------------------------------------
  183. # - Pause animation, but still updates movement
  184. #   frames : Number of frames
  185. #--------------------------------------------------------------------------
  186. def delay(frames)
  187.    update_move
  188.    if (Graphics.frame_count - @old >= frames)
  189.      @old = Graphics.frame_count
  190.      return true
  191.    end
  192.    return false
  193. end
  194. end


  195. #==============================================================================
  196. # ■ Spriteset_Battle
  197. #------------------------------------------------------------------------------
  198. #  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ
  199. # スの内部で使用されます。
  200. #==============================================================================
  201. class Spriteset_Battle
  202. attr_accessor :actor_sprites
  203. attr_accessor :enemy_sprites
  204.   
  205.   
  206. alias original_initialize initialize
  207. def initialize
  208.    #@start_party_number = $game_party.actors.size
  209.    # ビューポートを作成
  210.    @viewport0 = Viewport.new(0, 0, 640, 480)
  211.    @viewport1 = Viewport.new(0, 0, 640, 320)
  212.    @viewport2 = Viewport.new(0, 0, 640, 480)
  213.    @viewport3 = Viewport.new(0, 0, 640, 480)
  214.    @viewport4 = Viewport.new(0, 0, 640, 480)
  215.    @viewport1.z = 50
  216.    @viewport2.z = 50
  217.    @viewport3.z = 200
  218.    @viewport4.z = 5000

  219.    @battleback_sprite = Sprite.new(@viewport0)
  220.     #### 生成动态战斗背景活动块
  221.    # @battlebackanimation = Sprite.new(@viewport0)

  222.     #  @battlebackanimation.bitmap = Bitmap.new("Graphics/Battlebacks/ruin-0")
  223.     #  @battlebackanimation.x = 0
  224.     #  @battlebackanimation.y = 0
  225.     #  @battleanimation_fcount = 0
  226.     #### 生成战斗我方状态背景
  227.     @battleback_swd = Sprite.new(@viewport4)
  228.     @battleback_swd.x = 0
  229.     @battleback_swd.y = 330
  230.     @battleback_swd.bitmap = Bitmap.new("Graphics/System/menu/battle_skin.jpg")
  231.     #  @battlebackanimation.bitmap = Bitmap.new("Graphics/Battlebacks/ruin-0")
  232.    
  233.    @enemy_sprites = []
  234.    for enemy in $game_troop.enemies #.reverse
  235.      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  236.    end
  237.    
  238.    @actor_sprites = []
  239.    @actor_sprites.push(Sprite_Battler.new(@viewport2,$game_party.actors[0]))
  240.    @actor_sprites.push(Sprite_Battler.new(@viewport2,$game_party.actors[1]))
  241.    @actor_sprites.push(Sprite_Battler.new(@viewport2,$game_party.actors[2]))
  242.    @actor_sprites.push(Sprite_Battler.new(@viewport2,$game_party.actors[3]))
  243.    
  244.    @weather = RPG::Weather.new(@viewport1)
  245.    @picture_sprites = []
  246.    for i in 51..100
  247.      @picture_sprites.push(Sprite_Picture.new(@viewport3,
  248.        $game_screen.pictures[i]))
  249.    end
  250.    @timer_sprite = Sprite_Timer.new
  251.    update
  252. end
  253.   
  254.   
  255.   
  256. alias original_update update
  257. def update
  258.    @viewport1.z = 51 and @viewport2.z = 50 if $actor_on_top == 0#true
  259.    @viewport1.z = 50 and @viewport2.z = 51 if $actor_on_top == 1#false
  260.     # 刷新角色的活动块 (对应角色的替换)
  261.     @actor_sprites[0].battler = $game_party.actors[0]
  262.     @actor_sprites[1].battler = $game_party.actors[1]
  263.     @actor_sprites[2].battler = $game_party.actors[2]
  264.     @actor_sprites[3].battler = $game_party.actors[3]

  265. #        if (Graphics.frame_count%15) == 0
  266. #        @battleanimation_fcount = @battleanimation_fcount%3
  267. #        @battlebackanimation.bitmap = Bitmap.new("Graphics/Battlebacks/ruin-#{@battleanimation_fcount}")
  268. #        @battleanimation_fcount += 1
  269. #        end
  270.     # 战斗背景的文件名与现在情况有差异的情况下
  271.     if @battleback_name != $game_temp.battleback_name
  272.       @battleback_name = $game_temp.battleback_name
  273.       if @battleback_sprite.bitmap != nil
  274.         @battleback_sprite.bitmap.dispose
  275. #        @battlebackanimation.bitmap.dispose
  276.       end
  277.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  278.       @battleback_sprite.src_rect.set(0, 0, 640, 480)    end
  279.     # 刷新战斗者的活动块
  280.     for sprite in @enemy_sprites + @actor_sprites
  281.       sprite.update
  282.     end
  283.     # 刷新天气图形
  284.     @weather.type = $game_screen.weather_type
  285.     @weather.max = $game_screen.weather_max
  286.     @weather.update
  287.     # 刷新图片活动块
  288.     for sprite in @picture_sprites
  289.       sprite.update
  290.     end
  291.     # 刷新计时器活动块
  292.     @timer_sprite.update
  293.     # 设置画面的色调与震动位置
  294.     @viewport1.tone = $game_screen.tone
  295.     @viewport1.ox = $game_screen.shake
  296.     # 设置画面的闪烁色
  297.     @viewport4.color = $game_screen.flash_color
  298.     # 刷新显示端口
  299.     @viewport1.update
  300.     @viewport2.update
  301.     @viewport4.update
  302.   end
  303. # ● 背景暗化  
  304.     alias update_black_bant update
  305.   def update
  306.     update_black_bant
  307.     #if @battleback_sprite.tone.red != -TONE_MARGINAL
  308.     if $game_temp.black_flug && @battleback_sprite.tone.red != -TONE_MARGINAL
  309.       @battleback_sprite.tone.red -= BLACK_R
  310.       @battleback_sprite.tone.green -= BLACK_G
  311.       @battleback_sprite.tone.blue -= BLACK_B
  312.     #elsif @battleback_sprite.tone.red != 0
  313.     elsif !$game_temp.black_flug && @battleback_sprite.tone.red != 0
  314.       @battleback_sprite.tone.red += BLACK_R
  315.       @battleback_sprite.tone.green += BLACK_G
  316.       @battleback_sprite.tone.blue += BLACK_B
  317.     end
  318.   end
  319. end
  320. # end

  321. #==============================================================================
  322. # Sprite Battler for the Costum Battle System
  323. #==============================================================================


  324. class Sprite_Battler < Animated_Sprite

  325. attr_accessor :battler
  326. attr_reader   :index
  327. attr_accessor :target_index
  328. attr_accessor :frame_width

  329.   
  330. def initialize(viewport, battler = nil)
  331.    super(viewport)
  332.    @battler = battler
  333.    @pattern_b = 0 #
  334.    @counter_b = 0 #
  335.    @index = 0     #
  336.    ##############
  337.   @battler_visible = false
  338.   @flash_shake_switch = true
  339.   ################
  340.    if @battler != nil
  341.      tempbitmap = RPG::Cache.battler(@battler.battler_name, @battler.battler_hue)
  342.      @frame_width = tempbitmap.width/4
  343.      picturephase = @battler.picturephase
  344.      if picturephase == "66RPG"
  345.        @frame_height = tempbitmap.height/8
  346.      else
  347.        @frame_height = tempbitmap.height/picturephase.to_i
  348.      end     
  349.    else
  350.      @frame_width, @frame_height = 1,1
  351.    end   
  352.    # start sprite
  353.    @battler.is_a?(Game_Enemy) ? enemy_pose(1) : pose(1)
  354.    @battler_visible = false
  355.    if $target_index == nil
  356.      $target_index = 0
  357.    end
  358. end
  359.   
  360. def index=(index) #
  361.    @index = index  #
  362.    update          #
  363. end               #
  364.   
  365. def dispose
  366.    if self.bitmap != nil
  367.      self.bitmap.dispose
  368.    end
  369.    super
  370. end
  371.   
  372. def enemy                                             #
  373.    $target_index += $game_troop.enemies.size
  374.    $target_index %= $game_troop.enemies.size
  375.    return $game_troop.enemies[$target_index]           #
  376. end                                                   #
  377.   
  378. def actor                                             #
  379.    $target_index += $game_party.actors.size
  380.    $target_index %= $game_party.actors.size
  381.    return $game_party.actors[$target_index]            #
  382. end            

  383. #==============================================================================
  384. # here is a snipplet from RPG's scrîpt...
  385. # i changed only to lines from this...
  386. #
  387. # here you can add more sprite poses... if you have more... ^-^
  388. #==============================================================================
  389. def pose(number, frames = 4)
  390.     case number
  391.     when 0  # run
  392.     change(frames, 2, 0, 0, 0)
  393.     when 1  # standby
  394.     change(frames, 20, 0, @frame_height)
  395.     when 2 # defend
  396.     change(frames, 5, 0, @frame_height * 2)
  397.     when 3 # Hurt
  398.     change(frames, 5, 0, @frame_height * 3, 0, true)
  399.     when 4 # attack no loop
  400.     change(frames, 2, 0, @frame_height * 4, 0, true)
  401.     when 5 # skill
  402.     change(frames, 5, 0, @frame_height * 5, 0, true)
  403.     when 6 # death
  404.     change(frames, 5, 0, @frame_height * 6, 3, true)
  405.     when 7 # winning pose
  406.     change(frames, 5, 0, @frame_height * 7, 0, true)
  407.     when 8 # no sprite
  408.     change(frames, 8, 0, @frame_height * 8, 0, true)
  409.     when 9 # no sprite
  410.     change(frames, 8, 0, @frame_height * 9, 0, true)
  411.     when 10 # no sprite
  412.     change(frames, 8, 0, @frame_height * 10,0, true)
  413.     when 11 # no sprite
  414.     change(frames, 1, 0, @frame_height * 11,0, true)
  415.     when 12 # no sprite
  416.     change(frames, 5, 0, @frame_height * 12)
  417.     when 13 # no sprite
  418.     change(frames, 5, 0, @frame_height * 13)
  419.     when 14 # no sprite
  420.     change(frames, 5, 0, @frame_height * 14)
  421.     when 15 # no sprite
  422.     change(frames, 5, 0, @frame_height * 15)
  423.     when 16 # no sprite
  424.     change(frames, 5, 0, @frame_height * 16)
  425.     when 17 # no sprite
  426.     change(frames, 5, 0, @frame_height * 17)
  427.     when 18 # no sprite
  428.     change(frames, 5, 0, @frame_height * 18)
  429.     when 19 # no sprite
  430.     change(frames, 5, 0, @frame_height * 19)
  431.     when 20 # no sprite
  432.     change(frames, 5, 0, @frame_height * 20)
  433.     # ...etc.
  434.    else
  435.      change(frames, 5, 0, @frame_height * number, 0)
  436.    end
  437. end
  438.   
  439. #--------------------------------------------------------------------------
  440. # - Change the battle pose for an enemy
  441. #   number : pose' number
  442. #--------------------------------------------------------------------------
  443. def enemy_pose(number ,enemy_frames = 4)
  444.    case number
  445.    when 0  # run
  446.      change(enemy_frames, 2, 0, 0, 0)
  447.    when 1  # standby
  448.      change(enemy_frames, 20, 0, @frame_height)
  449.    when 2 # defend
  450.      change(enemy_frames, 5, 0, @frame_height    , 3, true)
  451.    when 3 # Hurt
  452.      change(enemy_frames, 5, 0, @frame_height * 3, 0, true)
  453.    when 4 # attack
  454.      change(enemy_frames, 2, 0, @frame_height * 4, 0, true)
  455.    when 5 # skill
  456.      change(enemy_frames, 5, 0, @frame_height * 5, 0, true)
  457.    when 6 # death
  458.      change(enemy_frames, 5, 0, @frame_height * 6)
  459.    when 7 # no sprite
  460.      change(enemy_frames, 5, 0, @frame_height * 7)
  461.      # ...etc.
  462.    else
  463.      change(enemy_frames, 5, 0, @frame_height * number, 0)
  464.    end
  465. end
  466. #==============================================================================
  467. # sniplet end...
  468. #==============================================================================  
  469.   
  470.   
  471. def update
  472.    super
  473.    
  474.    if @battler == nil                                                      
  475.      self.bitmap = nil                                                      
  476.      loop_animation(nil)                                                   
  477.      return                                                               
  478.    end                                                                     
  479.    if @battler.battler_name != @battler_name or
  480.       @battler.battler_hue != @battler_hue

  481.      @battler_name = @battler.battler_name
  482.      @battler_hue = @battler.battler_hue
  483.      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  484.      @width = bitmap.width
  485.      @height = bitmap.height
  486.      self.ox = @frame_width / 2
  487.      self.oy = @frame_height

  488.      if @battler.dead? or @battler.hidden
  489.        self.opacity = 0
  490.      end
  491.      self.x =  @battler.screen_x
  492.      self.y =  @battler.screen_y
  493.      self.z = @battler.screen_z
  494.    end

  495.    if @battler.damage == nil and
  496.       @battler.state_animation_id != @state_animation_id
  497.      @state_animation_id = @battler.state_animation_id
  498.      loop_animation($data_animations[@state_animation_id])
  499.    end

  500.    if @battler.is_a?(Game_Actor) and @battler_visible
  501.      if $game_temp.battle_main_phase
  502.        self.opacity += 3 if self.opacity < 255
  503.      else
  504.        self.opacity -= 3 if self.opacity > 207
  505.      end
  506.    end

  507.    if @battler.blink
  508.      blink_on
  509.    else
  510.      blink_off
  511.    end

  512.    unless @battler_visible
  513.      if not @battler.hidden and not @battler.dead? and
  514.         (@battler.damage == nil or @battler.damage_pop)
  515.        appear
  516.        @battler_visible = true
  517.      end
  518.      if not @battler.hidden and
  519.         (@battler.damage == nil or @battler.damage_pop) and
  520.         @battler.is_a?(Game_Actor)
  521.        appear
  522.        @battler_visible = true
  523.      end
  524.    end
  525.    if @battler_visible
  526.      if @battler.hidden
  527.        $game_system.se_play($data_system.escape_se)
  528.        escape
  529.        @battler_visible = false
  530.      end
  531.      if @battler.white_flash
  532.        whiten
  533.        @battler.white_flash = false
  534.      end
  535.      if @battler.animation_id != 0
  536.        animation = $data_animations[@battler.animation_id]
  537.      #  animation(animation, @battler.animation_hit)
  538.       ###########
  539.       animation(animation, @battler.animation_hit,@battler.damage, @battler.critical)
  540.       ##########
  541.       @battler.animation_id = 0
  542.      end
  543.      if @battler.damage_pop
  544.      # damage(@battler.damage, @battler.critical) #########
  545.        @battler.damage = nil
  546.        @battler.critical = false
  547.        @battler.damage_pop = false
  548.      end
  549.      if @battler.damage == nil and @battler.dead?
  550.        if @battler.is_a?(Game_Enemy)
  551.          $game_system.se_play($data_system.enemy_collapse_se)
  552.          collapse
  553.          @battler_visible = false
  554.        else
  555.          $game_system.se_play($data_system.actor_collapse_se) unless @dead
  556.          @dead = true
  557.          pose(6)
  558.        end
  559.      else
  560.        @dead = false
  561.      end
  562.     # 设置活动块的坐标################
  563.   if @flash_shake_switch == true
  564.     self.x = @battler.screen_x
  565.     self.y = @battler.screen_y
  566.     self.z = @battler.screen_z
  567.     @flash_shake_switch = false
  568.   end
  569.   if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
  570.     case @flash_shake
  571.     when 9..10
  572.       self.x = @battler.screen_x
  573.       self.y -=4
  574.       self.z = @battler.screen_z
  575.     when 6..8
  576.       self.x = @battler.screen_x
  577.       self.y -=2
  578.       self.z = @battler.screen_z
  579.     when 3..5
  580.       self.x = @battler.screen_x
  581.       self.y +=2
  582.       self.z = @battler.screen_z
  583.     when 2
  584.       self.x = @battler.screen_x
  585.       self.y += 4
  586.       self.z = @battler.screen_z
  587.     when 1
  588.       self.x = @battler.screen_x
  589.       self.y = @battler.screen_y
  590.       self.z = @battler.screen_z
  591.     end
  592.     @flash_shake -= 1
  593.     end##############
  594.    end                                                                #
  595. end
  596. end


  597. #==============================================================================
  598. # Scene_Battle Costum  Battle System
  599. #==============================================================================

  600. class Scene_Battle
  601.   
  602.   
  603. def update_phase4
  604.    case @phase4_step
  605.    when 1
  606.      update_phase4_step1
  607.    when 2
  608.      update_phase4_step2
  609.    when 3
  610.      update_phase4_step3
  611.    when 4
  612.      update_phase4_step4
  613.    when 5
  614.      update_phase4_step5
  615.    when 6
  616.      update_phase4_step6
  617.    when 7
  618.      update_phase4_step7
  619.    when 8
  620.     update_phase4_step8   
  621.    end
  622. end
  623.   
  624.   
  625. def make_basic_action_result
  626.   @battler_cp.stop = true
  627.    if @active_battler.is_a?(Game_Actor)
  628.      $actor_on_top = 1
  629.    elsif @active_battler.is_a?(Game_Enemy)
  630.      $actor_on_top = 0
  631.    end
  632.    
  633.    if @active_battler.current_action.basic == 0
  634. #============================================================================
  635. # WEAPONS START...
  636. #============================================================================
  637.      #@animation1_id = @active_battler.animation1_id
  638.      #@animation2_id = @active_battler.animation2_id

  639.      if @active_battler.is_a?(Game_Actor)
  640.        if $data_weapons[@active_battler.weapon_id] == nil
  641.          @weapon_sprite = 4
  642.        else
  643.          if $data_weapons[@active_battler.weapon_id].name2 == nil or
  644.            $data_weapons[@active_battler.weapon_id].name2 == ""
  645.            @weapon_sprite = 4
  646.          else
  647.            @weapon_sprite = $data_weapons[@active_battler.weapon_id].name2.to_i
  648.          end
  649.        end
  650. # monster section is here... ^-^

  651.      else # @active_battler.is_a?(Game_Enemy)
  652.          @weapon_sprite_enemy = 4
  653.      end
  654.         
  655. #
  656. #=============================================================================
  657. # WEAPONS END....
  658. #=============================================================================
  659.       
  660.       
  661.      @animation1_id = @active_battler.animation1_id
  662.      @animation2_id = @active_battler.animation2_id
  663.      if @active_battler.is_a?(Game_Enemy)
  664.        if @active_battler.restriction == 3
  665.          target = $game_troop.random_target_enemy
  666.          target = $game_party.random_target_actor if target == @active_battler
  667.        elsif @active_battler.restriction == 2
  668.          target = $game_party.random_target_actor
  669.        else
  670.          index = @active_battler.current_action.target_index
  671.          target = $game_party.smooth_target_actor(index)
  672.        end
  673. #======== here is the setting for the movement & animation...
  674.          x = target.screen_x - RPG::Cache.battler(@active_battler.battler_name, @active_battler.battler_hue).width/6
  675.          @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0)
  676.          @spriteset.enemy_sprites[@active_battler.index].move(x, target.screen_y, 20)
  677. #========= here if you look at the RPG's movement settings you'll see
  678. #========= that he takes the number 40 for the speed of the animation...
  679. #========= i thing thats too fast so i settet it down to 10 so looks smoother...
  680.      end
  681.      if @active_battler.is_a?(Game_Actor)
  682.        if @active_battler.restriction == 3
  683.          target = $game_party.random_target_actor
  684.          target = $game_troop.random_target_enemy if target == @active_battler
  685.        elsif @active_battler.restriction == 2
  686.          target = $game_troop.random_target_enemy
  687.        else
  688.          #绝技修炼
  689.          case @active_battler.id
  690.           when 1
  691.             $game_variables[1] += 1
  692.           when 2
  693.             $game_variables[2] += 1
  694.           when 4
  695.             $game_variables[5] += 1
  696.           when 5
  697.             $game_variables[3] += 1
  698.           when 6
  699.             $game_variables[4] += 1
  700.           end
  701.          index = @active_battler.current_action.target_index
  702.          target = $game_troop.smooth_target_enemy(index)
  703.        end
  704. #======= the same thing for the player... ^-^
  705.        x = target.screen_x + RPG::Cache.battler(@active_battler.battler_name, @active_battler.battler_hue).width/8
  706.        @spriteset.actor_sprites[@active_battler.index].pose(0)
  707.        @spriteset.actor_sprites[@active_battler.index].move(x, target.screen_y, 20)
  708.      end
  709.      @target_battlers = [target]
  710.      for target in @target_battlers
  711.        target.attack_effect(@active_battler)
  712.      end
  713. #@status_window.refresh
  714.      return
  715.    end
  716.    if @active_battler.current_action.basic == 1
  717.      if @active_battler.is_a?(Game_Actor)
  718.        @spriteset.actor_sprites[@active_battler.index].pose(2) #defence
  719.      else
  720.        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1) #defence
  721.      end
  722.      @help_window.set_text($data_system.words.guard, 1)
  723. #@status_window.refresh
  724.      return
  725.    end
  726.    if @active_battler.is_a?(Game_Enemy) and
  727.       @active_battler.current_action.basic == 2
  728.      @help_window.set_text("逃走", 1)
  729.      @active_battler.escape
  730.      return
  731.    end
  732.    if @active_battler.current_action.basic == 3
  733.      $game_temp.forcing_battler = nil
  734.      @phase4_step = 1
  735.      return
  736.    end
  737.    
  738.    if @active_battler.current_action.basic == 4
  739.      if $game_temp.battle_can_escape == false
  740.        $game_system.se_play($data_system.buzzer_se)
  741.        return
  742.      end
  743.      $game_system.se_play($data_system.decision_se)
  744.      update_phase2_escape
  745.      return
  746.    end
  747. end
  748. #--------------------------------------------------------------------------
  749. # skill aktion...
  750. #--------------------------------------------------------------------------
  751. def make_skill_action_result
  752.   @battler_cp.stop = true
  753.    if @active_battler.is_a?(Game_Actor)
  754.      $actor_on_top = 0
  755.    elsif @active_battler.is_a?(Game_Enemy)
  756.      $actor_on_top = 1
  757.    end ###★

  758.    @skill = $data_skills[@active_battler.current_action.skill_id]
  759. $actor_on_top = 1 if @skill.id == 71
  760.    unless @active_battler.current_action.forcing
  761.      unless @active_battler.skill_can_use?(@skill.id)
  762.        $game_temp.forcing_battler = nil
  763.        @active_battler.current_action.basic = 1
  764.        make_basic_action_result
  765.        @active_battler.cp+=65535
  766.        @phase4_step = 2
  767.        return
  768.      end
  769.    end
  770.    @active_battler.sp -= @skill.sp_cost
  771.    if @skill.element_set.include?(2) #★,消耗HP储存条
  772.            @active_battler.hp_store -= 100
  773.            @active_battler.hp_store_full = 0
  774.    end
  775.    @help_window.set_text(@skill.name, 1)
  776.    
  777. #=============================================================================
  778. # SKILL SPRITES START
  779. #=============================================================================
  780.    
  781.    if @active_battler.is_a?(Game_Actor)
  782.      case @skill.id
  783.       when 62..67,69,72..74
  784.          @spriteset.actor_sprites[@active_battler.index].pose(8)
  785.       when 48,56,68,70
  786.          @spriteset.actor_sprites[@active_battler.index].pose(9)
  787.       when 57
  788.          @spriteset.actor_sprites[@active_battler.index].pose(10)
  789.       else
  790.         $game_system.se_play2("attack2_" + @active_battler.battler_name)
  791.         @spriteset.actor_sprites[@active_battler.index].pose(5)
  792.       end
  793.    else
  794.       case @skill.id
  795.       when 139,144,152,153
  796.          @spriteset.enemy_sprites[@active_battler.index].pose(7)
  797.       when 150
  798.          @spriteset.enemy_sprites[@active_battler.index].pose(1)
  799.       else
  800.        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(5) # <-- sprite number  
  801.       $game_system.se_play2("attack_enemy_"+$data_enemies[@active_battler.id].name2)#####
  802.       end
  803.    end
  804. #=============================================================================
  805. # SKILL SPRITES END
  806. #=============================================================================
  807.    
  808.    @animation1_id = @skill.animation1_id
  809.    @animation2_id = @skill.animation2_id
  810.    @common_event_id = @skill.common_event_id
  811.    set_target_battlers(@skill.scope)
  812.    for target in @target_battlers
  813.      target.skill_effect(@active_battler, @skill)
  814.    end
  815. #@status_window.refresh
  816. end
  817. #--------------------------------------------------------------------------
  818. # how here we make the item use aktions
  819. #--------------------------------------------------------------------------
  820. def make_item_action_result
  821.    # sorry i didnt work on this...
  822.    # couse i dont have a sprite that uses items....
  823.    # so i just added the standby sprite here...
  824.    # when i get more time for this i'll try what i can do for this one... ^-^
  825.    # its the same as the ones above...
  826.    if @active_battler.is_a?(Game_Actor)
  827.     $game_system.se_play2("attack2_" + @active_battler.battler_name)
  828.      @spriteset.actor_sprites[@active_battler.index].pose(5)
  829.    else
  830.      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(5)
  831.    end
  832.    
  833.    @item = $data_items[@active_battler.current_action.item_id]
  834.    unless $game_party.item_can_use?(@item.id)
  835.      @phase4_step = 1
  836.      return
  837.    end
  838.    if @item.consumable
  839.      $game_party.lose_item(@item.id, 1)
  840.    end

  841.    @help_window.set_text(@item.name, 1)
  842.    @animation1_id = @item.animation1_id
  843.    @animation2_id = @item.animation2_id
  844.    @common_event_id = @item.common_event_id
  845.    index = @active_battler.current_action.target_index
  846.    target = $game_party.smooth_target_actor(index)
  847.    set_target_battlers(@item.scope)
  848.    for target in @target_battlers
  849.      target.item_effect(@item)
  850.    end
  851. #@status_window.refresh
  852. end
  853.   
  854. #==============================================================================
  855. # here again.... snipplet from RPG's scrîpt
  856. #==============================================================================


  857. def start_phase5
  858.   @battler_cp.stop = true
  859.   @battler_cp.clean
  860.    @phase = 5
  861.    $game_system.me_play($game_system.battle_end_me)
  862.    $game_system.bgm_play($game_temp.map_bgm)
  863.    exp = 0
  864.    gold = 0
  865.    treasures = []
  866.    for enemy in $game_troop.enemies
  867.      unless enemy.hidden
  868.        exp += enemy.exp
  869.        gold += enemy.gold
  870.        if rand(100) < enemy.treasure_prob
  871.          if enemy.item_id > 0
  872.            treasures.push($data_items[enemy.item_id])
  873.          end
  874.          if enemy.weapon_id > 0
  875.            treasures.push($data_weapons[enemy.weapon_id])
  876.          end
  877.          if enemy.armor_id > 0
  878.            treasures.push($data_armors[enemy.armor_id])
  879.          end
  880.        end
  881.      end
  882.    end
  883.    treasures = treasures[0..5]   
  884.    for i in 0...$game_party.actors.size
  885.      actor = $game_party.actors[i]
  886.     actor.remove_states_battle ############

  887.      @spriteset.actor_sprites[i].pose(7) unless actor.dead? # {=====}
  888.      if actor.cant_get_exp? == false
  889.        last_level = actor.level
  890.        actor.exp += exp
  891.        if actor.level > last_level
  892.          @status_window.level_up(i)
  893.        end
  894.      end
  895.    end
  896.    $game_party.gain_gold(gold)
  897.    for item in treasures
  898.      case item
  899.      when RPG::Item
  900.        $game_party.gain_item(item.id, 1)
  901.      when RPG::Weapon
  902.        $game_party.gain_weapon(item.id, 1)
  903.      when RPG::Armor
  904.        $game_party.gain_armor(item.id, 1)
  905.      end
  906.    end
  907.    @result_window = Window_BattleResult.new(exp, gold, treasures)
  908.    @phase5_wait_count = 80
  909. end
  910. #   =*****=
  911. #--------------------------------------------------------------------------
  912. # updating the movement
  913. # since RPG isnt used to comments... i'll comment it again...
  914. #--------------------------------------------------------------------------
  915. def update_phase4_step3
  916.    if @active_battler.current_action.kind == 0 and
  917.       @active_battler.current_action.basic == 0
  918.       # in this one... we have our weapon animations... for player and monster
  919.      if @active_battler.is_a?(Game_Actor)
  920.        @spriteset.actor_sprites[@active_battler.index].pose(@weapon_sprite)
  921.      elsif @active_battler.is_a?(Game_Enemy)
  922.        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(@weapon_sprite_enemy)
  923.      end
  924.    end
  925.    if @animation1_id == 0
  926.      @active_battler.white_flash = true
  927.    else
  928.      @active_battler.animation_id = @animation1_id
  929.      @active_battler.animation_hit = true
  930.    end
  931.    @phase4_step = 4
  932. end

  933. def update_phase4_step4
  934.    # this here is for the hit animation...  
  935.    for target in @target_battlers
  936.      target.animation_id = @animation2_id
  937.      target.animation_hit = (target.damage != "Miss" )
  938.    end
  939.    for target in @target_battlers
  940.        if @animation2_id != 0 and target.cp < 65535
  941.         r = $data_animations[@animation2_id].hit_cp
  942.        else
  943.         r = 0
  944.        end

  945.      if target.is_a?(Game_Actor) and !@active_battler.is_a?(Game_Actor)
  946.        if target.guarding?
  947.          @spriteset.actor_sprites[target.index].pose(2)
  948.          #if r > 0
  949.           for i in 1..10
  950.             Graphics.update
  951.             #Input.update
  952.             update
  953.             target.cp -= 25*r
  954.             @battler_cp.ttbar[target].x = [514*target.cp/ 65535 + 45,45].max
  955.           end
  956.           #end
  957.        elsif target.damage == "Miss"
  958.          @spriteset.actor_sprites[target.index].pose(1)
  959.        else
  960.       
  961.         if r > 0
  962.           for i in 1..10
  963.             Graphics.update
  964.             #Input.update
  965.             update
  966.             target.cp -= 50*r
  967.             @battler_cp.ttbar[target].x = [514*target.cp/ 65535 + 45,45].max
  968.             i=r if i==10 and r>10
  969.             if i == r
  970.              @spriteset.actor_sprites[target.index].pose(3)
  971.              $game_system.se_play2("ouch_" + target.battler_name)
  972.             end
  973.           end
  974.         else
  975.              @spriteset.actor_sprites[target.index].pose(3)
  976.              $game_system.se_play2("ouch_" + target.battler_name)
  977.         end
  978.        end
  979.        elsif target.is_a?(Game_Enemy) and !@active_battler.is_a?(Game_Enemy)
  980.        if target.guarding?
  981.          @spriteset.enemy_sprites[target.index].enemy_pose(2)
  982.          #if r > 0
  983.           for i in 1..10
  984.             Graphics.update
  985.             #Input.update
  986.             update
  987.             target.cp -= 25*r
  988.             @battler_cp.ttbar[target].x = [514*target.cp/ 65535 + 45,45].max
  989.           end
  990.          # end
  991.        elsif target.damage == "Miss"
  992.          @spriteset.enemy_sprites[target.index].enemy_pose(1)
  993.        else

  994.         if r > 0
  995.           for i in 1..10
  996.             Graphics.update
  997.             #Input.update
  998.             update
  999.             target.cp -= 50*r
  1000.             @battler_cp.ttbar[target].x = [514*target.cp/ 65535 + 45,45].max
  1001.             i=r if i==10 and r>10
  1002.             if i == r
  1003.              @spriteset.enemy_sprites[target.index].enemy_pose(3)
  1004.              $game_system.se_play2("ouch_enemy_"+$data_enemies[target.id].name2)#####
  1005.             end
  1006.           end
  1007.         else
  1008.             @spriteset.enemy_sprites[target.index].enemy_pose(3)
  1009.             $game_system.se_play2("ouch_enemy_"+$data_enemies[target.id].name2)#####
  1010.         end
  1011.         end

  1012.      end

  1013.    end
  1014.    
  1015.    @wait_count = 0
  1016.    @phase4_step = 5
  1017. end

  1018. def update_phase4_step5

  1019.    @help_window.visible = false
  1020. #@status_window.refresh
  1021.    # here comes the guard animations....
  1022.    if @active_battler.is_a?(Game_Actor)
  1023.      @spriteset.actor_sprites[@active_battler.index].pose(1)
  1024.    else
  1025.      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
  1026.    end
  1027.    for target in @target_battlers
  1028.      if target.damage != nil
  1029.        target.damage_pop = true
  1030.        if @active_battler.is_a?(Game_Actor)
  1031.          @spriteset.actor_sprites[@active_battler.index].pose(1)
  1032.        else
  1033.          @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
  1034.        end
  1035.      end
  1036.    end
  1037.    @phase4_step = 6
  1038. end
  1039. #--------------------------------------------------------------------------
  1040. # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  1041. #--------------------------------------------------------------------------
  1042. def update_phase4_step6   
  1043.   @battler_cp.stop = true
  1044.    # here we are asking if the player is dead and is a player or an enemy...
  1045.    # these lines are for the running back and standby animation....
  1046.    if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
  1047.      @spriteset.actor_sprites[@active_battler.index].move(@active_battler.screen_x, @active_battler.screen_y, 25)
  1048.      @spriteset.actor_sprites[@active_battler.index].pose(0)
  1049.    elsif !@active_battler.dead?
  1050.      @spriteset.enemy_sprites[@active_battler.index].move(@active_battler.screen_x, @active_battler.screen_y, 25)
  1051.      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0)
  1052.    end
  1053.    for target in @target_battlers
  1054.      if target.is_a?(Game_Actor) and !target.dead?
  1055.          @spriteset.actor_sprites[target.index].pose(1)
  1056.        elsif !target.dead?
  1057.          @spriteset.enemy_sprites[target.index].enemy_pose(1)
  1058.      end
  1059.    end
  1060.    $game_temp.forcing_battler = nil
  1061.   @battler_cp.refresh[@active_battler] = true
  1062.    if @common_event_id > 0
  1063.   @battler_cp.stop = true
  1064.      if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
  1065.        @spriteset.actor_sprites[@active_battler.index].pose(1)
  1066.      end
  1067.      common_event = $data_common_events[@common_event_id]
  1068.      $game_system.battle_interpreter.setup(common_event.list, 0)
  1069.    end
  1070.    @phase4_step = 7
  1071. end

  1072. def update_phase4_step7
  1073.    
  1074.    # here we are asking if the player is dead and is a player or an enemy...
  1075.    # these lines are for the running back and standby animation....
  1076.    if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
  1077.      @spriteset.actor_sprites[@active_battler.index].pose(1)
  1078.    elsif !@active_battler.dead?
  1079.      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
  1080.    end

  1081. #   $game_temp.forcing_battler = nil
  1082. #   if @common_event_id > 0
  1083. #     common_event = $data_common_events[@common_event_id]
  1084. #     $game_system.battle_interpreter.setup(common_event.list, 0)
  1085. #   end
  1086. @battler_cp.stop = false
  1087.    @phase4_step = 1
  1088. end
  1089.   
  1090. # this one is an extra... without this the animation whill not work correctly...

  1091. def update
  1092.    if $game_system.battle_interpreter.running?
  1093.      $game_system.battle_interpreter.update
  1094.      if $game_temp.forcing_battler == nil
  1095.        unless $game_system.battle_interpreter.running?
  1096.          unless judge
  1097.            setup_battle_event
  1098.          end
  1099.        end
  1100.        if @phase != 5
  1101.          @status_window.refresh
  1102.        end
  1103.      end
  1104.    end
  1105.    $game_system.update
  1106.    $game_screen.update
  1107.    if $game_system.timer_working and $game_system.timer == 0
  1108.      $game_temp.battle_abort = true
  1109.    end
  1110.    @help_window.update
  1111.    @party_command_window.update
  1112.    @actor_command_window.update
  1113.    @status_window.update
  1114.    @message_window.update
  1115.    @spriteset.update
  1116.    if $game_temp.transition_processing
  1117.      $game_temp.transition_processing = false
  1118.      if $game_temp.transition_name == ""
  1119.        Graphics.transition(20)
  1120.      else
  1121.        Graphics.transition(40, "Graphics/Transitions/" +
  1122.          $game_temp.transition_name)
  1123.      end
  1124.    end
  1125.    if $game_temp.message_window_showing
  1126.      return
  1127.    end
  1128.    if @spriteset.effect?
  1129.      return
  1130.    end
  1131.    if $game_temp.gameover
  1132.      $scene = Scene_Gameover.new
  1133.      return
  1134.    end
  1135.    if $game_temp.to_title
  1136.      $scene = Scene_Title.new
  1137.      return
  1138.    end
  1139.    if $game_temp.battle_abort
  1140.      $game_system.bgm_play($game_temp.map_bgm)
  1141.     $fff_bmenu = 0
  1142.      battle_end(1)
  1143.      return
  1144.    end
  1145.    if @wait_count > 0
  1146.      @wait_count -= 1
  1147.      return
  1148.    end

  1149.    # this one holds the battle while the player moves
  1150.    for actor in @spriteset.actor_sprites
  1151.      if actor.moving
  1152.        return
  1153.      end
  1154.    end
  1155.    # and this one is for the enemy...
  1156.    for enemy in @spriteset.enemy_sprites
  1157.      if enemy.moving# and $game_system.animated_enemy
  1158.        return
  1159.      end
  1160.    end
  1161.    
  1162.    if $game_temp.forcing_battler == nil and
  1163.       $game_system.battle_interpreter.running?
  1164.      return
  1165.    end
  1166.    case @phase
  1167.    when 1
  1168.      update_phase1
  1169.    when 2
  1170.      update_phase2
  1171.    when 3
  1172.      update_phase3
  1173.    when 4
  1174.      update_phase4
  1175.    when 5
  1176.      update_phase5
  1177.    end
  1178. end

  1179.   
  1180. #==============================================================================
  1181. # end of the snipplet
  1182. # if you want the comments that where here just look at the scene_battle 4...
  1183. # i added some comments since RPG hasnt add any....
  1184. #==============================================================================
  1185. end

复制代码
dsu_plus_rewardpost_czw
作者: 水终结者    时间: 2012-10-14 17:20
楼主可以把脚本发一下么
作者: Wind2010    时间: 2012-10-14 18:37
怪兽名称被改为:
","
",0"
",test"
之类的字符段
作者: 1358840591    时间: 2012-10-14 19:48
Wind2010 发表于 2012-10-14 18:37
怪兽名称被改为:
","
",0"

我是脚本白痴啊,你帮帮俺
作者: 水终结者    时间: 2012-10-14 19:52
1358840591 发表于 2012-10-14 19:48
我是脚本白痴啊,你帮帮俺


一般用别人的脚本,自己先看看说明,个性化的地方改一改。。这个我没用过。。




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