Ergebnis 1 bis 9 von 9

Thema: VX[Ace] Ruby | Bilder und Scripte

  1. #1

    VX[Ace] Ruby | Bilder und Scripte

    Nabend zusammen^^

    Es sind an und für sich zwei Fragen die sich beide mit Bildern und Bildern in Scripten befassen.

    Also.

    Frage 1:
    Einige Scripte die ich nutze verwenden Bilder oder das IconSet. Ist ja schön und gut nur werden die von Anfang an angezeigt. Kann man Scripten irgendwie sagen... das sie erst später starten sollen oder muss ich wie ich befürchte jedes Bild und jedes Icon mit einer If Abfrage umschließen, damit ich es bei Bedarf an und ausschalten kann?
    Wenn jemand eine schnellere und angenehmere Lösung wüsste wäre ich dankbar.

    Frage 2:
    Das Spiel das ich momentan baue bekommt Maps via Parallaxmapping. Bedeutet viele Bilder. Nun ja, irgendwie verschwinden nun aber hinter meinen Bildern(die für die Maps) die Bilder aus meinen Scripten. Was wenig hilfreich bei einem AKS ist... besonders dann wenn der HP Balken hinter einem Baum verschwindet. Kann man da was ändern oder muss ich mir die Bilder für das AKS anders anzeigen lassen?

  2. #2
    Ändern kann man das natürlich alles. Nur muss man dafür schon die Scripte kennen ^^
    Bitte mit Sourcecode und nicht einfach nur den Namen.

  3. #3
    Die Scripte starten ja dann, wenn sie aufgerufen werden. Du könntest den Aufruf an eine andere Stelle packen. Alternativ könntest du vielleicht auch die Bilder alle unsichtbar schalten (also nicht per Hand, sondern per Script). Am besten wäre aber, wenn du mal den Teil des Codes zeigst, in dem die Bilder aufgerufen werden.

    Bilder haben alle eine z-Koordinate, die quasi ihre "Höhe" angibt. Du musst nur einen höheren Wert als bei dem Baum u. ä. auswählen.

  4. #4
    @Ergänzung zu dem was Kelven gesagt hat:
    Bilder haben zwar alle eine Z-Koordinate, welche ihre Priorität angibt, aber sie können auch in unterschiedlichen Viewports liegen.
    Wenn ein Bild in einem Viewport liegt, welcher höher ist als ein anderer Viewport, dann liegt das Bild auch immer über allen Bildern im zweiten Viewport. Unabhängig von ihren Z-Werten.

  5. #5
    Also Scripte welche Bilder/Icons nutzen sind folgende.

    Pearl Life Bars

    Einfach nach
    Code:
    PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3], hc)
    suchen.
    Da drunter werden weitere Bilder angezeigt.

    Code:
    #===============================================================================
    # * Falcao Pearl ABS script shelf # 7
    #
    # Actor / Eenemies HP and MP bars display v 2.0 
    #
    # This script acts like an Add-On, the main system can run without this piece
    # 
    #-------------------------------------------------------------------------------
    
    # * Features
    # - Display HP, MP, experience and TP bars of the current player actor
    # - Display the Enemy HP bar when was hit
    # - Boss HP bar anabled
    # - Display enemy states and buff / debuff icons
    # - Non-graphical bars but hightly customizable
    # - 2.0 now support images instead of script drawing bars
    
    
    # * Usage and Installation
    # Just copy and paste below the Pearl ABS System
    # 
    # * Commands
    # PearlBars.hide          - Hide the actor bars
    # PearlBars.show          - Show the actor bars (by default)
    #
    # PearlBars.enemy_auto(id)- Show automatically the enemy HP bars without need
    # to hit, this is mostly used for bosses, change id for the event id
    # Tag any enemy with   Enemy Boss Bar = true   to eneble the boss bar mode
    #------------------------------------------------------------------------------
    module PearlBars
      #=============================================================================
      # * Actors bars configuration 
      #
      # Bars x and y position on the screen
      ScreenPos_X = 10
      ScreenPos_Y = 10
      #
      # Dimentions of the bars you cant exceed 300 width x 100 height
      #                   x    y     width   height
      HP_BarDimentions = [8,   16,    118,    14]
      MP_BarDimentions = [8,   36,    118,    14]
      EX_BarDimentions = [8,   57,    118,    10]
      
      # Tp info     x   y
      TP_Info =    [8,  64]
      #
      # color definition
      #           color 1    R    G    B   Opa     color 2   R   G    B    Opa
      HP_Color = [Color.new(205, 255, 205, 200),   Color.new(10, 220, 45,  200)]
      MP_Color = [Color.new(180, 225, 245, 200),   Color.new(20, 160, 225, 200)]
      EX_Color = [Color.new(180, 225, 245, 200),   Color.new(20, 160, 225, 200)]
      
      # Do you want to display graphics instead of script drawing bars?
      # if so, fill this actors bars graphics requirements
      
      ActorsHp    = ""       # Actor Hp graphic bar name (inside quotation marks)
      ActorsMp    = ""       # Actor Mp graphic bar name
      ActorsExp   = ""       # Actor Experience, if you dont want it leave it ""
      ActorsBack  = ""       # Background semi-transparent bar
      
      #=============================================================================
      # * Normal Enemies bars
      #
      # Normal enemies Bars x and y position on the screen
      NeScreenPos_X = 390
      NeScreenPos_Y = 10
      #
      # Dimentions of the bars you cant exceed 300 width x 100 height
      #                    x    y     width   height
      EHP_BarDimentions = [8,   16,    126,    10]
      #
      # color definition
      #            color 1    R    G    B   Opa     color 2   R   G    B    Opa
      EHP_Color = [Color.new(205, 255, 205, 200),   Color.new(10, 220, 45,  200)]
      
      # if you want to display grahics bar pictures fill this
      NormalEne = ""           # normal enemy hp bar
      NormalBack = ""          # Background semi-transparent bar
      
      #=============================================================================
      # * Enemy Boss HP Bar
      #
      # Boss enemies Bar x and y position on the screen
      BeScreenPos_X = 100
      BeScreenPos_Y = 286
      #
      # Dimentions of the bars you cant exceed 640 width x 100 height
      #                    x    y     width   height
      BHP_BarDimentions = [8,   22,    330,    12]
      #
      #            color 1    R    G    B   Opa     color 2   R   G    B    Opa
      BHP_Color = [Color.new(205, 255, 205, 200),   Color.new(10, 220, 45,  200)]
      
      # if you want to display grahics bar pictures fill this
      BossEne = ""        # Boss enemy Hp bar
      BossBack = ""       # Background semi-transparent bar
      #=============================================================================
      
      def self.show() $game_system.pearlbars = nil  end
      def self.hide() $game_system.pearlbars = true end
        
      def self.enemy_auto(event_id)
        $game_system.enemy_lifeobject = $game_map.events[event_id]
      end
    
    end
    
    ($imported ||= {})["Falcao Pearl ABS Life"] = true
    
    class Spriteset_Map
      
      alias falcaopearl_lifebars_create create_pictures
      def create_pictures
        create_hud_lifebars
        falcaopearl_lifebars_create
      end
      
      def create_hud_lifebars
        @enemy_lifeobject = $game_system.enemy_lifeobject
        @enemyhpsp = Sprite_LifeBars.new(@viewport2, @enemy_lifeobject) if 
        not @enemy_lifeobject.nil?
      end
      
      def create_actorlifebars
        return if !@actor_lifebar.nil?
        @actor_lifebar = Sprite_LifeBars.new(@viewport2, $game_player)
      end
      
      def dispose_actorlifebars
        return if @actor_lifebar.nil?
        @actor_lifebar.dispose
        @actor_lifebar = nil
      end
      
      alias falcaopearl_lifebars_update update
      def update
        update_lifebars_sprites
        falcaopearl_lifebars_update
      end
      
      def update_lifebars_sprites
        $game_system.pearlbars.nil? ? create_actorlifebars : dispose_actorlifebars
        @actor_lifebar.update unless @actor_lifebar.nil?
        
        # enemy
        if !@enemyhpsp.nil?
          unless @enemyhpsp.disposed?
            @enemyhpsp.update 
          else
            @enemyhpsp.dispose
            @enemyhpsp = nil
            $game_system.enemy_lifeobject = nil
            @enemy_lifeobject = nil
          end
        end
        
        if @enemy_lifeobject != $game_system.enemy_lifeobject
          @enemyhpsp.dispose if !@enemyhpsp.nil?
          @enemyhpsp = nil
          @enemyhpsp = Sprite_LifeBars.new(@viewport2,$game_system.enemy_lifeobject)
          @enemy_lifeobject = $game_system.enemy_lifeobject
        end
      end
    
      alias falcaopearl_lifebars_dispose dispose
      def dispose
        dispose_actorlifebars
        @enemyhpsp.dispose unless @enemyhpsp.nil?
        falcaopearl_lifebars_dispose
      end
    end
    
    # Life bars sprite
    class Sprite_LifeBars < Sprite
      include PearlBars
      def initialize(viewport, character)
        super(viewport)
        @character = character
        self.bitmap = Bitmap.new(boss? ? 640 : 300, 120)
        @old_hp = battler.hp
        @old_mp = battler.mp
        @erasetimer = 180
        @state_checker = []
        @buff_checker = []
        refresh_contents
        @view = viewport
        update
      end
      
      def boss?
        return true if battler.is_a?(Game_Enemy) && battler.boss_hud
        return false
      end
      
      def battler
        return @character.battler
      end
      
      def refresh_contents
        self.bitmap.clear
        self.bitmap.font.size = 19
        @erasetimer = 180
        self.opacity = 255
        if battler.is_a?(Game_Actor)
          @old_exp = battler.exp
          @old_tp = battler.tp
          self.x = ScreenPos_X
          self.y = ScreenPos_Y
          h  = HP_BarDimentions ; m = MP_BarDimentions ; e = EX_BarDimentions
          if PearlBars::ActorsHp != ""
            @pimg = Cache.picture(PearlBars::ActorsHp)  if @pimg.nil?
            @bimg = Cache.picture(PearlBars::ActorsBack) if @bimg.nil?
            @pimp = Cache.picture(PearlBars::ActorsMp)  if @pimp.nil?
            PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@bimg,
            @pimg, battler,true)
            PearlKernel.image_mp(self.bitmap, m[0] + 4, m[1], @bimg, @pimp, battler)
            if PearlBars::ActorsExp != ""
              @piexp = Cache.picture(PearlBars::ActorsExp)  if @piexp.nil?
              PearlKernel.image_exp(self.bitmap,e[0] + 4,e[1],@bimg,@piexp, battler)
            end
          else
            hc = HP_Color ; mc = MP_Color ; ec = EX_Color
            PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3], hc)
            PearlKernel.draw_mp(self.bitmap,battler, m[0], m[1], m[2], m[3], mc)
            PearlKernel.draw_exp(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
          end
          PearlKernel.draw_tp(self.bitmap, TP_Info[0], TP_Info[1], battler)
        else battler.is_a?(Game_Enemy)
          if boss?
            self.x = BeScreenPos_X
            self.y = BeScreenPos_Y
            h  = BHP_BarDimentions ; hc = BHP_Color
            if PearlBars::BossEne != ""
              @n_img = Cache.picture(PearlBars::BossEne) if @n_img.nil?
              @n_back = Cache.picture(PearlBars::BossBack) if @n_back.nil?
              PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
              @n_img, battler,true)
            else
              PearlKernel.draw_hp(self.bitmap,battler, h[0],h[1],h[2], h[3],hc,true)
            end
          else
            self.x = NeScreenPos_X
            self.y = NeScreenPos_Y
            h  = EHP_BarDimentions ; hc = EHP_Color
            if PearlBars::NormalEne != ""
              @n_img = Cache.picture(PearlBars::NormalEne) if @n_img.nil?
              @n_back = Cache.picture(PearlBars::NormalBack) if @n_back.nil?
              PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
              @n_img, battler,true)
            else
              PearlKernel.draw_hp(self.bitmap,battler,h[0],h[1],h[2], h[3], hc,true)
            end
          end
        end
      end
      
      def update
        super
        if @old_hp != battler.hp
          refresh_contents
          @old_hp = battler.hp
        end
        if @old_mp != battler.mp
          refresh_contents
          @character.actor.apply_usability if @character.is_a?(Game_Player)
          @old_mp = battler.mp
        end
        
        if battler.is_a?(Game_Actor)
          if @old_exp != battler.exp
            @old_exp = battler.exp
            refresh_contents
          end
          if @old_tp != battler.tp
            @old_tp = battler.tp
            @character.actor.apply_usability if @character.is_a?(Game_Player)
            refresh_contents
          end
          
        elsif battler.is_a?(Game_Enemy)
          if boss?
            dispose if battler.dead?
          else
            if @erasetimer > 0
              @erasetimer -= 1 
              self.opacity -= 10 if @erasetimer <= 25
              @states.opacity = self.opacity if !@states.nil?
              dispose if @erasetimer == 0
            end
          end
          update_enemy_status_icons
        end
      end
      
      # enemy status icons engine
      def update_enemy_status_icons
        display_status? ? create_states_icons : dispose_state_icons
        4.times.each {|i| refresh_states_icons if 
        @state_checker[i] != battler.state_icons[i]}
        2.times.each {|i| refresh_states_icons if 
        @buff_checker[i] != battler.buff_icons[i]}
      end
      
      def display_status?
        return true if !battler.state_icons.empty?
        return true if !battler.buff_icons.empty?
        return false
      end
      
      def create_states_icons
        return if disposed?
        return if !@states.nil?
        @states = ::Sprite.new(@view)
        @states.bitmap = Bitmap.new(144, 24)
        @n_back.nil? ? y_plus = BHP_BarDimentions[3] : y_plus = @n_back.height
        pos = [BeScreenPos_X, BeScreenPos_Y, y_plus] if  boss?
        pos = [NeScreenPos_X, NeScreenPos_Y, y_plus] if !boss?
        @states.x = pos[0] + 10
        @states.y = pos[1] + pos[2] + 24
        @states.zoom_x = 0.8
        @states.zoom_y = 0.8
        refresh_states_icons
      end
      
      def dispose_state_icons
        return if @states.nil?
        @states.bitmap.dispose
        @states.dispose
        @states = nil
      end
      
      def refresh_states_icons
        4.times.each {|i| @state_checker[i] = battler.state_icons[i]}
        2.times.each {|i| @buff_checker[i] = battler.buff_icons[i]}
        return if @states.nil?
        @states.bitmap.clear
        x = 0
        battler.state_icons.each {|icon| draw_icon(icon, x, 0) ; x += 24
        break if x == 96}
        count = 0
        battler.buff_icons.each {|icon| draw_icon(icon, x, 0) ; x += 24 ; count += 1
        break if count == 2}
      end
      
      def draw_icon(icon_index, x, y, enabled = true)
        bit = Cache.system("Iconset")
        rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
        @states.bitmap.blt(x, y, bit, rect, enabled ? 255 : 150)
      end
      
      def dispose
        self.bitmap.dispose
        dispose_state_icons
        super
      end
    end
    
    # Make the enemy bars to load when enemy is hited
    class Projectile < Game_Character
      alias falcao_lifebars_execute execute_damageto_enemy
      def execute_damageto_enemy(event)
        $game_system.enemy_lifeobject = event if @user.is_a?(Game_Player) &&
        !event.battler.object
        falcao_lifebars_execute(event)
      end
    end
    Pearl Item pop up
    Hier sollte auch irgendwo ein Bild aufgerufen werden. So genau habe ich mir den Code noch nicht angeschaut.

    Code:
    #===============================================================================
    # * Falcao Pearl ABS script shelf # 8
    #
    # Item and gold pop up v 1.0
    # This is just an add on for the Pearl ABS system, it run as standalone mode too
    #
    # Website: http://falcaorgss.wordpress.com/
    # Foro: www.makerpalace.com
    #===============================================================================
    #
    # * Installation
    # This work as plug and play, copy and paste the script above main
    #
    # * Usage
    # There is no special references, when you earn an item or gold, then pop appear
    # Edit the module below for convenience
    #-------------------------------------------------------------------------------
    
    module PearlItemPop
      
      # Position X of the pop up object
      Pos_X = 10
      
      # Position Y of the pop up object
      Pos_Y = 320
      
      # Icon displayed when earnig gold
      GoldIcon = 245
      
      # Se sound played when gaining items (set nil if you dont want to play sound)
      ItemSe = "Item3"
      
      # Se sound played when gainig gold (set nil if you dont want to play sound)
      GoldSe = "Shop"
      
    end
    
    class Game_Party < Game_Unit
      alias falcaopearl_itempop_gain gain_item
      def gain_item(item, amount, include_equip = false)
        if !item_container(item.class).nil? && SceneManager.scene_is?(Scene_Map)
          if amount > 0
            $game_system.item_object = [item, amount] 
            RPG::SE.new(PearlItemPop::ItemSe, 80).play rescue nil
          end
        end
        falcaopearl_itempop_gain(item, amount, include_equip = false)
      end
      
      alias falcaopearl_itempop_gold gain_gold
      def gain_gold(amount)
        if SceneManager.scene_is?(Scene_Map)
          $game_system.item_object = [nil, amount]
          RPG::SE.new(PearlItemPop::GoldSe, 80).play rescue nil
        end
        falcaopearl_itempop_gold(amount)
      end
    end
    
    class Game_System
      attr_accessor :item_object
    end
    
    class Spriteset_Map
      
      alias falcaopearl_itempop_create create_pictures
      def create_pictures
        create_itempop_sprites
        falcaopearl_itempop_create
      end
      
      def create_itempop_sprites
        @item_object = $game_system.item_object
        @item_sprite = Sprite_PopItem.new(@viewport2, @item_object) if
        not @item_object.nil?
      end
      
      alias falcaopearl_itempop_update update
      def update
        if !@item_sprite.nil?
          unless @item_sprite.disposed?
            @item_sprite.update 
          else
            @item_sprite.dispose
            @item_object = nil
            $game_system.item_object = nil
            @item_sprite = nil
          end
        end
        if @item_object != $game_system.item_object
          @item_sprite.dispose if !@item_sprite.nil?
          @item_sprite = nil
          @item_sprite = Sprite_PopItem.new(@viewport2, $game_system.item_object)
          @item_object = $game_system.item_object
        end
        falcaopearl_itempop_update
      end
      
      alias falcaopearl_itempop_dispose dispose
      def dispose
        @item_sprite.dispose unless @item_sprite.nil?
        falcaopearl_itempop_dispose
      end
    end
    
      
    class Sprite_PopItem < Sprite
      def initialize(viewport, item)
        super(viewport)
        @item = item[0]
        @num = item[1]
        set_bitmap
        self.x = PearlItemPop::Pos_X
        self.y = PearlItemPop::Pos_Y
        @erasetimer = 120
        update
      end
      
      def update
        super
        if @erasetimer > 0
          @erasetimer -= 1 
          self.opacity -= 10 if @erasetimer <= 25
          dispose if @erasetimer == 0
        end
      end
      
      def dispose
        self.bitmap.dispose
        super
      end
      
      def set_bitmap
        @item.nil? ? operand = Vocab::currency_unit : operand = @item.name
        string = operand + ' X' + @num.to_s
        self.bitmap = Bitmap.new(26 + string.length * 9, 28)
        self.bitmap.fill_rect(0, 0, self.bitmap.width, 28, Color.new(0, 0, 0, 100))
        self.bitmap.font.size = 20
        bitmap = Cache.system("Iconset")
        icon = @item.nil? ? PearlItemPop::GoldIcon : @item.icon_index
        rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
        self.bitmap.blt(4, 0, bitmap, rect)
        self.bitmap.draw_text(28, 0, 250, 32, string)
      end
    end
    Falcao Pearl ABS script
    Hier bin ich mir offen gestanden nicht sicher ob irgendwo Bilder oder Icons mit angezeigt werden.

    Code:
    #===============================================================================
    # * Falcao Pearl ABS script shelf # 6
    #
    # This script handles all scenes related in pearl ABS
    #===============================================================================
    
    module PearlScenes
      
      # Cursor icon displayed when selecting a target
      CursorIcon = 389
      
      # Status text displayed in the player selection menu
      DeathStatus =     'Death'      # Displayed when death
      BadStatus =       'Bad'        # Displayed when 0 to 25% of hp
      OverageStatus =   'Overage'    # Displayed when 25 to 50% of hp
      GoodStatus =      'Good'       # Displayed when 50 to 75% of hp
      ExellentStatus =  'Exellent'   # Displayed when 75 to 100% of hp
    end
    
    #===============================================================================
    # target slection engine
    
    class Window_EventSelect < Window_Selectable
      
      attr_reader   :participants
      def initialize(object)
        super(0, 0,  150, 192)
        self.z = 101
        @participants = []
        refresh(object)
        self.index = 0
        self.visible = false
        activate
      end
      
      def item
        return @data[self.index]
      end
     
      def refresh(object)
        self.contents.clear if self.contents != nil
        @data = []
        for character in object
          if character.is_a?(Game_Event)
            if character.on_battle_screen? and character.enemy_ready?
              @data.push(character)
              character.target_index = @data.size - 1
              @participants.push(character)
            end
          elsif character.on_battle_screen?
             next if character.battler.deadposing != nil and 
             $game_map.map_id != character.battler.deadposing
             @data.push(character)
             character.target_index = @data.size - 1
             @participants.push(character)
          end
        end
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 32, row_max * 26)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        item = @data[index]
        x, y = index % col_max * (120 + 32), index / col_max  * 24
        self.contents.font.size = 16
        self.contents.draw_text(x + 24, y, 212, 32, 'none', 0)
      end
      
      def item_max
        return @item_max.nil? ? 0 : @item_max 
      end 
    end
    
    # Scenen events selection target
    class Scene_BattlerSelection < Scene_MenuBase
      
      def start
        super
        @mouse_exist = defined?(Map_Buttons).is_a?(String)
        item = $game_player.targeting[1]
        if item.is_a?(RPG::Skill) || item.is_a?(RPG::Item)
          load_target(item)
        else
          invoke = item.tool_data("Tool Invoke Skill = ")
          if invoke != 0
            load_target($data_skills[invoke])
          else
            @event_window = Window_EventSelect.new($game_map.events.values)
          end
        end
        
        # info window
        @info_window = Sprite.new
        @event_window.item.nil? ? t = 'No targets!' : t = 'Select target'
        @info_window.bitmap = Bitmap.new(300, 60)
        @info_window.z = 900 
        x, y = Graphics.width / 2 - 300 / 2,  Graphics.height / 2 - 60 / 2
        @info_window.x = x; @info_window.y = y
        @info_window.bitmap.font.size = 30
        @info_window.bitmap.font.shadow = true
        @info_window.bitmap.draw_text(0, 0, @info_window.width, 32, t, 1)
        @info_time = 60
        create_cursor unless @event_window.item.nil?
        @background_sprite.color.set(16, 16, 16, 70)
      end
      
      def create_name_sprites
        return if !@name_text.nil?
        @name_text = Sprite.new
        @name_text.bitmap = Bitmap.new(200, 60)
        @name_text.bitmap.font.size = 20
        @name_text.bitmap.font.shadow = true
        @name_text.x = @event_window.item.screen_x - 100
        @name_text.y = @event_window.item.screen_y - 58
        text = @event_window.item.battler.name
        @name_text.bitmap.draw_text(0, 0, @name_text.width, 32, text, 1)
      end
      
      def dispose_name_sprites
        return if @name_text.nil?
        @name_text.bitmap.dispose
        @name_text.dispose
        @name_text = nil
      end
      
      # load item target
      def load_target(item)
        if item.scope.between?(1, 6) 
          @event_window = Window_EventSelect.new($game_map.events.values)
        else
          targets = []
          $game_player.followers.each {|i| targets << i if i.visible?}
          targets << $game_player
          @event_window = Window_EventSelect.new(targets)
        end
      end
      
      def refresh_info(type)
        @info_window.bitmap.clear
        t = 'Invalid Target!' if type == 2
        @info_window.bitmap.draw_text(-30, 0, @info_window.width, 32, t, 1)
      end
      
      def create_cursor
        if @mouse_exist
          @cursor = $mouse_cursor
          @cursor_zooming = 0 ; update_cursor_position
          return
        end
        @cursor = Sprite.new
        icon = PearlScenes::CursorIcon
        @cursor.bitmap = Bitmap.new(24, 24)
        bitmap = Cache.system("Iconset")
        rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
        @cursor.bitmap.blt(0, 0, bitmap, rect)
        @cursor_zooming = 0
        update_cursor_position
      end
      
      def update
        super
        if Input.trigger?(:B)
          $game_player.targeting = [false, item=nil, char=nil]
          SceneManager.return
          Sound.play_cancel
        end
      
        @info_time -= 1 if @info_time > 0
        if @info_time == 0
          @info_window.opacity -= 8 if @info_window.opacity > 0
          if @info_window.opacity == 0 and @event_window.item.nil?
            Sound.play_cancel
            $game_player.targeting = [false, item=nil, char=nil]
            SceneManager.return
          end
        end
        return if @event_window.item.nil?
        if @mouse_exist
          for target in @event_window.participants
            if Mouse.map_grid[0] == target.x and Mouse.map_grid[1] == target.y
              @event_window.select(target.target_index)
            end
          end
        end
        
        if @current_index != @event_window.index
          @current_index = @event_window.index
          dispose_name_sprites
          create_name_sprites
        end
        
        update_cursor_position
        update_target_selection
      end
      
      # target selection
      def update_target_selection
        if Input.trigger?(:C)
          if @mouse_exist
            for event in @event_window.participants
              if Mouse.map_grid[0] == event.x and Mouse.map_grid[1] == event.y
                @event_window.select(event.target_index)
                @selected = true
              end
            end
            
            if @selected.nil?
              refresh_info(2)
              @info_time = 60; @info_window.opacity = 255
              Sound.play_buzzer
              return
            end
          end
          Sound.play_ok
          $game_player.targeting[2] = @event_window.item
          SceneManager.return
        end
      end
      
      def update_cursor_position
        if @mouse_exist
          @cursor.x = Mouse.pos[0]
          @cursor.y = Mouse.pos[1]
        else
          @cursor.x = @event_window.item.screen_x
          @cursor.y = @event_window.item.screen_y - 16
        end
        @cursor_zooming += 1
        case @cursor_zooming
        when 1..10 ; @cursor.zoom_x -= 0.01 ; @cursor.zoom_y -= 0.01
        when 11..20; @cursor.zoom_x += 0.01 ; @cursor.zoom_y += 0.01
        when 21..30; @cursor.zoom_x = 1.0   ; @cursor.zoom_y = 1.0
          @cursor_zooming = 0 
        end
      end
      
      def terminate
        super
        @event_window.dispose
        @info_window.dispose
        @info_window.bitmap.dispose
        dispose_name_sprites
        if @mouse_exist and !@cursor.nil?
          @cursor.zoom_x = 1.0   ; @cursor.zoom_y = 1.0 ; @selected = nil
        else
          @cursor.dispose unless @cursor.nil?
          @cursor.bitmap.dispose unless @cursor.nil?
        end
      end
    end
    
    #===============================================================================
    #===============================================================================
    # * Player slection engine
    
    # Primary use selection
    class Window_Primaryuse < Window_Command
      attr_accessor :actor
      def initialize(x, y, actor)
        @actor = actor
        super(x, y)
        deactivate ; unselect
      end
      
      def window_width()  return 544  end
      def window_height() return 80   end  
    
      def make_command_list
        add_command('Weapon ' + Key::Weapon[1],  'Weapon ' + Key::Weapon[1])
        add_command('Armor ' + Key::Armor[1],    'Armor ' + Key::Armor[1])
        add_command('Item '  + Key::Item[1],    'Item '  + Key::Item[1])
        add_command('Item '  + Key::Item2[1],   'Item '  + Key::Item2[1])
        add_command('Skill ' + Key::Skill[1],  'Skill ' + Key::Skill[1])
        add_command('Skill ' + Key::Skill2[1], 'Skill ' + Key::Skill2[1])
        add_command('Skill ' + Key::Skill3[1], 'Skill ' + Key::Skill3[1])
        add_command('Skill ' + Key::Skill4[1], 'Skill ' + Key::Skill4[1])
      end
      
      def refresh_actor(actor)
        @actor = actor
        refresh
      end
      
      def col_max
        return 4
      end
      
      def draw_item(index)
        contents.font.size = 20
        if @actor.primary_use == index + 1
          contents.font.color = Color.new(255, 120, 0, 255)
          draw_text(item_rect_for_text(index), command_name(index), alignment)
          change_color(normal_color, command_enabled?(index))
          return
        end
        super
      end
    end
    
    class Window_CharacterSet < Window_Selectable
      include PearlScenes
      def initialize(x=0, y=0)
        super(x, y, 544, 156)
        refresh
        self.index = 0
        activate
      end
      
      def item
        return @data[self.index]
      end
     
      def refresh
        self.contents.clear if self.contents != nil
        @data = []
        $game_party.battle_members.each {|actor| @data.push(actor)}
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 26, row_max * 128)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        item = @data[index]
        x, y = index % col_max * (138), index / col_max  * 130
        self.contents.font.size = 20
        contents.fill_rect(x, y, item_width, item_height, Color.new(0, 0, 0, 60))
        draw_character(item.character_name, item.character_index, x + 22, y + 56)
        hp_color = [Color.new(205, 255, 205, 200),   Color.new(10, 220, 45,  200)]
        mp_color = [Color.new(180, 225, 245, 200),   Color.new(20, 160, 225, 200)]
        PearlKernel.draw_hp(self.contents, item, x + 4, y + 66, 96, 12, hp_color)
        PearlKernel.draw_mp(self.contents, item, x + 4, y + 86, 96, 12, mp_color)
        contents.draw_text(x - 2, y, item_width, 32, item.name, 2)
        contents.draw_text(x - 2, y + 20, item_width, 32, item.class.name, 2)
        case (item.hp.to_f / item.mhp.to_f * 100.0)
        when 0       ; text = DeathStatus
        when 1..25   ; text = BadStatus
        when 26..50  ; text = OverageStatus
        when 51..75  ; text = GoodStatus
        when 76..100 ; text = ExellentStatus
        end
        if item.state?(1)
          draw_icon($data_states[1].icon_index, x + 50, y + 100)
        end
        contents.draw_text(x + 4, y + 100, item_width, 32, text) rescue nil
      end
      
      def item_max
        return @item_max.nil? ? 0 : @item_max 
      end 
      
      def col_max
        return 4
      end
      
      def line_height
        return 130
      end
    end
    
    class Scene_CharacterSet < Scene_MenuBase
      def start
        super
        x, y = Graphics.width / 2 - 544 / 2,  Graphics.height / 2 - 60 / 2
        @top_text = Window_Base.new(x, y - 170, 544, 60)
        @top_text.draw_text(0, 0, @top_text.width, 32, 'Select your Player', 1)
        @window_charset = Window_CharacterSet.new(@top_text.x, @top_text.y + 60)
        @primary_info = Window_Base.new(@top_text.x,@window_charset.y + 156, 544,60)
        @timer = 0
        refresh_primary_info('Press A to set up')
        @primary_use = Window_Primaryuse.new(@top_text.x,@primary_info.y + 60,actor)
        @primary_use.set_handler('Weapon ' + Key::Weapon[1],  method(:apply_item))
        @primary_use.set_handler('Armor '  + Key::Armor[1],   method(:apply_item))
        @primary_use.set_handler('Item '   + Key::Item[1],    method(:apply_item))
        @primary_use.set_handler('Item '   + Key::Item2[1],   method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill[1],   method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill2[1],  method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill3[1],  method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill4[1],  method(:apply_item))
        DisplayTools.create(@primary_use.x + 94, @primary_use.y + 85)
        if $game_player.in_combat_mode?
          $game_temp.pop_w(180, 'Pearl ABS', 
          'You cannot switch player while in combat!')
        end
        @index_char = @window_charset.index
        @background_sprite.color.set(16, 16, 16, 70)
      end
      
      def apply_item
        case @primary_use.current_symbol
        when 'Weapon ' + Key::Weapon[1] then actor.primary_use = 1
        when 'Armor '  + Key::Armor[1]  then actor.primary_use = 2
        when 'Item '   + Key::Item[1]   then actor.primary_use = 3
        when 'Item '   + Key::Item2[1]  then actor.primary_use = 4
        when 'Skill '  + Key::Skill[1]  then actor.primary_use = 5
        when 'Skill '  + Key::Skill2[1] then actor.primary_use = 6
        when 'Skill '  + Key::Skill3[1] then actor.primary_use = 7
        when 'Skill '  + Key::Skill4[1] then actor.primary_use = 8
        end
        refresh_primary_info(actor.name+ " now use #{@primary_use.current_symbol}!")
        @primary_use.refresh_actor(actor)
        cancel_setup; @timer = 120
      end
      
      def actor
        @window_charset.item
      end
      
      def refresh_primary_info(text)
        @primary_info.contents.clear
        @primary_info.contents.font.size = 20
        @primary_info.draw_text(0, 0, 544, 32, 'As a follower primarily use tool?')
        @primary_info.draw_text(-26, 0, 544, 32, text, 2)
      end
      
      def update
        super
        if $game_player.in_combat_mode?
          SceneManager.return if $game_temp.pop_windowdata[0] == 4
          return
        end
        if @timer > 0
          @timer -= 1
          refresh_primary_info('Press A to set up') if @timer == 0
        end
        DisplayTools.update
        if @index_char != @window_charset.index
          @index_char = @window_charset.index
          DisplayTools.sprite.actor = actor
          DisplayTools.sprite.refresh_icons
          DisplayTools.sprite.refresh_texts
          @primary_use.refresh_actor(actor)
        end
        update_cancel if Input.trigger?(:B)
        update_player_selection if Input.trigger?(:C)
        update_setup if Input.trigger?(:X)
      end
      
      def update_setup
        return if @primary_use.active
        Sound.play_ok
        @window_charset.deactivate
        @primary_use.activate
        @primary_use.select(0)
      end
      
      def cancel_setup
        @window_charset.activate
        @primary_use.deactivate
        @primary_use.unselect
      end
      
      def update_cancel
        Sound.play_cancel
        if @window_charset.active
          if $game_player.actor.dead?
            Sound.play_buzzer
            return
          end
          SceneManager.return
        else
          cancel_setup
        end
      end
      
      def update_player_selection
        if @window_charset.active
          if @window_charset.item.dead?
            Sound.play_buzzer
            return
          end
          Sound.play_ok
          $game_party.swap_order(0, @window_charset.index)
          SceneManager.return
        end
      end
      
      def terminate
        super
        @window_charset.dispose
        @top_text.dispose
        @primary_use.dispose
        @primary_info.dispose
        DisplayTools.dispose
      end
    end
    
    #===============================================================================
    #===============================================================================
    # * Quick tool se3lection engine
    
    class Window_Base < Window
      def draw_text_ex2(x, y, text)
        text = convert_escape_characters(text)
        pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
        process_character(text.slice!(0, 1), text, pos) until text.empty?
      end
    end
    
    # window horizon
    class Window_ItemSelect < Window_HorzCommand
      def initialize(x=0, y=0)
        super(x, y)
      end
      
      def window_width()  return 460  end
      def window_height() return 50   end  
    
      def make_command_list
        add_command("Weapons",  :weapon)
        add_command("Left Hand",   :armor)
        add_command("Items",    :item)
        add_command("Skills",   :skill)
      end
      
      def draw_item(index)
        contents.font.size = 20
        super
      end
    end
    
    # window slot ask
    class Window_SlotConfirm < Window_Command
      def initialize(x, y, kind)
        @kind = kind
        super(x, y)
        activate
      end
      
      def window_width()  return 130  end
      def window_height() return @kind == :item ? 80 : 120   end  
    
      def make_command_list
        case @kind
        when :item
          add_command('Slot ' + Key::Item[1],    :slot1)
          add_command('Slot ' + Key::Item2[1],   :slot2)
        when :skill
          add_command('Slot ' + Key::Skill[1],   :slot1)
          add_command('Slot ' + Key::Skill2[1],  :slot2)
          add_command('Slot ' + Key::Skill3[1],  :slot3)
          add_command('Slot ' + Key::Skill4[1],  :slot4)
        end
      end
      
      def draw_item(index)
        contents.font.size = 20
        super
      end
    end
    
    # Actor quick tool
    class Window_ActorQuickTool < Window_Selectable
      def initialize(x=0, y=124, w=460, h=148)
        super(x, y,  w, h)
        unselect
      end
      
      def item()        return @data[self.index] end
      def col_max()     return 2                 end
      def spacing()     return 6                 end  
      
      def refresh(actor, kind)
        self.contents.clear if self.contents != nil
        @data = []
        if kind == :weapon
          operand = $game_party.weapons
          operand.push(actor.equips[0]) if actor.equips[0] != nil
        end
        if kind == :armor
          operand = $game_party.armors 
          operand.push(actor.equips[1]) if actor.equips[1] != nil
        end
        operand = $game_party.items if kind == :item
        operand = actor.skills if kind == :skill
        for item in operand
          if kind == :weapon || kind == :armor
            next unless actor.equippable?(item)
            next if item.etype_id > 1
          end
          @data.push(item) unless @data.include?(item)
        end
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 32, row_max * 24)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        item = @data[index]
        x, y = index % col_max * (190 + 32), index / col_max  * 24
        self.contents.font.size = 20
        draw_icon(item.icon_index, x, y)
        contents.draw_text(x + 24, y, 212, 32, item.name)
      end
      
      def item_max
        return @item_max.nil? ? 0 : @item_max 
      end 
    end
    
    module DisplayTools
      
      def self.create(x, y)
        @viewport2 = Viewport.new ; @viewport2.z = 999
        @pearl_tool_sprite = Sprite_PearlTool.new(@viewport2, [x, y])
      end
      
      def self.sprite
        return @pearl_tool_sprite
      end
      
      def self.update
        @pearl_tool_sprite.update
      end
      def self.dispose
        @pearl_tool_sprite.dispose ; @viewport2.dispose
        @viewport2 = nil ; @pearl_tool_sprite = nil
      end
    end
    
    
    # Scene quick tool
    class Scene_QuickTool < Scene_MenuBase
      def start
        super
        x, y = Graphics.width / 2 - 460 / 2,  Graphics.height / 2 - 85 / 2
        @top_text = Window_Base.new(x, y - 156, 460, 85)
        @statust = ['Ready', 0]
        refresh_top_info
        @type_select = Window_ItemSelect.new(@top_text.x, @top_text.y + 85)
        @type_select.set_handler(:weapon,     method(:refresh_tools))
        @type_select.set_handler(:armor,      method(:refresh_tools))
        @type_select.set_handler(:item,       method(:refresh_tools))
        @type_select.set_handler(:skill,      method(:refresh_tools))
        @type_select.set_handler(:cancel,     method(:refresh_cancel))
        @type_index = @type_select.index
        @items_w = Window_ActorQuickTool.new(@type_select.x, @type_select.y + 50)
        @items_w.refresh($game_player.actor, @type_select.current_symbol)
        @description = Window_Base.new(@items_w.x, @items_w.y + 148, 460, 75)
        DisplayTools.create(@description.x + 75, @description.y + 80)
        @background_sprite.color.set(16, 16, 16, 70)
      end
      
      # create slot confirm
      def create_slot_confirm
        @slot_confirm = Window_SlotConfirm.new(@items_w.x + 144, @items_w.y + 36, 
        @type_select.current_symbol)
        if @type_select.current_symbol == :item
          @slot_confirm.set_handler(:slot1,     method(:open_slots))
          @slot_confirm.set_handler(:slot2,     method(:open_slots))
        else
          @slot_confirm.set_handler(:slot1,     method(:open_slots))
          @slot_confirm.set_handler(:slot2,     method(:open_slots))
          @slot_confirm.set_handler(:slot3,     method(:open_slots))
          @slot_confirm.set_handler(:slot4,     method(:open_slots))
        end
      end
      
      # dispose slot confirm
      def dispose_slot_confirm
        return if @slot_confirm.nil?
        @slot_confirm.dispose
        @slot_confirm = nil
      end
      
      # top info
      def refresh_top_info
        @top_text.contents.clear
        @top_text.contents.font.size = 20
        @top_text.contents.fill_rect(0, 0, 58, 74, Color.new(0, 0, 0, 60))
        @top_text.draw_character(actor.character_name,actor.character_index, 26, 60)
        @top_text.draw_text(62, 0, @top_text.width, 32, actor.name + ' Equippment')
        @top_text.draw_text(62, 22, @top_text.width, 32, actor.class.name)
        @top_text.draw_text(-22, 30, @top_text.width, 32, @statust[0], 2)
        @top_text.draw_text(-22, 0,@top_text.width,32, 'M = Switch Player',2) unless
        PearlKernel::SinglePlayer
      end
      
      def refresh_tools
        enable_items
      end
      
      def refresh_cancel
        SceneManager.return
      end
      
      def enable_items
        @items_w.activate
        @items_w.select(0)
      end
      
      def refresh_description
        @description.contents.clear
        @desc_index = @items_w.index
        return if @items_w.item.nil? || @items_w.index < 0
        @description.contents.font.size = 20
        @description.draw_text_ex2(0, -4, @items_w.item.description)
      end
    
      def update
        super
        perform_item_ok if Input.trigger?(:C)
        perform_canceling if Input.trigger?(:B)
        if PearlKey.trigger?(Key::PlayerSelect) and !PearlKernel::SinglePlayer
          Sound.play_ok
          SceneManager.call(Scene_CharacterSet)
        end
        DisplayTools.update
        perform_refresh
      end
      
      def perform_item_ok
        return if @items_w.item.nil?
        case @type_select.current_symbol
        when :weapon
          actor.change_equip_by_id(0, @items_w.item.id)
          equip_play
        when :armor
          actor.change_equip_by_id(1, @items_w.item.id)
          equip_play
        when :item
          activate_slots
        when :skill
          activate_slots
        end
        DisplayTools.sprite.refresh_texts
      end
      
      def activate_slots
        @items_w.deactivate
        create_slot_confirm
        Sound.play_ok
      end
      
      def deactivate_slots
        @items_w.activate
        dispose_slot_confirm
      end
      
      def actor
        return $game_player.actor
      end
      
      def equip_play
        Sound.play_equip
        @statust[1] = 80
      end
      
      # open slots
      def open_slots
        if @type_select.current_symbol == :item
          case @slot_confirm.current_symbol
          when :slot1 then actor.assigned_item  = @items_w.item
          when :slot2 then actor.assigned_item2 = @items_w.item
          end
        else
          case @slot_confirm.current_symbol
          when :slot1 then actor.assigned_skill  = @items_w.item
          when :slot2 then actor.assigned_skill2 = @items_w.item
          when :slot3 then actor.assigned_skill3 = @items_w.item
          when :slot4 then actor.assigned_skill4 = @items_w.item
          end
        end
        equip_play ; deactivate_slots
        DisplayTools.sprite.refresh_texts
      end
      
      def perform_canceling
        Sound.play_cancel
        if @items_w.active
          @items_w.deactivate
          @items_w.unselect
          @type_select.activate
        else
          deactivate_slots
        end
      end
      
      def perform_refresh
        if @type_index != @type_select.index
          @type_index = @type_select.index
          @items_w.refresh($game_player.actor, @type_select.current_symbol)
          refresh_description
        end
        if @desc_index != @items_w.index
          @desc_index = @items_w.index
          refresh_description
        end
        if @statust[1] > 0 
          @statust[1] -= 1 
          if @statust[1] == 78
            @statust[0] = @items_w.item.name + ' Equipped'
            refresh_top_info
          elsif @statust[1] == 0
            @statust = ['Ready', 0]
            refresh_top_info
          end
        end
      end
      
      def terminate
        super
        @top_text.dispose
        @type_select.dispose
        @items_w.dispose
        @description.dispose
        dispose_slot_confirm
        DisplayTools.dispose
      end
    end
    Falcao Pearl ABS script
    Bilder/Icons werden hier an mehreren Stellen eingefügt.
    Wo überall weiß ich nicht


    Code:
    #===============================================================================
    # * Falcao Pearl ABS script shelf # 5
    #
    # This script handles all sprites of Pearl ABS engine
    #===============================================================================
    
    # Anime action enguine
    class Anime_Obj < Game_Character
      
      attr_accessor :draw_it, :destroy_it, :item, :user, :original_speed
      attr_reader   :custom_graphic
      def initialize(user, item)
        super()
        PearlKernel.load_item(item)
        @draw_it = false
        @destroy_it = false
        @item = item
        @user = user
        @custom_graphic = false
        graphic = PearlKernel.user_graphic
        if graphic.split(" ").include?('custom') 
          graphic = graphic.sub("custom ","")
          @custom_graphic = true
          user.transparent = true
          user.using_custom_g = true
        end
        @character_name = graphic
        moveto(@user.x, @user.y)
        set_direction(@user.direction)
        @original_speed = PearlKernel.user_animespeed
      end
    end
    
    # Sprite character added battlers as enemies and the anime sprites fit
    class Sprite_Character < Sprite_Base
      alias falcaopearl_update_position update_position
      def update_position
        if !@character.battler.nil? and @character.battler.is_a?(
          Game_Enemy) and @character.battler.breath_enable
          apply_breath_effect(@character)
        end
        self.zoom_x = @character.zoomfx_x
        self.zoom_y = @character.zoomfx_y
        self.angle = @character.angle_fx
        falcaopearl_update_position
        update_anime_object_pos
      end
      
      # anime object position and action
      def update_anime_object_pos
        if @character.is_a?(Anime_Obj)
          if @character.custom_graphic
            add = 0
          else
            @ch == 128 ? add = 48 : add = (@ch / 2) / 2
          end
          self.x = @character.user.screen_x
          self.y = @character.user.screen_y + add
          self.z = @character.user.screen_z + 1
          @character.direction = @character.user.direction
          if @character.user.anime_speed == 0
            if @character.custom_graphic
              @character.user.transparent = false 
              @character.user.using_custom_g = false
            end
            @character.destroy_it = true 
          end
          if @character.user.making_spiral
            @character.direction == 8 ? @character.pattern=1 : @character.pattern=2
            return
          end
          a= @character.user.anime_speed.to_f/@character.original_speed.to_f * 100.0
          case a
          when 80..100 ; @character.pattern = 0 
          when 60..80  ; @character.pattern = 1
          when 25..60  ; @character.pattern = 2
          end
        end
      end
      
      # Enemy battler graphics engine
      alias falcaopearl_battler_bitmap set_character_bitmap
      def set_character_bitmap
        if battler_graphic?
          self.bitmap= Cache.battler(@character_name,@character.battler.battler_hue)
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height
          return
        end
        falcaopearl_battler_bitmap
      end
      
      def battler_graphic?
        if !@character.battler.nil? and @character.battler.is_a?(
          Game_Enemy) and @character.battler.battler_graphic
          return false if @character.page.nil?
          @character_name = @character.battler.battler_name
          return true 
        end
        return false
      end
      
      alias falcaopearl_battler_graphic update_src_rect
      def update_src_rect
        return if battler_graphic?
        falcaopearl_battler_graphic
      end
      
      # breath effect
      def apply_breath_effect(char)
        return if @character.is_a?(Game_Event) and @character.erased
        char.zoomfx_x -= 0.0023 if !char.zfx_bol
        char.zoomfx_y -= 0.0023 if !char.zfx_bol
        char.zoomfx_x += 0.0023 if  char.zfx_bol
        char.zoomfx_y += 0.0023 if  char.zfx_bol
        char.zfx_bol = true if char.zoomfx_x <= 0.93
        char.zfx_bol = false if char.zoomfx_x >= 1.0
      end
    end
    
    #===============================================================================
    # Drop sprites
    class Sprite_EnemyDrop < Sprite
      attr_reader   :event
      def initialize(viewport, event, item)
        super(viewport)
        @event = event
        @item = item
        self.z = $game_player.screen_z - 1
        @object_zooming = 0
        set_bitmap
        update
      end
      
      def update
        super
        self.bush_depth = @event.bush_depth
        @object_zooming += 1
        case @object_zooming
        when 1..8  ; self.zoom_x -= 0.01 ;  self.zoom_y -= 0.01
        when 9..16 ; self.zoom_x += 0.01 ;  self.zoom_y += 0.01
        when 17..24 ; self.zoom_x = 1.0   ;  self.zoom_y = 1.0; @object_zooming = 0 
        end
        self.x = @event.screen_x - 12
        self.y = @event.screen_y - 24
        if @event.x == $game_player.x and @event.y == $game_player.y and
          !$game_player.moving?
          $game_party.gain_item(@item, 1)
          dispose
          @event.dropped_items.delete(@item)
          $game_map.events_withtags.delete(@event)
        end
      end
      
      def dispose
        self.bitmap.dispose
        super
      end
      
      def set_bitmap
        self.bitmap = Bitmap.new(26, 38)
        bitmap = Cache.system("Iconset")
        icon = @item.icon_index
        rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
        self.bitmap.blt(0, 0, bitmap, rect)
      end
    end
    
    #===============================================================================
    # Dead icon sprites for player and followers
    
    class Sprite_DeadIcon < Sprite
      attr_reader   :character
      def initialize(viewport, character)
        super(viewport)
        @character = character
        self.bitmap = Bitmap.new(24, 24)
        bitmap = Cache.system("Iconset")
        icon = 1
        rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
        self.bitmap.blt(0, 0, bitmap, rect)
        @knok = @character.actor.actor.tool_data("Knockdown Graphic = ",false)!= nil
        update
      end
      
      def update
        super
        self.x = @character.screen_x - 10
        self.y = @character.screen_y - 54
        self.z = @character.screen_z + 1
        self.opacity = @character.opacity
        self.visible = !@character.transparent
        if @knok
          @character.knockdown_data[0] = 10 if !@character.battler.deadposing.nil?
        else
          @character.playdead
          @character.direction = 8
          self.x = @character.screen_x - 26
        end
      end
      
      def dispose
        self.bitmap.dispose
        @character.angle_fx = 0.0 unless @knok
        super
      end
    end
    
    #===============================================================================
    # State and buff icons sprites
    class StateBuffIcons < Sprite
      def initialize(viewport, mode)
        super(viewport)
        @mode = mode
        self.bitmap = Bitmap.new(36, 134)
        @picture = Cache.system("Iconset")
        if @mode == "States"
          self.x = 544 - 36
          self.y = 90
        else
          self.x = 544 - 36
          self.y = 230
        end
        @actor = $game_player.actor
        @old_status = []
        refresh_icons
        update
      end
      
      def icons
        return @actor.state_icons if @mode == 'States'
        return @actor.buff_icons  if @mode == 'Buffs'
      end
      
      def update
        5.times.each {|i| 
        if @old_status[i] != icons[i]
          refresh_icons
          $game_player.actor.apply_usability
        end}
        if @actor != $game_player.actor
          @actor = $game_player.actor
          refresh_icons
        end
      end
      
      def dispose
        self.bitmap.dispose
        super
      end
      
      def refresh_icons
        self.bitmap.clear
        self.bitmap.font.size = 15
        self.bitmap.draw_text(-2, -8, self.bitmap.width + 6, 32, @mode, 1) 
        y = 12; count = 0
        for i in icons
          draw_icon(6, y, i)
          y += 24; count += 1
          break if count == 5
        end
        5.times.each {|i| @old_status[i] = icons[i]}
      end
      
      def draw_icon(x, y, index)
        icon = index
        rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
        self.bitmap.blt(x, y, @picture, rect)
      end
    end
    
    #===============================================================================
    #  * Damage pop engine
    
    class DamagePop_Obj < Game_Character
      attr_accessor :draw_it, :destroy_it, :target, :dmgcustom, :timingg, :plus_time
      attr_accessor :plus_time
      def initialize(target, custom=nil)
        super()
        @draw_it = false
        @destroy_it = false
        @target = target
        @timingg = 70
        @plus_time = 0.0
        @dmgcustom = custom
        moveto(@target.x, @target.y)
      end
    end
    
    class Sprite_DamagePop < Sprite
      attr_reader   :target
      def initialize(viewport, target)
        super(viewport)
        @target = target
        self.bitmap = Bitmap.new(200, 50)
        self.bitmap.font.size = 20
        case rand(4)
        when 0 then @resto_plus = 0.5
        when 1 then @resto_plus = 0.6
        when 2 then @resto_plus = 0.7
        when 3 then @resto_plus = 0.8
        end
        create_text_for_display
        set_text
        update
      end
      
      def create_text_for_display
        battler = @target.target.battler
        value   = battler.result.hp_damage
        value2  = battler.result.mp_damage
        value3  = battler.result.tp_damage
        
        # hp damage texts
        if value > 0
          battler.result.critical ? @text = 'Critical ' + value.to_s :
          @text = value.to_s
        elsif value < 0
          self.bitmap.font.color = Color.new(10,220,45)
          @text = value.to_s.sub("-","")
        elsif    battler.result.missed
          @text = 'Miss'
        elsif battler.result.evaded
          @text = 'Evaded'
          
        elsif battler.result.success # tanget take no damage but result succes
          @text = value.to_s
        end
        
        # mp damage text 
        if value2 < 0
          self.bitmap.font.color = Color.new(20,160,225)
          @text = value2.to_s.sub("-","")
        elsif value2 > 0
          @text = 'Mp lose' + value2.to_s
        end
        
        # TP damage text 
        if value3 < 0
          self.bitmap.font.color = Color.new(20,160,225)
          @text = value3.to_s.sub("-","")
        elsif value3 > 0
          @text = 'Tp lose' + value3.to_s
        end
        
        # states and buff display
        if battler.result.status_affected?
          display_changed_states(battler)
          display_changed_buffs(battler)
        end
        
        # Custom text (it has hightest priority
        if !@target.dmgcustom.nil?
          if @target.dmgcustom == 1
            @text = 'Block ' + value.to_s
          elsif @target.dmgcustom == 2
            @text = 'Guard!'
          elsif @target.dmgcustom.is_a?(String)   
            @text = @target.dmgcustom
          elsif @target.dmgcustom.is_a?(Array)
            self.bitmap.font.color = @target.dmgcustom[1]
            @text = @target.dmgcustom[0]
          end
        end
        battler.result.clear
      end
      
      # text set and position
      def set_text
        self.x = @target.screen_x - 98
        self.y = @target.screen_y - 54
        self.z = 3 * 100
        self.opacity = @target.opacity
        #self.bitmap.font.bold = true
        self.bitmap.font.shadow = true
        item = @target.target.battler.used_item
        if item != nil and !item.scope.between?(1, 6) and 
          item.tool_data("User Graphic = ", false).nil?
          @text = item.name if @text.nil?
        end
        @target.target.battler.used_item = nil
        self.bitmap.draw_text(0, 0, 200, 32, @text, 1)
      end
      
      # Buffs display
      def display_changed_buffs(target)
        display_buffs(target, target.result.added_buffs, Vocab::BuffAdd)
        display_buffs(target, target.result.added_debuffs, Vocab::DebuffAdd)
        display_buffs(target, target.result.removed_buffs, Vocab::BuffRemove)
      end
      
      def display_buffs(target, buffs, fmt)
        buffs.each do |param_id|
          @text = sprintf(fmt,'', Vocab::param(param_id)).sub("'s","")
        end
      end
      
      # States display
      def display_changed_states(target)
        display_added_states(target)
        display_removed_states(target)
      end
      
      # Display added states
      def display_added_states(target)
        target.result.added_state_objects.each do |state|
          state_msg = target.actor? ? state.message1 : state.message2
          #target.perform_collapse_effect if state.id == target.death_state_id
          next if state_msg.empty?
          @text = state_msg
        end
      end
      
      # Display removed states
      def display_removed_states(target)
        target.result.removed_state_objects.each do |state|
          next if state.message4.empty?
          @text = state.message4
        end
      end
      
      def update
        @target.timingg -= 1 if @target.timingg > 0
        @target.plus_time += @resto_plus
        self.opacity -= 5 if @target.timingg <= 25
        @target.destroy_it = true if @target.timingg == 0
        self.x = @target.target.screen_x - 98
        self.y = @target.target.screen_y - 54 - @target.plus_time
      end
      
      def dispose
        self.bitmap.dispose
        super
      end
    end
    
    #===============================================================================
    # Sprite set map
    
    class Spriteset_Map
      
      alias falcaopearl_create_characters create_characters
      def create_characters
        create_pearl_abs_sprites
        falcaopearl_create_characters
      end
      
      def create_pearl_abs_sprites
        if $game_player.send_dispose_signal
          dispose_pearlabs_sprites
          $game_player.send_dispose_signal = false
        end
        @projectile_sprites = []
        $game_player.projectiles.each do |projectile|
          @projectile_sprites.push(Sprite_Character.new(@viewport1, projectile))
        end
        @damagepop_sprites = []
        $game_player.damage_pop.each do |target|
          @damagepop_sprites.push(Sprite_DamagePop.new(@viewport1, target))
        end
        @animeabs_sprites = []
        $game_player.anime_action.each do |anime|
          @animeabs_sprites.push(Sprite_Character.new(@viewport1, anime))
        end
        @enemy_drop_sprites = []
        $game_player.enemy_drops.each do |enemy|
          for i in enemy.dropped_items
            @enemy_drop_sprites.push(Sprite_EnemyDrop.new(@viewport1, enemy, i))
          end
        end
        @dead_iconsprites = []
        @dead_characters = []
      end
      
      # Drop sprites update
      def update_drop_sprites
        @enemy_drop_sprites.each {|sprite| sprite.update if !sprite.disposed?
        if sprite.disposed?
          @enemy_drop_sprites.delete(sprite)
          $game_player.enemy_drops.delete(sprite.event)
        end
        }
        $game_player.enemy_drops.each do |enemy|
          unless enemy.draw_drop
            for i in enemy.dropped_items
              @enemy_drop_sprites.push(Sprite_EnemyDrop.new(@viewport1, enemy, i))
            end
            enemy.draw_drop = true
          end
        end
      end
      
      alias falcaopearl_upsp_update update
      def update
        update_pearl_abs_main_sprites
        falcaopearl_upsp_update
      end
      
      # pearl abs main sprites update
      def update_pearl_abs_main_sprites
        if $game_player.pearl_menu_call[1] == 1
          dispose_tool_sprite
          dispose_state_icons
          dispose_buff_icons
          dispose_actorlifebars if $imported["Falcao Pearl ABS Life"]
          $game_player.pearl_menu_call[1] = 0
          case $game_player.pearl_menu_call[0]
          when :tools     then SceneManager.call(Scene_QuickTool) 
          when :character then SceneManager.call(Scene_CharacterSet)
          when :battler   then SceneManager.call(Scene_BattlerSelection)
          end
          return
        end
        update_projectile_sprites
        update_damagepop_sprites
        update_absanime_sprites
        update_dead_characters
        update_drop_sprites
        $game_system.skillbar_enable.nil? ? create_tool_sprite : dispose_tool_sprite
        @pearl_tool_sprite.update unless @pearl_tool_sprite.nil?
        $game_player.actor.state_icons.empty? ? dispose_state_icons :
        create_state_icons
        $game_player.actor.buff_icons.empty? ? dispose_buff_icons :
        create_buff_icons
        @states_sprites.update unless @states_sprites.nil?
        @buff_sprites.update unless @buff_sprites.nil?
      end
      
      # create tool sprite
      def create_tool_sprite
        return if !@pearl_tool_sprite.nil?
        @pearl_tool_sprite = Sprite_PearlTool.new(@viewport2)
      end
      
      # dispose tool sprite
      def dispose_tool_sprite
        return if @pearl_tool_sprite.nil?
        @pearl_tool_sprite.dispose
        @pearl_tool_sprite = nil
      end
      
      # Create State icons
      def create_state_icons
        return if !@states_sprites.nil?
        @states_sprites = StateBuffIcons.new(@viewport2, 'States')
      end
      
      # dispose state icons
      def dispose_state_icons
        return if @states_sprites.nil?
        @states_sprites.dispose
        @states_sprites = nil
      end
      
      # Create Buff icons
      def create_buff_icons
        return if !@buff_sprites.nil?
        @buff_sprites = StateBuffIcons.new(@viewport2, 'Buffs')
      end
      
      # dispose buff icons
      def dispose_buff_icons
        return if @buff_sprites.nil?
        @buff_sprites.dispose
        @buff_sprites = nil
      end
      
      # Projectiles
      def update_projectile_sprites
        @projectile_sprites.each {|sprite| sprite.update if !sprite.disposed?}
        $game_player.projectiles.each do |projectile|
          unless projectile.draw_it
            @projectile_sprites.push(Sprite_Character.new(@viewport1, projectile))
            projectile.draw_it = true
          end
          if projectile.destroy_it
            @projectile_sprites.each {|i|
            if i.character.is_a?(Projectile) and i.character.destroy_it
              i.dispose
              @projectile_sprites.delete(i)
            end
            }
            if projectile.user.making_spiral
              projectile.user.making_spiral = false
            end
            $game_player.projectiles.delete(projectile)
          end
        end
      end
      
      # Damage pop 
      def update_damagepop_sprites
        @damagepop_sprites.each {|sprite| sprite.update if !sprite.disposed?}
        $game_player.damage_pop.each do |target|
          unless target.draw_it
            @damagepop_sprites.push(Sprite_DamagePop.new(@viewport1, target))
            target.draw_it = true
          end
          if target.destroy_it
            @damagepop_sprites.each {|i|
            if i.target.destroy_it
              i.dispose
              @damagepop_sprites.delete(i)
            end
            }
            $game_player.damage_pop.delete(target)
          end
        end
      end
      
      #=================================
      # ANIME SPRITES
      def update_absanime_sprites
        @animeabs_sprites.each {|s| s.update if !s.disposed?
        unless $game_player.anime_action.include?(s.character)
          s.dispose
          @animeabs_sprites.delete(s)
          $game_player.anime_action.delete(s.character)
        end
        }
        $game_player.anime_action.each do |anime|
          unless anime.draw_it
            @animeabs_sprites.push(Sprite_Character.new(@viewport1, anime))
            anime.draw_it = true
          end
          if anime.destroy_it
            @animeabs_sprites.each {|i|
            if i.character.is_a?(Anime_Obj) and i.character.destroy_it
              i.dispose
              @animeabs_sprites.delete(i)
            end
            }
            $game_player.anime_action.delete(anime)
          end
        end
      end
      
      def update_dead_characters
        for follower in $game_player.followers
          next if follower.visible? == nil
          next unless follower.battler.dead?
          unless @dead_characters.include?(follower)
            sprite = Sprite_DeadIcon.new(@viewport1, follower)
            @dead_iconsprites.push(sprite)
            @dead_characters.push(follower)
          end
        end
        
        for sprite in @dead_iconsprites
          sprite.update if !sprite.disposed?
          if !sprite.character.battler.dead?
            @dead_iconsprites.delete(sprite)
            @dead_characters.delete(sprite.character)
            sprite.dispose
          end
        end
      end
      
      alias falcaopearl_spdispose dispose
      def dispose
        dispose_pearl_main_sprites
        falcaopearl_spdispose
      end
      
      # pearl abs disposing
      def dispose_pearl_main_sprites
        @dead_iconsprites.each {|icon| icon.dispose}
        dispose_tool_sprite
        dispose_state_icons
        dispose_buff_icons
        dispose_pearlabs_sprites
      end
      
      def dispose_pearlabs_sprites
        @projectile_sprites.each {|pro| pro.dispose}
        @projectile_sprites.clear
        @damagepop_sprites.each {|target| target.dispose}
        @damagepop_sprites.clear
        @animeabs_sprites.each {|anime| anime.dispose}
        @animeabs_sprites.clear
        @enemy_drop_sprites.each {|sprite| sprite.dispose}
        @enemy_drop_sprites.clear
      end
    end
    Pearl Skillbar
    Hier wird gleich am Anfang ein Bild eingefügt.

    Code:
    #===============================================================================
    # * Falcao Pearl ABS script shelf # 4
    #
    # This script handles the Skillbar funtions
    # it is designed to support the 'Mouse System Buttons script 1.6 and above too
    # you can trigger tools by clicking the icons on the toolbar!
    #===============================================================================
    
    module PearlSkillBar
      
      # Skillbar X position in tiles
      Tile_X = 4
      
      # Skillbar Y position in tiles
      Tile_Y = 11
      
      # Layout graphic
      LayOutImage = "Pearl Skillbar"
      
      # Follower attack command icon index
      ToggleIcon = 116
      
      #    * Commands
      #
      # PearlSkillBar.hide        - hide the skillbar 
      # PearlSkillBar.show        - show the skillbar
      #-----------------------------------------------------------------------------
      
      def self.hide
        $game_system.skillbar_enable = true
      end
      
      def self.show
        $game_system.skillbar_enable = nil
      end
      
      def self.hidden?
        !$game_system.skillbar_enable.nil?
      end
    end
    
    class Game_System
      attr_accessor :skillbar_enable, :pearlbars, :enemy_lifeobject
      alias falcaopearl_abs_hud initialize
      def initialize
        unless PearlKernel::StartWithHud
          @skillbar_enable = true
          @pearlbars = true
        end
        falcaopearl_abs_hud
      end
    end
    
    class Sprite_PearlTool < Sprite
      include PearlSkillBar
      attr_accessor :actor
      def initialize(view, custom_pos=nil)
        super(view)
        @layout = ::Sprite.new(view)
        @layout.bitmap = Cache.picture(LayOutImage)
        @icons = ::Sprite.new(view)
        @icons.bitmap = Bitmap.new(@layout.bitmap.width, @layout.bitmap.height)
        self.bitmap = Bitmap.new(@layout.bitmap.width+32, @layout.bitmap.height+32)
        if custom_pos.nil?
          @layout.x = Tile_X * 32 
          @layout.y = Tile_Y * 32 
        else
          @layout.x = custom_pos[0]
          @layout.y = custom_pos[1]
        end
        @icons.x = @layout.x
        @icons.y = @layout.y
        self.x = @layout.x - 16
        self.y = @layout.y - 12
        self.z = self.z + 1
        @actor = $game_player.actor
        @actor.apply_usability
        @old_usability = []
        8.times.each {|i| @old_usability[i] = @actor.usability[i]}
        @framer = 0
        @info_keys = ::Sprite.new(view)
        @info_keys.bitmap = Bitmap.new(self.bitmap.width, self.bitmap.height)
        @info_keys.x = self.x; @info_keys.y = self.y; @info_keys.z = self.z
        draw_key_info
        refresh_icons
        refresh_texts
        @view = view
        @on_map = SceneManager.scene_is?(Scene_Map)
        @mouse_exist = defined?(Map_Buttons).is_a?(String)
        @mouse_exist = false if @mouse_exist && !SceneManager.scene_is?(Scene_Map)
        update
      end
      
      def draw_key_info
        @info_keys.bitmap.font.size = 15
        letters = [Key::Weapon[1], Key::Armor[1], Key::Item[1], Key::Item2[1],
        Key::Skill[1],Key::Skill2[1],Key::Skill3[1],Key::Skill4[1],Key::Follower[1]]
        x = 28
        for i in letters
          @info_keys.bitmap.draw_text(x, -2, @info_keys.bitmap.width, 32, i) 
          x += 32
        end
      end
      
      def refresh_texts
        self.bitmap.clear
        self.bitmap.font.size = 15
        refresh_cooldown
        refresh_ammo
      end
      
      def number(operand)
        return (operand / 60).to_i + 1
      end
      
      def flagged(item, type)
        return :false if !item.cool_enabled? and type == 1
        return item.itemcost if type == 2
      end
      
      # Refresh toolbar icons
      def refresh_icons
        @icons.bitmap.clear
        icon = [@actor.equips[0], @actor.equips[1], @actor.assigned_item,
        @actor.assigned_item2, @actor.assigned_skill, @actor.assigned_skill2,
        @actor.assigned_skill3, @actor.assigned_skill4, ToggleIcon]
        x = 4
        icon.each {|i| 
        if !i.nil? and !i.is_a?(Fixnum)
          if i.is_a?(RPG::Item) || i.is_a?(RPG::Skill)
            draw_icon(i.icon_index, x, 6, @actor.usable?(i))
          else
            if i.is_a?(RPG::Weapon)
              enable = @actor.usability[0] ; enable = true if enable.nil?
              draw_icon(i.icon_index, x, 6, enable)
            elsif i.is_a?(RPG::Armor)
               enable = @actor.usability[1] ; enable = true if enable.nil?
               draw_icon(i.icon_index, x, 6, enable)
            end
          end
        end
        draw_icon(i, x, 6) if i.is_a?(Fixnum) ; x += 32}
        @now_equip = [@actor.equips[0], @actor.equips[1], @actor.assigned_item,
        @actor.assigned_item2, @actor.assigned_skill, @actor.assigned_skill2, 
        @actor.assigned_skill3, @actor.assigned_skill4]
      end
      
      def update
        update_mouse_tiles if @mouse_exist
        update_cooldown
        update_ammo_tools
        update_usability_enable
        refresh_icons if @now_equip[0] != @actor.equips[0]
        refresh_icons if @now_equip[1] != @actor.equips[1]
        refresh_icons if @now_equip[2] != @actor.assigned_item
        refresh_icons if @now_equip[3] != @actor.assigned_item2
        refresh_icons if @now_equip[4] != @actor.assigned_skill
        refresh_icons if @now_equip[5] != @actor.assigned_skill2
        refresh_icons if @now_equip[6] != @actor.assigned_skill3
        refresh_icons if @now_equip[7] != @actor.assigned_skill4
        update_fade_effect
      end
      
      # fade effect when player is behind the toolbar
      def update_fade_effect
        if behind_toolbar?
          if self.opacity >= 60
            self.opacity -= 10
            @layout.opacity = @icons.opacity = @info_keys.opacity = self.opacity
          end
        elsif self.opacity != 255
          self.opacity += 10
          @layout.opacity = @icons.opacity = @info_keys.opacity = self.opacity
        end
      end
      
      def behind_toolbar?
        return false unless @on_map
        px = ($game_player.screen_x / 32).to_i
        py = ($game_player.screen_y / 32).to_i
        9.times.each {|x| return true if px == Tile_X + x and py == Tile_Y}
        return false
      end
      
      # refresh the icons when the usability change
      def update_usability_enable
        8.times.each {|i| refresh_icons if @old_usability[i] != @actor.usability[i]}
      end
      
      #-----------------------------------------------
      # ammunition engine
      def ammo_ready?(item)
        return false if item.nil?
        return true if item.has_data.nil? && item.is_a?(RPG::Item) &&
        item.consumable
        return false if flagged(item, 2).nil?
        return true  if flagged(item, 2) != 0
        return false
      end
      
      # get item cost
      def itemcost(item)
        return $game_party.item_number(item) if item.has_data.nil? &&
        item.is_a?(RPG::Item) && item.consumable
        if !flagged(item, 2).nil? and flagged(item, 2) != 0
          return $game_party.item_number($data_items[flagged(item, 2)])
        end
        return 0
      end
      
      # Ammo refresher
      def refresh_ammo
        if ammo_ready?(@actor.equips[0]) 
          @wnumber = itemcost(@actor.equips[0])
          self.bitmap.draw_text(18, 24, 32,32, @wnumber.to_s, 1)
        end
        if ammo_ready?(@actor.equips[1]) 
          @anumber = itemcost(@actor.equips[1])
          self.bitmap.draw_text(50, 24, 32,32, @anumber.to_s, 1)
        end
        if ammo_ready?(@actor.assigned_item) 
          @inumber = itemcost(@actor.assigned_item)
          self.bitmap.draw_text(82, 24, 32,32, @inumber.to_s, 1)
        end
        if ammo_ready?(@actor.assigned_item2) 
          @inumber2 = itemcost(@actor.assigned_item2)
          self.bitmap.draw_text(112, 24, 32,32, @inumber2.to_s, 1) # item 2
        end
        if ammo_ready?(@actor.assigned_skill) 
          @snumber = itemcost(@actor.assigned_skill)
          self.bitmap.draw_text(144, 24, 32,32, @snumber.to_s, 1)
        end
        if ammo_ready?(@actor.assigned_skill2) 
          @snumber2 = itemcost(@actor.assigned_skill2)
          self.bitmap.draw_text(176, 24, 32,32, @snumber2.to_s, 1) # skill 2
        end
        if ammo_ready?(@actor.assigned_skill3) 
          @snumber3 = itemcost(@actor.assigned_skill3)
          self.bitmap.draw_text(208, 24, 32,32, @snumber3.to_s, 1) # skill 3
        end
        if ammo_ready?(@actor.assigned_skill4) 
          @snumber4 = itemcost(@actor.assigned_skill4)
          self.bitmap.draw_text(240, 24, 32,32, @snumber4.to_s, 1) # skill 4
        end
      
      end
      
      def update_ammo_tools
        refresh_texts if ammo_ready?(@actor.equips[0]) && 
        @wnumber != itemcost(@actor.equips[0])
        refresh_texts if ammo_ready?(@actor.equips[1]) && 
        @anumber != itemcost(@actor.equips[1])
        
        if ammo_ready?(@actor.assigned_item) && 
          @inumber != itemcost(@actor.assigned_item)
          refresh_texts 
        end
        refresh_texts if ammo_ready?(@actor.assigned_item2) && #@inumber2
        @inumber2 != itemcost(@actor.assigned_item2)
        refresh_texts if ammo_ready?(@actor.assigned_skill) && 
        @snumber != itemcost(@actor.assigned_skill)
        refresh_texts if ammo_ready?(@actor.assigned_skill2) && #@snumber2
        @snumber2 != itemcost(@actor.assigned_skill2)
        # new anmmo
        refresh_texts if ammo_ready?(@actor.assigned_skill3) && #@snumber3
        @snumber3 != itemcost(@actor.assigned_skill3)
        refresh_texts if ammo_ready?(@actor.assigned_skill4) && #@snumber4
        @snumber4 != itemcost(@actor.assigned_skill4)
      end
      
      #--------------------------------------
      # cooldown engine
      def cool_down_active?
        return true if skill_cooldown > 0 || weapon_cooldown > 0 ||
        armor_cooldown > 0 || item_cooldown > 0 || skill_cooldown2 > 0 ||
        item_cooldown2 > 0 || skill_cooldown3 > 0 || skill_cooldown4 > 0
        return false
      end
      
      def weapon_cooldown
        if !@actor.equips[0].nil?
          return 0 if flagged(@actor.equips[0], 1) == :false
          cd =  @actor.weapon_cooldown[@actor.equips[0].id]
          return cd unless cd.nil? 
        end
        return 0
      end
      
      def armor_cooldown
       if !@actor.equips[1].nil?
          return 0 if flagged(@actor.equips[1], 1) == :false
          cd = @actor.armor_cooldown[@actor.equips[1].id]
          return cd unless cd.nil? 
        end
        return 0
      end
      
      def item_cooldown
        if !@actor.assigned_item.nil?
          return 0 if flagged(@actor.assigned_item, 1) == :false
          cd = @actor.item_cooldown[@actor.assigned_item.id] 
          return cd unless cd.nil? 
        end
        return 0
      end
      
      def item_cooldown2
        if !@actor.assigned_item2.nil?
          return 0 if flagged(@actor.assigned_item2, 1) == :false
          cd = @actor.item_cooldown[@actor.assigned_item2.id] 
          return cd unless cd.nil? 
        end
        return 0
      end
      
      def skill_cooldown
        if !@actor.assigned_skill.nil?
          return 0 if flagged(@actor.assigned_skill, 1) == :false
          cd = @actor.skill_cooldown[@actor.assigned_skill.id]
          return cd unless cd.nil? 
        end
        return 0
      end
      
      def skill_cooldown2
        if !@actor.assigned_skill2.nil?
          return 0 if flagged(@actor.assigned_skill2, 1) == :false
          cd = @actor.skill_cooldown[@actor.assigned_skill2.id]
          return cd unless cd.nil? 
        end
        return 0
      end
      
      # two new skillls
      def skill_cooldown3
        if !@actor.assigned_skill3.nil?
          return 0 if flagged(@actor.assigned_skill3, 1) == :false
          cd = @actor.skill_cooldown[@actor.assigned_skill3.id]
          return cd unless cd.nil? 
        end
        return 0
      end
      
      def skill_cooldown4 # 4
        if !@actor.assigned_skill4.nil?
          return 0 if flagged(@actor.assigned_skill4, 1) == :false
          cd = @actor.skill_cooldown[@actor.assigned_skill4.id]
          return cd unless cd.nil? 
        end
        return 0
      end
      
      
      # Cooldown refresher
      def refresh_cooldown
        wcd = number(weapon_cooldown)
        self.bitmap.draw_text(18, 36,32,32, wcd.to_s, 1) if weapon_cooldown > 10
        acd = number(armor_cooldown)
        self.bitmap.draw_text(50, 36,32,32, acd.to_s, 1) if armor_cooldown > 10
        icd = number(item_cooldown)
        self.bitmap.draw_text(82, 36,32,32, icd.to_s, 1) if item_cooldown > 10
        icd2 = number(item_cooldown2)
        self.bitmap.draw_text(112, 36,32,32, icd2.to_s, 1) if item_cooldown2 > 10
        scd = number(skill_cooldown)
        self.bitmap.draw_text(144, 36,32,32, scd.to_s, 1) if skill_cooldown > 10
        scd2 = number(skill_cooldown2)
        self.bitmap.draw_text(176, 36,32,32, scd2.to_s, 1) if skill_cooldown2 > 10
        scd3 = number(skill_cooldown3)
        self.bitmap.draw_text(208, 36,32,32, scd3.to_s, 1) if skill_cooldown3 > 10
        scd4 = number(skill_cooldown4)
        self.bitmap.draw_text(240, 36,32,32, scd4.to_s, 1) if skill_cooldown4 > 10
      end
      
      def update_cooldown
        if @on_map and @actor != $game_player.actor
          @actor = $game_player.actor
          refresh_icons
          refresh_texts
        end
        
        if $game_player.refresh_skillbar > 0
          $game_player.refresh_skillbar -= 1
          if $game_player.refresh_skillbar == 0
            @actor.apply_usability
            refresh_icons
          end
        end
        
        if cool_down_active?
          refresh_texts if @framer == 0
          @framer += 1; @framer = 0 if @framer == 10 
        else
          @framer = 0
        end
      end
      
      # if mouse exist update the mouse settings
      def update_mouse_tiles
        mx = (Mouse.pos[0] / 32) ; my = (Mouse.pos[1] / 32)
        case [mx, my]
        when [Tile_X,     Tile_Y] then $game_player.mouse_over = 1
        when [Tile_X + 1, Tile_Y] then $game_player.mouse_over = 2
        when [Tile_X + 2, Tile_Y] then $game_player.mouse_over = 3
        when [Tile_X + 3, Tile_Y] then $game_player.mouse_over = 4
        when [Tile_X + 4, Tile_Y] then $game_player.mouse_over = 5
        when [Tile_X + 5, Tile_Y] then $game_player.mouse_over = 6
        when [Tile_X + 6, Tile_Y] then $game_player.mouse_over = 7
        when [Tile_X + 7, Tile_Y] then $game_player.mouse_over = 8
        when [Tile_X + 8, Tile_Y] then $game_player.mouse_over = 9
        else 
          $game_player.mouse_over = 0 if $game_player.mouse_over != 0
        end
        if $game_player.mouse_over > 0
          create_mouse_blink
          update_mouse_blink_position
          @mouse_blink.opacity -= 3
          @mouse_blink.opacity = 70 if @mouse_blink.opacity <= 6
        else
          dispose_mouse_blink
        end
      end
      
      # update mouse blink position
      def update_mouse_blink_position
        case $game_player.mouse_over
        when 1 then @mouse_blink.x = @layout.x + (5)
        when 2 then @mouse_blink.x = @layout.x + (5 + 32)
        when 3 then @mouse_blink.x = @layout.x + (5 + 64)
        when 4 then @mouse_blink.x = @layout.x + (5 + 96)
        when 5 then @mouse_blink.x = @layout.x + (5 + 128)
        when 6 then @mouse_blink.x = @layout.x + (5 + 160)
        when 7 then @mouse_blink.x = @layout.x + (5 + 192)
        when 8 then @mouse_blink.x = @layout.x + (5 + 224)
        when 9 then @mouse_blink.x = @layout.x + (5 + 256)
        end
      end
      
      def create_mouse_blink
        return if !@mouse_blink.nil?
        @mouse_blink = ::Sprite.new(@view)
        @mouse_blink.bitmap = Bitmap.new(22, 22)
        @mouse_blink.bitmap.fill_rect(0, 0, 22, 22, Color.new(255,255,255))
        @mouse_blink.y = @layout.y + 8
        @mouse_blink.z = self.z
        @mouse_blink.opacity = 70
      end
      
      def dispose_mouse_blink
        return if @mouse_blink.nil?
        @mouse_blink.dispose
        @mouse_blink = nil
      end
      #--------- end of mouse settings
      
      def dispose
        self.bitmap.dispose
        @layout.bitmap.dispose
        @layout.dispose
        @icons.bitmap.dispose
        @icons.dispose
        @info_keys.bitmap.dispose
        @info_keys.dispose
        super
      end
      
      def draw_icon(icon_index, x, y, enabled = true)
        bit = Cache.system("Iconset")
        rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
        @icons.bitmap.blt(x, y, bit, rect, enabled ? 255 : 150)
      end
    end
    Das sollten die Scripte sein in denen Bilder und/oder Icons angezeigt werden.

    Wobei ich gerade mit der Idee liebäugel die alle via Script zu deaktivieren. Wäre schön für Sequenzen oder einfach in Städten dem Spieler ein gewisses Sicherheitsgefühl zu vermitteln.
    In diversen RPG's wird das ja auch so gemacht. Würde jedoch die Variante wählen die beim Basteln weniger Arbeit macht.

  6. #6
    Zum deaktivieren brauchst du doch eigentlich kein extra Script, das Pearl-System lässt sich auch über die Commands PearlSkillBar.hide / PearlSkillBar.show (PearlBars.hide / PearlBars.show, für die HP-Bar) an- und abschalten.
    Welches Script benutzt du denn für das Mapping?

  7. #7
    ... oh man... danke ^^" ... das hab ich nicht gesehen.
    Wo steht das denn? Nur um zu wissen wie blind ich war.

    Script fürs mapping... nun ich habe eines aber ich nutze es nicht, da mir nicht ganz klar ist welche Vorteile es mir bringt und ich gewisse Schwierigkeiten habe die Doku zu verstehen.

    Folgendes habe ich jedenfalls, war bei anderen Scripten dabei die ich sonst noch so benutze.

    MOG_Parallax_EX
    Code:
    #==============================================================================
    # +++ MOG - Parallax EX (v1.2) +++
    #==============================================================================
    # By Moghunter 
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Adiciona alguns efeitos nos panoramas.
    # - Transição suave entre os panoramas.
    # - Efeito Wave. (Útil para criar cenários de desertos.)
    # - Efeito Fade em loop.
    # - Efeito Zoom em loop.
    # - Efeito Fixed Position. (Para criar cenários de panoramas.)
    #
    #==============================================================================
    
    #==============================================================================
    # ● Auto Mode
    #==============================================================================
    # Para ativar os efeitos basta colocar os seguintes comentários na caixa de
    # notas do mapa.
    #
    # <Parallax Wave>
    #
    # <Parallax Fade>
    #
    # <Parallax Zoom>
    #
    # <Parallax Fixed>
    #
    # O poder do efeito WAVE é baseado nos valores de Auto Scroll X e Y.
    #
    # X - Area de distorção no efeito WAVE. (de 0 a 9)
    # Y - Velocidade de distorção do efeito WAVE. (de 0 a 9)
    #
    #==============================================================================
    # ● Manual Mode
    #==============================================================================
    # Use o comando abaixo através do evento usando o comando chamar script.
    #
    # parallax_effect(EFFECT 1,EFFECT 2,EFFECT 3)
    # 
    # EFFECT 1
    # 0 - Efeito Scroll
    # 1 - Efeito Wave
    # 2 - Efeito Zoom
    #
    # EFFECT 2
    #
    # true or false para ativar os efeitos.
    #
    #==============================================================================
    # Se caso deseja desativar a transição suave use o código abaixo.
    #
    # parallax_transition(false) 
    #
    #==============================================================================
    
    #==============================================================================
    # ● NOTA
    #==============================================================================
    # O Efeito WAVE e ZOOM cancelam o efeito SCROLLING (Default Effect)
    # O Efeito FIXED não funciona junto com os outros efeitos.
    #==============================================================================
    
    module MOG_PARALLAX_EX
        #Definição da resolução do projeto.
        SCREEN_RESOLUTION = [544,416]
        #Poder do efeito Zoom. de (0.1 a 0.0001)
        PARALLAX_ZOOM_POWER = 0.005
    end  
    
    #==============================================================================
    # ■ Game System
    #==============================================================================
    class Game_System
      
      attr_accessor :parallax_change_values
      attr_accessor :parallax_ignore_transition
      
      #--------------------------------------------------------------------------
      # ● Initialize
      #--------------------------------------------------------------------------    
      alias mog_parallax_effects_initialize initialize
      def initialize
          @parallax_change_values = []
          @parallax_ignore_transition = false
          mog_parallax_effects_initialize
      end  
      
      #--------------------------------------------------------------------------
      # ● Can Update Parallax_EX
      #--------------------------------------------------------------------------        
      def can_update_parallax_ex?
          if $schala_battle_system != nil
             return false if $game_temp.battle_phase[0]
          end   
          return true
      end  
      
    end  
    
    #==============================================================================
    # ■ Game Intepreter
    #==============================================================================
    class Game_Interpreter
     
      #--------------------------------------------------------------------------
      # ● Parallax Transition
      #--------------------------------------------------------------------------     
      def parallax_transition(value = false)
          $game_system.parallax_ignore_transition = value
      end  
      
      #--------------------------------------------------------------------------
      # ● Effect
      #--------------------------------------------------------------------------       
      def parallax_effect(value = true,fade = false,zoom = false,fixed_p = false)
          value2 = value == true ? 1 : 0
          $game_map.parallax_effect = [value2,120,fade,0,zoom,0,fixed_p]
      end  
      
      #--------------------------------------------------------------------------
      # ● Command 284
      #--------------------------------------------------------------------------   
      alias mog_parallax_effects_command_284 command_284
      def command_284
          if $game_system.can_update_parallax_ex?
             if !$game_system.parallax_ignore_transition
                 $game_system.parallax_change_values.clear
                 $game_system.parallax_change_values[0] = @params[0]
                 $game_system.parallax_change_values[1] = @params[1]
                 $game_system.parallax_change_values[2] = @params[2]
                 $game_system.parallax_change_values[3] = @params[3]
                 $game_system.parallax_change_values[4] = @params[4]     
                 $game_map.parallax_effect[1] = 120
                 return 
             end
             $game_map.parallax_effect[1] = 0
          end
          mog_parallax_effects_command_284  
       end
     
    end   
    
    #==============================================================================
    # ■ Game Map
    #==============================================================================
    class Game_Map
      attr_accessor :parallax_effect
      attr_accessor :parallax_sx 
      attr_accessor :parallax_sy
      attr_accessor :parallax_loop_x
      attr_accessor :parallax_loop_y
      attr_accessor :parallax_sprite
      
      #--------------------------------------------------------------------------
      # ● Setup Parallax
      #--------------------------------------------------------------------------     
      alias mog_parrallax_effects_setup_parallax setup_parallax
      def setup_parallax
          mog_parrallax_effects_setup_parallax
          setup_parallax_effects  
      end    
    
      #--------------------------------------------------------------------------
      # ● Setup Parallax Effects
      #--------------------------------------------------------------------------      
      def setup_parallax_effects
          return if @map == nil
          @parallax_effect = [0,0,false,0,false,0,false]
          @parallax_sprite = [0,0,255,1.00,0]
          if @map.note =~ /<Parallax Wave>/
             @parallax_effect[0] = 1
          end 
          if @map.note =~ /<Parallax Fade>/ 
             @parallax_effect[2] = true
          end
          if @map.note =~ /<Parallax Zoom>/ 
             @parallax_effect[4] = true
          end         
          if @map.note =~ /<Parallax Fixed>/ 
             @parallax_effect[6] = true
          end         
      end
      
    end 
    #==============================================================================
    # ■ Spriteset Map
    #==============================================================================
    class Spriteset_Map
      include MOG_PARALLAX_EX
      
      #--------------------------------------------------------------------------
      # ● Create Parallax
      #--------------------------------------------------------------------------  
      def create_parallax
          refresh_parallax
      end
      
      #--------------------------------------------------------------------------
      # ● Dispose Parallax
      #--------------------------------------------------------------------------
      def dispose_parallax
          return if @parallax == nil
          @parallax.bitmap.dispose if @parallax.bitmap
          @parallax.dispose
          @parallax_image.dispose if @parallax_image != nil
      end
      
      #--------------------------------------------------------------------------
      # ● Update Parallax
      #--------------------------------------------------------------------------      
      alias mog_parallax_ex_update_parallax update_parallax
      def update_parallax
          if $game_system.can_update_parallax_ex?
             refresh_parallax if can_refresh_parallax?
             update_parallax_transition_effect
             update_parallax_effects
             return
          end
          mog_parallax_ex_update_parallax 
      end  
      
      #--------------------------------------------------------------------------
      # ● Can Refresh Parallax?
      #--------------------------------------------------------------------------        
      def can_refresh_parallax?
          return false if @parallax_name == $game_map.parallax_name
          return false if $game_map.parallax_effect[1] > 0
          return true
      end
        
      #--------------------------------------------------------------------------
      # ● Refresh Parallax
      #--------------------------------------------------------------------------          
      def refresh_parallax
          dispose_parallax     
          @parallax_name = $game_map.parallax_name
          @parallax_effect_type = $game_map.parallax_effect[0]
          @parallax_zoom_effect = $game_map.parallax_effect[4] 
          @parallax_zoom_speed = PARALLAX_ZOOM_POWER > 0.1 ? 0.1 : PARALLAX_ZOOM_POWER
          @parallax_fade_effect = $game_map.parallax_effect[2]
          @parallax_fixed_position = $game_map.parallax_effect[6] 
          @power_1 = $game_map.parallax_loop_x == true ? $game_map.parallax_sx : 0
          @power_2 = $game_map.parallax_loop_y == true ? $game_map.parallax_sy : 0
          @orig = [0,0]
          @range = 0
          if @parallax_effect_type == 0 
             if !($game_map.parallax_loop_x and $game_map.parallax_loop_y) and
                  @parallax_zoom_effect
                  create_parallax_type0
                  mode_zoom_setup
             else
                  create_parallax_type1 
             end  
          else  
             create_parallax_type2
             mode_zoom_setup
          end  
          @parallax.z = -100
          @parallax.opacity = $game_map.parallax_sprite[2]      
          Graphics.frame_reset
          @parallax_effect_type = 1 if $game_map.parallax_effect[4]
          update_parallax_effects
      end  
      
      #--------------------------------------------------------------------------
      # ● Mode Zoom Setup
      #--------------------------------------------------------------------------              
      def mode_zoom_setup
          return if !@parallax_zoom_effect
          @orig[0] = (@parallax.bitmap.width / 2) 
          @orig[1] = (@parallax.bitmap.height / 2)
          @parallax.ox = @orig[0] 
          @parallax.oy = @orig[1]       
          @parallax.x = @orig[0] -@range
          @parallax.y = @orig[1]
      end
          
      #--------------------------------------------------------------------------
      # ● Create Parallax Type 0
      #--------------------------------------------------------------------------            
      def create_parallax_type0
          @parallax = Sprite.new(@viewport1)
          @parallax_image = Cache.parallax(@parallax_name)
          @parallax.bitmap = Bitmap.new(SCREEN_RESOLUTION[0],SCREEN_RESOLUTION[1])
          @parallax.bitmap.stretch_blt(@parallax.bitmap.rect, @parallax_image, @parallax_image.rect)
      end  
      
      #--------------------------------------------------------------------------
      # ● Create Parallax Type 1
      #--------------------------------------------------------------------------            
      def create_parallax_type1
          @parallax = Plane.new(@viewport1)
          @parallax.bitmap = Cache.parallax(@parallax_name)        
      end
    
      #--------------------------------------------------------------------------
      # ● Create Parallax Type 2
      #--------------------------------------------------------------------------              
      def create_parallax_type2
          @parallax = Sprite.new(@viewport1)
          @parallax_image = Cache.parallax(@parallax_name)         
          @range = (@power_1 + 1) * 10
          @range = 500 if @range > 500
          speed = (@power_2 + 1) * 100
          speed = 1000 if speed > 1000
          @parallax.x = -@range
          @parallax.wave_amp = @range
          @parallax.wave_length = SCREEN_RESOLUTION[0]
          @parallax.wave_speed = speed
          sc_size = [SCREEN_RESOLUTION[0] + (@range * 2),SCREEN_RESOLUTION[1]]
          @parallax.bitmap = Bitmap.new(sc_size[0],sc_size[1])
          @parallax.bitmap.stretch_blt(@parallax.bitmap.rect, @parallax_image, @parallax_image.rect)
      end  
      
      #--------------------------------------------------------------------------
      # ● Update parallax Fade
      #--------------------------------------------------------------------------            
      def update_parallax_transition_effect      
          return if $game_map.parallax_effect[1] == 0
          if @parallax_name == ""
             refresh_parallax
             if @parallax != nil
                @parallax.opacity = 0
                $game_map.parallax_effect[1] = 61
             end   
          end   
          $game_map.parallax_effect[1] -= 1
          execute_fade_effect if @parallax != nil      
      end  
      
      #--------------------------------------------------------------------------
      # ● Execute Fade Effect
      #--------------------------------------------------------------------------              
      def execute_fade_effect
          case $game_map.parallax_effect[1]
              when 61..120
                 $game_map.parallax_sprite[2] -= 5
              when 1..60    
                 parallax_transition_setup if $game_map.parallax_effect[1] == 60
                 $game_map.parallax_sprite[2] += 5
              else
                 $game_map.parallax_sprite[2] = 255
          end
      end  
      
      #--------------------------------------------------------------------------
      # ● Parallax Transition Setup
      #--------------------------------------------------------------------------                
      def parallax_transition_setup
          if !$game_system.parallax_change_values.empty?
              cv = $game_system.parallax_change_values
              $game_map.change_parallax(cv[0],cv[1],cv[2],cv[3],cv[4])
          end
          refresh_parallax
          $game_map.parallax_sprite[2] = 0
          $game_map.parallax_effect[3] = 0
          $game_map.parallax_effect[5] = 0
          @parallax.zoom_x = 1.00
          @parallax.zoom_y = 1.00
          $game_map.parallax_sprite[3] = 1.00        
      end
                    
      #--------------------------------------------------------------------------
      # ● Update Parallax Effects
      #--------------------------------------------------------------------------        
      def update_parallax_effects
          return if @parallax == nil
          update_parallax_fade_effect
          update_parallax_zoom_effect   
          @parallax.opacity = $game_map.parallax_sprite[2]
          if @parallax_effect_type == 0
             if @parallax_fixed_position
                @parallax.ox = $game_map.display_x * 32
                @parallax.oy = $game_map.display_y * 32
             else
                @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)
                @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)
             end
          else
             @parallax.update         
          end  
      end
        
      #--------------------------------------------------------------------------
      # ● Update Parallax Fade Effect
      #--------------------------------------------------------------------------          
      def update_parallax_fade_effect
          return if !@parallax_fade_effect 
          return if $game_map.parallax_effect[1] > 0
          $game_map.parallax_effect[3] += 1
          case $game_map.parallax_effect[3]
              when 0..60
                  $game_map.parallax_sprite[2] = 255
              when 61..189
                  $game_map.parallax_sprite[2] -= 2 
              when 190..318
                  $game_map.parallax_sprite[2] += 2         
            else
              $game_map.parallax_effect[3] = 0
              $game_map.parallax_sprite[2] = 255
          end
      end
      
      #--------------------------------------------------------------------------
      # ● Update Parallax Zoom Effect
      #--------------------------------------------------------------------------            
      def update_parallax_zoom_effect
          return if !@parallax_zoom_effect
          $game_map.parallax_effect[5] += 1
          case $game_map.parallax_effect[5]
              when 0..120
                  $game_map.parallax_sprite[3] += @parallax_zoom_speed
              when 121..240
                  $game_map.parallax_sprite[3] -= @parallax_zoom_speed
            else
              $game_map.parallax_effect[5] = 0
              $game_map.parallax_sprite[3] = 1.00
          end
          @parallax.zoom_x = $game_map.parallax_sprite[3]
          @parallax.zoom_y = $game_map.parallax_sprite[3]        
      end  
      
    end
    
    $mog_rgss3_parallax_ex = true
    Mein Vorgehen bis jetzt ist das ich den Parallax als Boden nutze und alles andere einfach über Bilder regele. Ansonsten halt mit normalen Kartenbegehbarkeiten.
    Ich hab ein Tileset wo ersichtlich ist wo man wie laufen kann und das einfach kopiert und zu einem komplett "leeren" Tileset gemacht.
    Einfach kopiert im Sinne von ein zweites Tileset angelegt und da die Grafik für geändert.

  8. #8
    Die Commands stehen ganz am Anfang in der Erläuterung des jeweiligen Moduls (also dem Skillbar und Actorbar-Skript).

    Zitat Zitat
    Script fürs mapping... nun ich habe eines aber ich nutze es nicht, da mir nicht ganz klar ist welche Vorteile es mir bringt und ich gewisse Schwierigkeiten habe die Doku zu verstehen.
    Ich denke das Skript wird auch in erster Linie Funktionen z.B. zur Animation und Effekte mit den Bildern ermöglichen. Ich persönlich benutze Yamis Overlay-Mapping Skript in Verbindung mit einem auf den Pearl-Skripten basierenden Kampfsystem. Das Skript hat für mich einfach in erster Linie den Vorteil, dass man die verschiedenen Ebenen schnell und übersichtlich ins Projekt einbinden kann und mehrere Bilder auf einer Ebene angewendet werden können. Außerdem sollte es nebenbei auch dein Problem mit den Bildebenen lösen, falls du dafür noch keine Lösung gefunden haben solltest (ich kann mich zumindest nicht erinnern in der Hinsicht was abgeändert zu haben, damit solche Fehler nicht auftreten). Zudem ist es im Zweifelsfall recht leicht verständlich und es gibt englische Erläuterungen.

  9. #9
    Gut, dann werde ich mir das auch noch zu Gemüte ziehen.

Stichworte

Berechtigungen

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