collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Advanced Faces-Script  (Gelesen 10421 mal)

Yatzumo

  • Gast
Advanced Faces-Script
« am: Januar 21, 2008, 01:37:16 »
Advanced Faces-Script
Ich weiß, ich mag dieses "Advanced" ._.



Updates:
Diesntag, 22. Januar - 04:12 Uhr: Name-Funktion eingebaut
Mittwoch, 23. Januar - 12:40 Uhr: 7 Farben-Wahl für die Name-Funktion eingebaut

Hallo liebe Member,
Ich habe mich heute einmal rangesetzt und versucht ein ordentliches Script zu machen, womit man - ganz ohne die Pictures zu beeinflussen - diese großen Artworks als Faces anzeigen lassen kann. Hierfür habe ich einfach einen kleinen, aber wirksamen Code geschrieben. Kommen wir zum Punkt:

Einstellungen/Installation
Als erstes macht ihr euch einen Ordner in euren Graphics-Ordner namens "Advanced Faces". Dort kommen dann eure Faces rein, worauf wir später noch näher eingehen.

Nun macht ihr ein neues Script über Main, was ihr so nennen könnt, wie ihr wollt. Zur Übersicht kann man dann einfach "Advanced Faces-Script" nehmen. :)In dieses Script fügt ihr folgenden Code ein:
Spoiler for Hiden:
#---------------------------------------------------------------------------
# ? Adcanced-Face-Script
#
#     >Version: v.1.3
#     >Updates:
#        >Dienstag, 22. Januar - Namen-Funktion hinzugefügt
#        >Mittwoch, 23. Januar - 7 Farben-Wahl für die Namen-Funktion hinzugefügt
#
#     >Erstellt von: Yatzumo
#     >Danke an: Rabu und Yoda
#---------------------------------------------------------------------------
module Cache
  #--------------------------------------------------------------------------
  # ? Advanced Faces Ordner
  #     filename : Dateiname der A-Faces
  #--------------------------------------------------------------------------
  def self.a_face(filename)
    load_bitmap("Graphics/Advanced Faces/", filename)
  end
end

