(http://lucenia.de/privat/AFS.jpg)
Updates:Diesntag, 22. Januar - 04:12 Uhr: Name-Funktion eingebautMittwoch, 23. Januar - 12:40 Uhr: 7 Farben-Wahl für die Name-Funktion eingebautHallo 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/InstallationAls 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:
#---------------------------------------------------------------------------
# ? 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-BilderIn 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:
(http://lucenia.de/privat/template.png)
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! (http://www.rabugroup.homepage.t-online.de/Faces_gross.zip)
AnwendungWenn 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:
(http://lucenia.de/privat/template2.png)
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.dispose
Das bewirkt, dass das Face wieder gelöscht wird. Danach könnt Ihr wieder den gewohnten Code einsetzen.
Eigene Farbe hinzufügenUm 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)".
SchlusswortDas 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