Seite 11 von 11 ErsteErste ... 7891011
Ergebnis 201 bis 215 von 215

Thema: diäitsch's Problem Sammelthread (Xp) :D

  1. #201
    Hallo Community,
    momentan arbeite ich an einem kleinen Projekt und habe ein sehr ärgerliches Problem.
    Es geht um eine 49x45 Tiles große Map, welche Fackeln an den Wänden aufweist, insgesamt sind es 32.
    Jedenfalls soll jede dieser Fackeln auch brennen. Nun wollte ich es umgehen, diese Map mit 32 zusätzlichen
    Events zu belasten, also habe ich einen großen Fog erstellt, der die Flammen enthält. Dieser sollte sich alle 5 Frames
    ändern, da die Flammen 4-fach animiert sind. Das Problem ist nur, dass das Spiel dann alle 5 Frames stockt...
    Habe gerade mal probiert das ganze in ein riesiges (6272x5760 Pixel großes) Charset zu packen, dieses jedoch lässt
    sich nicht in das Projekt importieren (von wegen unbegrenzte Charset Größen im Rpg maker Xp).
    Zwar könnte ich diese 32 Events in weitaus weniger Charsets zusammenfassen, aber vielleicht weiß jemand von euch
    eine bessere Lösung, würde das ganze eigentlich sehr gerne über den Fog regeln.

    MfG, diäitsch

  2. #202
    Das hängt damit zusammen, dass der Maker nicht ordentlich cacht. Die Fogs werden jedes Mal neu aus der Datei geladen. Im Scripteditor ab Zeile 108 findest du
    Code:
    if @fog.bitmap != nil
      @fog.bitmap.dispose
      @fog.bitmap = nil
    end
    Hier die Zeile mit dem Dispose auskommentieren (# davor schreiben), so dass da steht
    Code:
    if @fog.bitmap != nil
    #  @fog.bitmap.dispose
      @fog.bitmap = nil
    end
    Aber Achtung: Wenn du viele verschiedene Fogs einsetzt und die nie gelöscht werden, kann das auf Dauer den Speicher belasten. Ein Kompromiss wäre, Fogs pro Map zu cachen. Das sieht
    dann so aus:
    Code:
    if @fog.bitmap != nil
            #  @fog.bitmap.dispose
            (@used_fogs ||= {})[@fog.bitmap] = true
            @fog.bitmap = nil
          end
    Und dann bei dispose (ab Zeile 58)
    Code:
     def dispose
        # Dispose of tilemap
        @tilemap.tileset.dispose
        for i in 0..6
          @tilemap.autotiles[i].dispose
        end
        @tilemap.dispose
        # Dispose of panorama plane
        @panorama.dispose
        # Dispose of fog plane
    
        # edit
        if @used_fogs
          @used_fogs.each_key {|fog| fog.dispose unless fog.disposed?}
          @used_fogs.clear
        end
    
        # Dispose of character sprites
        for sprite in @character_sprites
          sprite.dispose
        end

    Geändert von -KD- (19.07.2012 um 18:48 Uhr)

  3. #203
    Genial! Velen Dank für deine schnelle Hilfe.

  4. #204
    Guten Morgen,
    ich habe eine Frage und zwar habe ich die Schriftfarbe meines Projekts von weiß in schwarz geändert, jedoch gibt es noch zwei Dinge,
    die noch immer in weißer Schrift angezeigt werden und bei denen ich im Script-Editor nichts finde. Dies sind zum einen die Auswahlmöglichkeiten
    des Shop processing (Buy, Sell, Quit), zum anderen ist das die Anzeige "miss" im Kampfsystem. Kann mir jemand sagen wo ich das ebenfalls
    ändern kann?

  5. #205
    Wo genau hast du die Font.color in deinem Projekt geändert?
    Für diverse Fenster werden im XP fest vordefinierte Farben verwendet welche du in der Klasse "Window_Base" ändern kannst.
    Für die Schrift im Kampfsystem musst du die Klasse "RPG::Sprite" ändern welche jedoch nicht im Script-Editor vorhanden ist sondern versteckt im RGSS.
    Du kannst den Quellcode der Klasse in der Hilfedatei des Makers betrachten und musst ihn im Script-Editor überschreiben um die Schriftfarbe ändern zu können.

  6. #206
    Habe sie in der Window Base geändert.
    Wenn ich jetzt darüber nachdenke wäre es evtl. besser die Farbe im KS weiß zu lassen, jedoch stört die weiße "Farbe"
    im Shop processing. Habe mal in der Hilfsdatei nachgesehen, kann diesbezüglich aber nichts finden.

  7. #207
    Also wie gesagt, bin mit allem zufrieden, verstehe halt nur nicht wieso im Shop processing nur diese drei Auswahlmöglichkeiten noch in weißer Schrift
    angezeigt werden. Auch ist es mir ein Rätsel wo man das ändern kann. Man sollte doch meinen dass sich dies dort ändern lasse, wo man auch die
    Schriftfarben der anderen Wörter ändern kann, welche ebenfalls im Shop processing angezeigt werden...

  8. #208
    Ich habe mich nocheinmal durch das Script gelesen. Es werden dort nur die Farben verwendet welche in der Window_Base-Klasse angegeben werden, nämlich: normal_color, system_color und disabled_color.

  9. #209
    Hm, seltsam. Dann werde ich wohl etwas übersehen haben, hier meine Window-Base-Class:

    PHP-Code:
    #==============================================================================
    # ** Window_Base
    #------------------------------------------------------------------------------
    #  This class is for all in-game windows.
    #==============================================================================

    class Window_Base Window
      
    #--------------------------------------------------------------------------
      # * Object Initialization
      #     x      : window x-coordinate
      #     y      : window y-coordinate
      #     width  : window width
      #     height : window height
      #--------------------------------------------------------------------------
      
    def initialize(xywidthheight)
        
    super()
        @
    windowskin_name $game_system.windowskin_name
        self
    .windowskin RPG::Cache.windowskin(@windowskin_name)
        
    self.x
        self
    .y
        self
    .width width
        self
    .height height
        self
    .100
      end
      
    #--------------------------------------------------------------------------
      # * Dispose
      #--------------------------------------------------------------------------
      
    def dispose
        
    # Dispose if window contents bit map is set
        
    if self.contents != nil
          self
    .contents.dispose
        end
        super
      end
      
    #--------------------------------------------------------------------------
      # * Get Text Color
      #     n : text color number (0-7)
      #--------------------------------------------------------------------------
      
    def text_color(n)
        case 
    n
        when 0
          
    return Color.new(-255, -255, -255255)
        
    when 1
          
    return Color.new(-255, -255, -255255)
        
    when 2
          
    return Color.new(-255, -255, -255255)
        
    when 3
          
    return Color.new(-255, -255, -255255)
        
    when 4
          
    return Color.new(-255, -255, -255255)
        
    when 5
          
    return Color.new(-255, -255, -255255)
        
    when 6
          
    return Color.new(-255, -255, -255255)
        
    when 7
          
    return Color.new(-255, -255, -255255)
        else
          
    normal_color
        end
      end
      
    #--------------------------------------------------------------------------
      # * Get Normal Text Color
      #--------------------------------------------------------------------------
      
    def normal_color
        
    return Color.new(-255, -255, -255255)
      
    end
      
    #--------------------------------------------------------------------------
      # * Get Disabled Text Color
      #--------------------------------------------------------------------------
      
    def disabled_color
        
    return Color.new(-255, -255, -255255)
      
    end
      
    #--------------------------------------------------------------------------
      # * Get System Text Color
      #--------------------------------------------------------------------------
      
    def system_color
        
    return Color.new(-255, -255, -255255)
      
    end
      
    #--------------------------------------------------------------------------
      # * Get Crisis Text Color
      #--------------------------------------------------------------------------
      
    def crisis_color
        
    return Color.new(-255, -255, -255255)
      
    end
      
    #--------------------------------------------------------------------------
      # * Get Knockout Text Color
      #--------------------------------------------------------------------------
      
    def knockout_color
        
    return Color.new(-255, -255, -255)
      
    end
      
    #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      
    def update
        super
        
    # Reset if windowskin was changed
        
    if $game_system.windowskin_name != @windowskin_name
          
    @windowskin_name $game_system.windowskin_name
          self
    .windowskin RPG::Cache.windowskin(@windowskin_name)
        
    end
      end
      
    #--------------------------------------------------------------------------
      # * Draw Graphic
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #--------------------------------------------------------------------------
      
    def draw_actor_graphic(actorxy)
        
    bitmap RPG::Cache.character(actor.character_nameactor.character_hue)
        
    cw bitmap.width 4
        ch 
    bitmap.height 4
        src_rect 
    Rect.new(00cwch)
        
    self.contents.blt(cw 2chbitmapsrc_rect)
      
    end
      
    #--------------------------------------------------------------------------
      # * Draw Name
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #--------------------------------------------------------------------------
      
    def draw_actor_name(actorxy)
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(xy12032actor.name)
      
    end
      
    #--------------------------------------------------------------------------
      # * Draw Class
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #--------------------------------------------------------------------------
      
    def draw_actor_class(actorxy)
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(xy23632actor.class_name)
      
    end
      
    #--------------------------------------------------------------------------
      # * Draw Level
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #--------------------------------------------------------------------------
      
    def draw_actor_level(actorxy)
        
    self.contents.font.color system_color
        self
    .contents.draw_text(xy3232"Lv")
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(32y2432actor.level.to_s2)
      
    end
      
    #--------------------------------------------------------------------------
      # * Make State Text String for Drawing
      #     actor       : actor
      #     width       : draw spot width
      #     need_normal : Whether or not [normal] is needed (true / false)
      #--------------------------------------------------------------------------
      
    def make_battler_state_text(battlerwidthneed_normal)
        
    # Get width of brackets
        
    brackets_width self.contents.text_size("[]").width
        
    # Make text string for state names
        
    text ""
        
    for i in battler.states
          
    if $data_states[i].rating >= 1
            
    if text == ""
              
    text $data_states[i].name
            
    else
              
    new_text text "/" $data_states[i].name
              text_width 
    self.contents.text_size(new_text).width
              
    if text_width width brackets_width
                
    break
              
    end
              text 
    new_text
            end
          end
        end
        
    # If text string for state names is empty, make it [normal]
        
    if text == ""
          
    if need_normal
            text 
    "[Normal]"
          
    end
        
    else
          
    # Attach brackets
          
    text "[" text "]"
        
    end
        
    # Return completed text string
        
    return text
      end
      
    #--------------------------------------------------------------------------
      # * Draw State
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #     width : draw spot width
      #--------------------------------------------------------------------------
      
    def draw_actor_state(actorxywidth 120)
        
    text make_battler_state_text(actorwidthtrue)
        
    self.contents.font.color actor.hp == knockout_color normal_color
        self
    .contents.draw_text(xywidth32text)
      
    end
      
    #--------------------------------------------------------------------------
      # * Draw EXP
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #--------------------------------------------------------------------------
      
    def draw_actor_exp(actorxy)
        
    self.contents.font.color system_color
        self
    .contents.draw_text(xy2432"E")
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(24y8432actor.exp_s2)
        
    self.contents.draw_text(108y1232"/"1)
        
    self.contents.draw_text(120y8432actor.next_exp_s)
      
    end
      
    #--------------------------------------------------------------------------
      # * Draw HP
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #     width : draw spot width
      #--------------------------------------------------------------------------
      
    def draw_actor_hp(actorxywidth 144)
        
    # Draw "HP" text string
        
    self.contents.font.color system_color
        self
    .contents.draw_text(xy3232$data_system.words.hp)
        
    # Calculate if there is draw space for MaxHP
        
    if width 32 >= 108
          hp_x 
    width 108
          flag 
    true
        elsif width 
    32 >= 48
          hp_x 
    width 48
          flag 
    false
        end
        
    # Draw HP
        
    self.contents.font.color actor.hp == knockout_color :
          
    actor.hp <= actor.maxhp crisis_color normal_color
        self
    .contents.draw_text(hp_xy4832actor.hp.to_s2)
        
    # Draw MaxHP
        
    if flag
          self
    .contents.font.color normal_color
          self
    .contents.draw_text(hp_x 48y1232"/"1)
          
    self.contents.draw_text(hp_x 60y4832actor.maxhp.to_s)
        
    end
      end
      
    #--------------------------------------------------------------------------
      # * Draw SP
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #     width : draw spot width
      #--------------------------------------------------------------------------
      
    def draw_actor_sp(actorxywidth 144)
        
    # Draw "SP" text string
        
    self.contents.font.color system_color
        self
    .contents.draw_text(xy3232$data_system.words.sp)
        
    # Calculate if there is draw space for MaxHP
        
    if width 32 >= 108
          sp_x 
    width 108
          flag 
    true
        elsif width 
    32 >= 48
          sp_x 
    width 48
          flag 
    false
        end
        
    # Draw SP
        
    self.contents.font.color actor.sp == knockout_color :
          
    actor.sp <= actor.maxsp crisis_color normal_color
        self
    .contents.draw_text(sp_xy4832actor.sp.to_s2)
        
    # Draw MaxSP
        
    if flag
          self
    .contents.font.color normal_color
          self
    .contents.draw_text(sp_x 48y1232"/"1)
          
    self.contents.draw_text(sp_x 60y4832actor.maxsp.to_s)
        
    end
      end
      
    #--------------------------------------------------------------------------
      # * Draw Parameter
      #     actor : actor
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #     type  : parameter type (0-6)
      #--------------------------------------------------------------------------
      
    def draw_actor_parameter(actorxytype)
        case 
    type
        when 0
          parameter_name 
    $data_system.words.atk
          parameter_value 
    actor.atk
        when 1
          parameter_name 
    $data_system.words.pdef
          parameter_value 
    actor.pdef
        when 2
          parameter_name 
    $data_system.words.mdef
          parameter_value 
    actor.mdef
        when 3
          parameter_name 
    $data_system.words.str
          parameter_value 
    actor.str
        when 4
          parameter_name 
    $data_system.words.dex
          parameter_value 
    actor.dex
        when 5
          parameter_name 
    $data_system.words.agi
          parameter_value 
    actor.agi
        when 6
          parameter_name 
    $data_system.words.int
          parameter_value 
    actor.int
        end
        self
    .contents.font.color system_color
        self
    .contents.draw_text(xy12032parameter_name)
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(120y3632parameter_value.to_s2)
      
    end
      
    #--------------------------------------------------------------------------
      # * Draw Item Name
      #     item : item
      #     x    : draw spot x-coordinate
      #     y    : draw spot y-coordinate
      #--------------------------------------------------------------------------
      
    def draw_item_name(itemxy)
        if 
    item == nil
          
    return
        
    end
        bitmap 
    RPG::Cache.icon(item.icon_name)
        
    self.contents.blt(x4bitmapRect.new(002424))
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(28y21232item.name)
      
    end
    end 

  10. #210
    Ich habe es gerade einmal mit deinem Script getestet.
    Wie es aussieht liegt der Fehler hier in der Klasse "Window_ShopCommand", in dieser Klasse wird nämlich tatsächlich garkeine Farbe für die Schrift eingestellt, deshalb wird die standard Farbe verwendet welche bei deinem Projekt wahrscheinlich Weiß ist.

    Du hast zwei Möglichkeiten welche beide sehr simpel sind. Du veränderst die Klasse "Window_ShopCommand" und fügst einfach eine Zeile ein um die Farbe zu setzen wie in diesem Beispiel hier:
    Code:
      def initialize
        super(0, 64, 480, 64)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.color = normal_color
        @item_max = 3
        @column_max = 3
        @commands = ["Buy", "Sell", "Exit"]
        refresh
        self.index = 0
      end
    Oder du änderst auch die standard Schriftfarbe in deinem Projekt auf Schwarz, das geht über folgende Zeile welche du lediglich irgendwann vor Beginn des eigentlichen Spiels, also am besten in der Main-Funktion, aufrufst:
    Code:
    Font.default_color = Color.new(0,0,0,255)

  11. #211
    Vielen Dank für die Hilfe, Cornix.
    Habe es mit deiner zweiten Variante gelöst. Klappt einwandfrei.

  12. #212
    Guten Abend Community,
    ich habe eine Frage zu Pictures, welche auf dem Battle Screen angezeigt werden.
    Ist es irgendwie möglich diese direkt nach dem Kampf wieder verschwinden zu lassen?

    Bekomme es nicht hin, habe es mit Switches, Conditional Branches und sogar Labels versucht,
    nichts funktioniert. Beim nächsten Kampf ist das Picture noch immer vorhanden. Problematisch ist
    dies wenn besagtes Picture nicht auf den (anderen) Battleback passt. Natürlich kann man durch
    Erase Picture das Bild verschwinden lassen, aber trotzdem ist das Bild ca. eine Sekunde zu sehen.
    Es müsste doch auch irgendwie direkt nach einem Kampf (und nicht direkt zu Beginn des nächsten
    Kampfes) möglich sein, oder?

    Hoffe jemand kann mir helfen.

    MfG, diäitsch

  13. #213
    Vielleicht noch wichtig zu erwähnen:
    Es geht um die Einstellungen des Punktes "Troops" in der Database.

    Edit: Es ist einfach unglaublich, wie schwierig Enterbrain es den Nutzern des Rpg Maker Xp
    macht, jetzt habe ich versucht zu trixen, in dem ich vor dem Kampf den Screencolor Tone
    herunterschraube (-255, -255, -255, 0) und erst eine halbe Sekunde nach Kampfbeginn
    wieder normalisiere. Würde auch sicherlich in Verbindung mit Fogs statt Pictures super
    funktionieren, aber anscheinend werden im Kampf keine Fogs angezeigt!

    Geändert von diäitsch (16.10.2012 um 16:05 Uhr)

  14. #214
    ich weiß nicht obs noch aktuell ist, aber willst du das ganze auch für Random-battles oder nur für bestimmte Bossbattles die du über Event einstellst?
    Theoretisch könnt ich dir da was schreiben, damt sowas klappt, bräuchte blos ein paar genauere Infos dafür.

  15. #215
    Gedacht war das für bestimmte Kämpfe.
    Habe das jetzt aber anders gelöst, trotzdem danke.

Berechtigungen

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