class A_Face
  #--------------------------------------------------------------------------
  # ? Advanced Face erstellen
  #    >dateiname = Name der Datei mit den A_Faces
  #    >position = Rechts oder Links?
  #    >numberofart = Nummer des anzuzeigenden Face in einer Datei
  #    >heroname= Name der angezeigt werden soll
  #    >afcolor= Die Farbe des Namens (von 0-7)
  #--------------------------------------------------------------------------
  def a_face(dateiname, position, numberofart, heroname, afcolor)
    #-----------------------------------------------------------------------
    # ? Advanced Face anzeigen
    #-----------------------------------------------------------------------
    if dateiname == "none" then

    else
      @aface = Sprite.new
      @aface.bitmap = Cache.a_face(dateiname)
      #-----------------------------------------------------------------------
      # ? Aus "dateiname" ein Face ausschneiden
      #-----------------------------------------------------------------------
      if numberofart == 1 then
        @aface.src_rect = Rect.new(0, 0, 192, 192)
      elsif numberofart == 2 then
        @aface.src_rect = Rect.new(192, 0, 192, 192)
      elsif numberofart == 3 then
        @aface.src_rect = Rect.new(384, 0, 192, 192)
      elsif numberofart == 4 then
        @aface.src_rect = Rect.new(576, 0, 192, 192)
      elsif numberofart == 5 then
        @aface.src_rect = Rect.new(0, 192, 192, 192)
      elsif numberofart == 6 then
        @aface.src_rect = Rect.new(192, 192, 192, 192)
      elsif numberofart == 7 then
        @aface.src_rect = Rect.new(384, 192, 192, 192)
      elsif numberofart == 8 then
        @aface.src_rect = Rect.new(576, 192, 192, 192)
      end
      #-----------------------------------------------------------------------
      # ? Position: rechts oder links?
      #-----------------------------------------------------------------------
      if position == 0
        @aface.x = 6
        @aface.y = 218
        @aface.mirror = false
      elsif position == 1
        @aface.x = 348
        @aface.y = 218
        @aface.mirror = true
      end
      @aface.z = 201
    end
    #-----------------------------------------------------------------------
    # ? Namen des Helden anzeigen
    #-----------------------------------------------------------------------
    if heroname == 0

    else
      @aname = Window.new
      @aname.windowskin = Cache.system("Window")
      @aname.back_opacity = 180
      @aname.openness = 255
      @aname.z = 202  
      #-----------------------------------------------------------------------
      # ? Namen färben: 0-7
      #-----------------------------------------------------------------------
      if afcolor == 0 # Weiß
        fontcolor = Color.new(255, 255, 255, 255)
      elsif afcolor == 1 # Blau
        fontcolor = Color.new(128, 128, 255, 255)
      elsif afcolor == 2 # Rot
        fontcolor = Color.new(255, 128, 128, 255)
      elsif afcolor == 3 # Grün
        fontcolor = Color.new(128, 255, 128, 255)
      elsif afcolor == 4 # Hellblau
        fontcolor = Color.new(128, 255, 255, 255)
      elsif afcolor == 5 # Lila
        fontcolor = Color.new(255, 128, 255, 255)
      elsif afcolor == 6 # Gelb
        fontcolor = Color.new(255, 255, 128, 255)
      elsif afcolor == 7 # Grau
        fontcolor = Color.new(192, 192, 192, 255)
      elsif afcolor == 8 # Braun
        fontcolor = Color.new(231, 197, 142, 255)
      end
      @anametext = Sprite.new
      @anametext.z = 203
      
      case heroname
        when 1..20
          actor = $game_actors[heroname]
          @actor_id = heroname
          @name = actor.name
          @aname.width = (@name.size * 10) + 40
          @aname.height = 34
          
          if position == 0
            @aname.x = 544 - @aname.width - 15
            @aname.y = 268
            @anametext.x = 544 - @aname.width - 15
            @anametext.y = 268
          elsif position == 1
            @aname.x = 10
            @aname.y = 268
            @anametext.x = 10
            @anametext.y = 268
          end
          
          @anametext.bitmap = Bitmap.new((@name.size * 10) + 40, 32)
          @anametext.bitmap.font.color = fontcolor
          @anametext.bitmap.font.size = 20
          nametexthoehe = @anametext.bitmap.font.size
          nametextrect = Rect.new(0, 7, @anametext.bitmap.width, nametexthoehe)
          @anametext.bitmap.draw_text(nametextrect, @name, 1)
        else
          @aname.width = (heroname.size * 10) + 40
          @aname.height = 34
          
          if position == 0
            @aname.x = 544 - @aname.width - 15
            @aname.y = 268
            @anametext.x = 544 - @aname.width - 15
            @anametext.y = 268
          elsif position == 1
            @aname.x = 10
            @aname.y = 268
            @anametext.x = 10
            @anametext.y = 268
          end
          
          @anametext.bitmap = Bitmap.new((heroname.size * 10) + 40, 32)
          @anametext.bitmap.font.color = fontcolor
          @anametext.bitmap.font.size = 20
          nametexthoehe = @anametext.bitmap.font.size
          nametextrect = Rect.new(0, 7, @anametext.bitmap.width, nametexthoehe)
          @anametext.bitmap.draw_text(nametextrect, heroname, 1)
      end
    end
  end
  
  def dispose
    @aface.dispose
    @aname.dispose
    @anametext.dispose
  end
end
$af = A_Face.new
So weit, so gut.

Advanced Face-Bilder
In diesem Script ist es - wie bei den Standard-Faces - so, dass man in einer Datei gleich 8 Faces speichern kann. Somit hat man nicht so viel Datein auf einmal und hat einen besseren Überblick. Die Datein sehen also wie folgt aus:

Dies ist ein Template, was ihr gerne dafür verwenden könnt eure Advanced Faces zusammen zuschneiden.
Hier die ganzen Faces wie ihr sie benötigt, danke an Rabu, welcher sie zusammen geschnitten hat!
Download Advanced Faces!

Anwendung
Wenn ihr das Script so eingebaut habt, wie ich es oben beschrieben habe, können wir nun zur Anwendung kommen. Und zwar wird ein solches Face über die Call Script funktion im Maker aufgerufen. Dafür nehmen wir folgendes Syntax:
$af.a_face("Dateiname", Position, Nummer-Des-Faces, "Figurenname", Farbe)
"Dateiname" - Hier gebt ihr in Anführungsstichen ( " ) an, wie die Datei der Faces heißt. Wenn man kein Face anzeigen will, schreibt man einfach "none".
Position - Hier gebt ihr mit 0 an, dass das Face links sein soll und mit 1 dass es rechts sein soll. ACHTUNG: Wenn ihr ein Face links anzeigen wollt, lasst am besten ein leeres normales Face dafür anzeigen, damit ihr den Text besser positionieren könnt. Erfordert ein Wenig Anpassungsarbeit, aber das sollte es wert sein. :)
Nummer-Des-Faces - Hier gebt ihr die Nummer des des Faces aus einer Datei an.
Figurenname - Hier kann man entweder die ID des Helden angeben, dessen Namen angezeigt werden soll, oder aber einfach einen Namen in Anführungszeichen. z.B. "Naomi Damada". Möchte man keinen Namen anzeigen lassen, gibt man einfach 0 ein.
Farbe - Hier könnt ihr eine Farbe von 0-7 angeben, in der der Figurenname angezeigt werden soll. Bisher habe ich die 7 Standard-Farben von dem RMXP übernommen, da ich die Standard-Farben des VX nicht gefunden habe. :)Im Script steht neben den Nummern, welche Farbe es ist. Unten wird erklärt, wie man sich eine eigene Farbe hinzufügen kann.

Hier einmal ein kleines Template wo man die jeweilige Nummer eines Faces sehen kann:

Und noch ein kleines Beispiel:
$af.a_face("0001", 0, 1, "Naomi Damada", 0)(Sieht dann so wie im Bild oben aus!)

Nun haben wir also den Code für die Call-Script Funktion, allerdings muss man hierbei noch etwas beachten:
Wenn ihr eine Nachricht beendet und danach ein neues Face anzeigen lassen wollt, so verwendet stets folgenden Code über Call Script:
$af.disposeDas bewirkt, dass das Face wieder gelöscht wird. Danach könnt Ihr wieder den gewohnten Code einsetzen.


Eigene Farbe hinzufügen
Um eine eigene Farbe für die Name-Funktion zu erstellen, muss man sich im Script folgenden Part anschaun:
      #-----------------------------------------------------------------------
      # ? Namen färben: 0-7
      #-----------------------------------------------------------------------
      if afcolor == 0 # Weiß
        fontcolor = Color.new(255, 255, 255, 255)
      elsif afcolor == 1 # Blau
        fontcolor = Color.new(128, 128, 255, 255)
      elsif afcolor == 2 # Rot
        fontcolor = Color.new(255, 128, 128, 255)
      elsif afcolor == 3 # Grün
        fontcolor = Color.new(128, 255, 128, 255)
      elsif afcolor == 4 # Hellblau
        fontcolor = Color.new(128, 255, 255, 255)
      elsif afcolor == 5 # Lila
        fontcolor = Color.new(255, 128, 255, 255)
      elsif afcolor == 6 # Gelb
        fontcolor = Color.new(255, 255, 128, 255)
      elsif afcolor == 7 # Grau
        fontcolor = Color.new(192, 192, 192, 255)
      end
Eigentlich sehr einfach! Nehmt euch einfach ein elsif und kopiert es:
      elsif afcolor == 8 # Schwarz
        fontcolor = Color.new(0, 0, 0, 255)
Das kopiert ihr dann über das "end" und schon habt ihr eine eigene Farbe. Denkt daran die Nummer hinter "afcolor ==" zu ändern. Die drei Parameter hinter "Color.new(" könnt ihr in jedem Grafikprogramm nachlesen, wenn ihr die Farbe mischt. Die Parameter stehen für: "(rot, grün, blau)".

Schlusswort
Das wars dann auch schon.

Ich bedanke mich bei:
  • ERZENGEL für das Posten der Artworks.
  • Rabu für das verändert dieser und Mithilfe.
  • Yoda für etwas Unterstützung.

Wenn Ihr das Script verwendet, würde ich mich über Credits freuen. :)

MFG Yatzumo
« Letzte Änderung: Januar 23, 2008, 17:14:25 von Yatzumo »

Advanced Faces-Script

OrioN23

  • Gast
Advanced Faces-Script
« Antwort #1 am: Januar 21, 2008, 03:16:09 »
Fettes danke! Funktioniert (wie nicht anders zu erwarten) makellos und vor allem total simpel... *staun*

Werd ich mit Sicherheit nutzen.

Advanced Faces-Script

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Advanced Faces-Script
« Antwort #2 am: Januar 21, 2008, 07:19:11 »
Hi,

geht das einfacher oder schneller als mit dem Bild-Anzeigen - Bild löschen mit dem Pictures über Messagebox-Script?

MFG Markus

Advanced Faces-Script

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Advanced Faces-Script
« Antwort #3 am: Januar 21, 2008, 08:02:55 »
Prima Yatzu, werde das gleich mal checken. So wie's ausschaut, hat dein Script geegenüber dem von Wortana den Vorzug, dass man die normale Standard-Face-Option weiterhin verwenden kann.

Wäre schon mal ein grosser Plus-Punkt für deine Variante.

Zitat
In diesem Script ist es - wie bei den Standard-Faces - so, dass man in einer Datei gleich 10 Faces speichern kann.
PS: Will dich nicht kritisieren, aber wäre es nicht besser, das als 8'er Template aufzubauen, wie bei den Standard-Faces. Dann könnte man die gleichen Gruppen aufbauen, wie bei den normalen, also Actor1, Actor2, People1 usw. Und der Call Script-Syntax wäre einfacher, weil man sich an den Charset-Namen und deren Position orientieren könnte.

Btw, das modifizierte Spriteset_Map (von der allerersten Lösung) kann man dann wohl wieder zurücksetzen auf Standard, oder?
« Letzte Änderung: Januar 21, 2008, 13:07:28 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

Advanced Faces-Script

Yatzumo

  • Gast
Advanced Faces-Script
« Antwort #4 am: Januar 21, 2008, 15:31:28 »
Gute Idee Rabu. Ich editier das gleich auf 8er.

Ja, du kannst das Editierte wieder wegnehmen. Läuft ohne das einwandfrei, da es absolut gar nicht darauf zugreift. ^^ Es sind exta Bitmaps, die rein gar nichts mit den Pictures zu tun haben.

Btw. wenns Vorschläge oder Kritik gibt, immer her damit, kann Kritik ab. ^^

MFG Yatzumo

EDIT:
Wurde nun geändert, danke Rabu für den Hinweis. ^^
Habe auch gleich neue Templates dazu gepackt

Zitat
Hi,

geht das einfacher oder schneller als mit dem Bild-Anzeigen - Bild löschen mit dem Pictures über Messagebox-Script?

MFG Markus
Ich denke, das musst du für dich selbst herausfinden. ^^
Allerdings finde ich diese Lösung besser, weil man dann immernoch seine 20 Picture unter der Textbox hat und gleich 8 Bilder in einer Datei. ^^

MFG Yatzumo
« Letzte Änderung: Januar 21, 2008, 15:49:08 von Yatzumo »

Advanced Faces-Script

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Advanced Faces-Script
« Antwort #5 am: Januar 21, 2008, 16:01:43 »
Das mit den 10'er Template ist sicher in der Eile des Gefechts passiert. Und hab schon geseh'n, dass du ne eigene .z-Ebene definiert hast.

Also werd's nach dem Umbau mal gleich checken.

(Was ich zum Testen noch empfehlen würde, ne Gamedisk mit und ohne Encrypt zu erstellen, gab schon einige Scripts die solche Sachen wie Extra-Ordner dann nicht übernommen haben)

Denke da z.B: an das ursprüngliche AMS.
« Letzte Änderung: Januar 21, 2008, 18:22:16 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

Advanced Faces-Script

Yatzumo

  • Gast
Advanced Faces-Script
« Antwort #6 am: Januar 21, 2008, 20:14:29 »
Zitat
Das mit den 10'er Template ist sicher in der Eile des Gefechts passiert. Und hab schon geseh'n, dass du ne eigene .z-Ebene definiert hast.
Richtig. ^^
Was die .z-Ebene angeht: Ich hätte auch ein Viewport einrichten können und diesen dann verwenden können, allerdings wäre der Code nur unnötig länger geworden. Die eigene .z-Ebene ist da praktischer. ^^

Zitat
(Was ich zum Testen noch empfehlen würde, ne Gamedisk mit und ohne Encrypt zu erstellen, gab schon einige Scripts die solche Sachen wie Extra-Ordner dann nicht übernommen haben)

Denke da z.B: an das ursprüngliche AMS.
Bereits getestet, deine Bedenken waren aber zu Recht. Kannte das früher auch schon, dass es da probleme gab. Allerdings gibt es keine Probleme bei diesem Script. Man kann also ganz normal den Ordner Advanced Faces anlegen. ^^

MFG Yatzumo

Advanced Faces-Script

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Advanced Faces-Script
« Antwort #7 am: Januar 21, 2008, 22:04:58 »
Hi,

habe das Script mal installiert und es klappt wirklich noch besser.

Habe aber nen riesigen Fehler gemacht. Habe zuerst nicht kapiert, dass das Script die Grafiken umdreht und habe 4 Facesets alle umgedreht erstellt.
Musste daher die Spiegelungseinstellungen im Script ändern. Klappt aber wirklich toll. Dankesehr. :)

MFG Markus
« Letzte Änderung: Januar 21, 2008, 22:39:00 von Goldenboss »

Advanced Faces-Script

Yatzumo

  • Gast
Advanced Faces-Script
« Antwort #8 am: Januar 21, 2008, 23:37:14 »
Zitat
Hi,

habe das Script mal installiert und es klappt wirklich noch besser.

Habe aber nen riesigen Fehler gemacht. Habe zuerst nicht kapiert, dass das Script die Grafiken umdreht und habe 4 Facesets alle umgedreht erstellt.
Musste daher die Spiegelungseinstellungen im Script ändern. Klappt aber wirklich toll. Dankesehr. smile.gif

MFG Markus
Wie genau ist das jetzt gemeint?
Gibt es also nen Fehler im Script, wenn man gespiegelt anzeigen lassen will?

MFG Yatzumo

EDIT:
Ah, okay habs verstanden. ^^
Du selbst hast sie nochmal exta gespiegelt, wodurch sie sich dann natürlich wieder normal gedreht haben und ihre Position verändert haben. ^^ Naja, Fehler passieren jedem mal.

Man muss sie deshalb nicht extra von Hand spiegeln, weil der Prozess zum Spiegeln nach dem Anzeigen des einzelnen Pictures statt finden. So wurde z.B. Held 2 von dem Bild bereits angezeigt und erst dann spiegelt er sich.

MFG Yatzumo
« Letzte Änderung: Januar 21, 2008, 23:44:00 von Yatzumo »

Advanced Faces-Script

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Advanced Faces-Script
« Antwort #9 am: Januar 21, 2008, 23:51:30 »
Zitat von: Yatzumo
EDIT:
Ah, okay habs verstanden. ^^
Du selbst hast sie nochmal exta gespiegelt, wodurch sie sich dann natürlich wieder normal gedreht haben und ihre Position verändert haben. ^^ Naja, Fehler passieren jedem mal.

Man muss sie deshalb nicht extra von Hand spiegeln, weil der Prozess zum Spiegeln nach dem Anzeigen des einzelnen Pictures statt finden. So wurde z.B. Held 2 von dem Bild bereits angezeigt und erst dann spiegelt er sich.

MFG Yatzumo
Hi,

das war mir erst nicht so klar.

Das habe ich dann nach dem Testen gemerkt.
Habe dann im Script einfach false und true getauscht.

MFG Markus

Advanced Faces-Script

Yatzumo

  • Gast
Advanced Faces-Script
« Antwort #10 am: Januar 22, 2008, 04:15:39 »
Schickes neues Update für das Script:
Man kann nun den Namen für die Box angeben. Möchte man keinen angeben, gibt man einfach "0" an!
WICHTIG: Die Anführungszeichen müssen dann auch angegeben werden.

Änderungen stehen im ersten Post!

MFG Yatzumo

Advanced Faces-Script

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Advanced Faces-Script
« Antwort #11 am: Januar 22, 2008, 08:53:19 »
Hi,

das ist nice.

Danke.

Edit:
Klappt super. Danke.

MFG Markus
« Letzte Änderung: Januar 22, 2008, 09:04:54 von Goldenboss »

Advanced Faces-Script

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Advanced Faces-Script
« Antwort #12 am: Januar 22, 2008, 09:09:58 »
Wirklich schickes Update und tolle Idee mit der Namebox. Wird ja immer besser. Kann man da auch den Text-Befehl für die Helden-ID benutzen, also \N[Id]?

Wahrscheinlich nicht, oder? Da es ja in Anführszeichen steht. Aber auch nicht sooo wichtig.

Aber trotzdem genial. Eine Idee hätte ich noch. Für die Namebox ne andere Systemfarbe zu verwenden als die des Standard-Textes. Weisst ja, hab's immer ein wenig mit Optik. Kleiner Tick von mir *g*
« Letzte Änderung: Januar 22, 2008, 10:41:06 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

Advanced Faces-Script

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Advanced Faces-Script
« Antwort #13 am: Januar 22, 2008, 09:24:44 »
Hi,

\n[id] geht auch nicht.

Könntest du das vielleicht noch einbauen?

MFG Markus

Advanced Faces-Script

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Advanced Faces-Script
« Antwort #14 am: Januar 22, 2008, 10:44:09 »
Sorry, meinte natürlich auch \N[id], also Heldennamen. Hatte mich in der Zeile vertan. Oben korrigiert.

PS: Habs eingebaut, klappt, prima. Jetzt weiss ich allerdings, warum du die Namen-Box abgeschnitten hast. Wegen dem Eingabe-Symbol (Dreieck). Kann man das nicht wegkriegen.

Nur so ne Frage.

BTW, Yatzu, schöne Lightmap auf deinem Beispielscreen im 1ten Post. Nicht, dass du meinst, ich seh' sowas nicht. *g* Die kleine Anspielung im Text hab ich auch bemerkt.
« Letzte Änderung: Januar 22, 2008, 12:33:05 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

 


 Bild des Monats

rooftop party

Views: 3581
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal