Ergebnis 1 bis 11 von 11

Thema: Soul Calibur Stories

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

  2. #2
    Was erwartest du? Du kommst hier mit gleich 0 und erwartest, dass man dir bereitwillig hilft. Wie Kelven schon gesagt hast, musst du den gesamten Code posten, wenn du willst, dass jemand dir hilft.
    Bei einer Fehlermeldung sieht man selten, was genau das Problem ist.

  3. #3
    Sry vergessen(Ich döddel )
    Code:
    #------------------------------------------------------------------------------
    # This modification is so that you can spawn new events mainly for animations in
    # the battle system. Miss and summons will not work if this is not here.
    #------------------------------------------------------------------------------
    
    class Anim_Miss < Game_Event
      def initialize(type = 0, anim_id = 0)
        @type = type
        @anim_id = anim_id
        @played = false
        anim = RPG::Event.new(0,0)
        super($game_map.map_id, anim)
      end
      
      def animated?
        return false
      end
      
      def start_anim
        
        case @type
        when 0
          @animation_id = GTBS::MISS_ANIMATION #Animation ID of MISS!.. for spells that miss
        when 1
          @animation_id = GTBS::SUMMON_ANIM_ID #Animation ID of SPAWN.. for summons  (RAISE)
        else
          @animation_id = @anim_id
        end
        @played = true
      end
      
      def place(x,y)
        moveto(x,y)
        @id = $game_map.events.size + 1
        $game_system.battle_events[@id] = self
        $scene.spriteset.event_sprites.push(Sprite_Character.new($scene.spriteset.viewport1,self))
        @sprite = $scene.spriteset.event_sprites.last
      end
      
      #alias anim_miss_update update
      def update
        super()
        if @played == true and !@sprite.animation?
          $scene.spriteset.event_sprites.delete(@sprite)
          $game_map.events.delete(self)
        end
      end
    end
    
    class Turn_Sprite < Sprite_Base
      def initialize(viewport)
        @_damage_duration = 0
        super(viewport)
      end
      
      def dispose_damage
        if @_damage_sprite != nil
          @_damage_sprite.bitmap.dispose
          @_damage_sprite.dispose
          @_damage_sprite = nil
          @_damage_duration = 0
        end
      end
      
      def update
        update_damage
        super
      end
      
      def update_damage
        if @_damage_duration > 0
          @_damage_duration -= 1
          case @_damage_duration
          when 38..39
            @_damage_sprite.y -= 4
          when 36..37
            @_damage_sprite.y -= 2
          when 34..35
            @_damage_sprite.y += 2
          when 28..33
            @_damage_sprite.y += 4
          end
          @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
          if @_damage_duration == 0
            dispose_damage
          end
        end
      end
    
      def damage(value, critical)
        dispose_damage
        if value.is_a?(Numeric)
          damage_string = value.abs.to_s
        else
          damage_string = value.to_s
        end
        bitmap = Bitmap.new(160, 48)
        bitmap.font.name = "Arial Black"
        bitmap.font.size = 32
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
        bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
        bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
        bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
        if value.is_a?(Numeric) and value < 0
          bitmap.font.color.set(176, 255, 144)
        else
          bitmap.font.color.set(255, 255, 255)
        end
        bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
        if critical
          bitmap.font.size = 20
          bitmap.font.color.set(0, 0, 0)
          bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
          bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
          bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
          bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
          bitmap.font.color.set(255, 255, 255)
          bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
        end
        @_damage_sprite = ::Sprite.new(self.viewport)
        @_damage_sprite.bitmap = bitmap
        @_damage_sprite.ox = 80
        @_damage_sprite.oy = 20
        @_damage_sprite.x = self.x
        @_damage_sprite.y = self.y - (self.oy/1.5)
        @_damage_sprite.z = 3000
        @_damage_duration = 60
      end
      
      def doom_pop(value) #Used only for doom right now.
        dispose_damage
        if value.is_a?(Numeric)
          damage_string = value.abs.to_s
        else
          damage_string = value.to_s
        end
        bitmap = Bitmap.new(160, 48)
        bitmap.font.name = GTBS.font
        bitmap.font.size = 20
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
        bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
        bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
        bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
        if value.is_a?(Numeric) and value < 0
          bitmap.font.color.set(176, 255, 144)
        else
          bitmap.font.color.set(255, 255, 255)
        end
        bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
        @_damage_sprite = ::Sprite.new(self.viewport)
        @_damage_sprite.bitmap = bitmap
        @_damage_sprite.ox = 80
        @_damage_sprite.oy = 20
        @_damage_sprite.x = self.x
        @_damage_sprite.y = self.y - (self.oy / 1.5)
        @_damage_sprite.z = 3000
        @_damage_duration = 40
      end
      
      def start_animation(animation, mirror = false, direction = 8)
        @direction = direction
        @turnable = animation.name.downcase.include?("[turn]")
        @updated = false
        super(animation, mirror)
      end
      
      
      def animation_set_sprites(frame)
        super(frame)
        for i in 0..15
          sprite = @animation_sprites[i]
          if @turnable
            d = @direction
            sprite.angle += (d == 8 ? 0 : d == 6 ? 270 : d == 4 ? 90 : 180)
          end
        end
      end
    end
    
    class Bitmap
      def draw_outline_text(x,y,w,h,text,align=0,clear = 1)
        color = self.font.color.clone
        if clear == 1
          self.font.color = Color.new(50,50,50,200)
        elsif clear == 0
          self.font.color = Color.new(0,0,0)
        end
        self.draw_text(x+1,y+1,w,h,text,align)
        self.draw_text(x+1,y-1,w,h,text,align)
        self.draw_text(x-1,y-1,w,h,text,align)
        self.draw_text(x-1,y+1,w,h,text,align)
        self.draw_text(x-1,y,w,h,text,align)
        self.draw_text(x+1,y,w,h,text,align)
        self.draw_text(x,y+1,w,h,text,align)
        self.draw_text(x,y-1,w,h,text,align)
        self.font.color = color
        self.draw_text(x,y,w,h,text,align)
      end
      
      def gradation_rect(x, y, width, height, color1, color2, align = 0)
        if align == 0
          for i in x...x + width
            red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
            green = color1.green +
                    (color2.green - color1.green) * (i - x) / (width - 1)
            blue  = color1.blue +
                    (color2.blue - color1.blue) * (i - x) / (width - 1)
            alpha = color1.alpha +
                    (color2.alpha - color1.alpha) * (i - x) / (width - 1)
            color = Color.new(red, green, blue, alpha)
            fill_rect(i, y, 1, height, color)
          end
        elsif align == 1
          for i in y...y + height
            red   = color1.red +
                    (color2.red - color1.red) * (i - y) / (height - 1)
            green = color1.green +
                    (color2.green - color1.green) * (i - y) / (height - 1)
            blue  = color1.blue +
                    (color2.blue - color1.blue) * (i - y) / (height - 1)
            alpha = color1.alpha +
                    (color2.alpha - color1.alpha) * (i - y) / (height - 1)
            color = Color.new(red, green, blue, alpha)
            fill_rect(x, i, width, 1, color)
          end
        elsif align == 2
          for i in x...x + width
            for j in y...y + height
              red   = color1.red + (color2.red - color1.red) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              green = color1.green + (color2.green - color1.green) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              blue  = color1.blue + (color2.blue - color1.blue) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              alpha = color1.alpha + (color2.alpha - color1.alpha) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              color = Color.new(red, green, blue, alpha)
              set_pixel(i, j, color)
            end
          end
        elsif align == 3
          for i in x...x + width
            for j in y...y + height
              red   = color1.red + (color2.red - color1.red) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              green = color1.green + (color2.green - color1.green) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              blue  = color1.blue + (color2.blue - color1.blue) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              alpha = color1.alpha + (color2.alpha - color1.alpha) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              color = Color.new(red, green, blue, alpha)
              set_pixel(i, j, color)
            end
          end
        end
      end
    end

  4. #4
    Da Dir bisher noch niemend weitergeholfen hat, frage ich mal ganz dumm: Wo in Deinem Sourcecode ist die Klasse Sprite_Base definiert? Ich kann sie nämlich nicht finden - und wenn das wirklich der gesamte relevante Code ist, den Du gepostet hast, dann kann ihn Dein Computer vermutlich auch nicht finden.

  5. #5
    Das ist ein Script vom ganzen KS

  6. #6
    Zitat Zitat von Valatmir Beitrag anzeigen
    Das ist ein Script vom ganzen KS
    Ja. In Deinem Script finde ich folgende Zeile:
    class Turn_Sprite < Sprite_Base
    Du deklarierst also eine Klasse Turn_Sprite, die ihre Eigenschaften und Methoden von der übergeordneten Klasse Sprite_Base erben soll. Nun gibt's aber nichts zu erben, weil die Klasse Sprite_Base in deinem Code nicht gefunden werden kann. Der Computer weiss sich nicht zu helfen und schmeißt 'ne Fehlermeldung.

    Das ist jedenfalls das, was ich aus Deinen Informationen herauslesen kann.

    Geändert von Das'O' (10.12.2010 um 03:39 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •