Kamikaze Board



Zurück   Kamikaze Board > RPG Maker > RPG Maker Ressourcen & Material > RGSS-Scripts

RGSS-Scripts Postet hier die Scripts die ihr im Script-Editor selbst erstellt oder gefunden habt. Gefundene Scripts jedoch mit Quellenangabe posten!

Antwort
 
Themen-Optionen
Alt 14.10.2006, 12:35   #1
Phantom Männlich
Attentäter
 
Benutzerbild von Phantom
 
Registriert seit: 30.03.2006
Beiträge: 1.026
Standard Paperdoll-Script

Da die Script-Schnipsel ziemlich zahlreich sind und sich in zahlreichen Nachfragen und Verbesserungs-Ideen über viele PMs verteit haben wäre ich dankbar wenn das mal jemand überprüft und mir zukommen lässt ob es funktioniert oder ob ich noch was vergessen habe... ansonsten viel Spaß mit dem Script:


Was macht es?

Der Hero wird aus drei Sprites zusammengesetzt (was natürlich mit etwas Eigeninitiative auf beliebig viele Sprites erweiterbar ist).

Im Spiel kann man dann, mit den kryptischen Worten
Zitat:
"$game_player.createCharset('body1', 'hair1', 'shoes1')"
das Charset ändern
(für body1, hair1, und shoes1 muss man drei entsprechende Sets angeben -bei Set-Mangel oder zu Test-Zwecken tut es auch dreimal dasselbe ;) ).

Allerdings hat die Ur-Fassung ein kleines Problem, nämlich wird die Änderung des Charsets erst nach einem Map-Wechsel oder folgendem Script-Befehl sichtbar:
Zitat:
$scene = Scene_Map.new
(Daraus ergibt sich eine kurze Überblendungs-Dauer aber selbst dafür gibt es eine Lösung... wen die interessiert, der versuche sich an KDs Erweiterung, die ich ebenfalls unten angefügt habe)

Von wem ist es?

Das Script hat MagicMagor geschrieben,
und die Erweiterung stammt von KD

Wo kann ich es in Aktion sehen?

Paperdoll-Demo (die Graphiken sind übrigens von mir)


Wie baut man es ein?

Folgende Zeilen an die bestehende Seite "Game_Character1" anfügen
(OHNE irgend-etwas zu löschen!!!):
Zitat:
class Game_Character
attr_reader :mainBit
def createCharset(body, hair, shoes)
@mainBit = Bitmap.new(width, height) # Groß genug machen
bodyBit = RPG::Cache.character(body, self.character_hue)
hairBit = RPG::Cache.character(hair, self.character_hue)
shoesBit = RPG::Cache.character(shoes, self.character_hue)
# Teile zusammen setzen:
# x und y bitte so setzen, daß die Teile an den richtigen stellen stehen,
# wenn die Charsets gleich groß sind einfach 0,0
@mainBit.blt(x, y, bodyBit, bodyBit.rect)
@mainBit.blt(x, y, hairBit, bodyBit.rect)
@mainBit.blt(x, y, shoesBit, bodyBit.rect)
end
end
Das gleiche macht ihr in "Game_Player" mit folgendem Code:
Zitat:
class Game_Player < Game_Character
def initialize()
super()
createCharset('body', 'hair', 'shoes') # Body, hair und shoes durch die Dateinamen ersetzen.
end
end
Danach müsst ihr nur noch in "Sprite_Character" folgende zeile suchen:
Zitat:
self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue)
und sie ändern in:
Zitat:
if @character.is_a?(Game_Player)
self.bitmap = @character.mainBit
else
self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue)
end
Fertig ist ein funktionstüchtiges Paperdoll-Script...


Erweiterung von KD

Für die, denen eine saubere und ultra-schnelle Überblendung den Mehr-Aufwand wert ist, hat mir KD die nötigen Änderungen verraten:

Fügt diesen Codeschnipsel:
Zitat:
class Game_Character
attr_accessor(:paperdoll)
end
in den Scripteditor ein. Außerdem solltet ihr in der update Methode der Game_Character Klasse noch die Zeile
Zitat:
@paperdoll = false
einfügen.
In der create_Charset-Methode fügt ihr noch die Zeile
Zitat:
@paperdoll = true
ein.

In der Sprite_Character Klasse befindet sich in der update Methode ein langer if-satz:
Zitat:
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
Diesen ersetzt ihr durch:

Zitat:
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue or @character.paperdoll
Voila:
Das Charset wird automatisch geupdatet sobald ihr die create_charset-Methode aufruft.
__________________
Zelda- Prince of Darkness

"Das ist nicht tot, was ewig liegt,
bis dass die Zeit den Tod besiegt!"

DOWNLOAD (Stand: 2.12.07)

Geändert von Phantom (18.10.2006 um 12:06 Uhr).
Phantom ist offline   Mit Zitat antworten
Alt 14.10.2006, 20:45   #2
Veyrne Männlich
Administrator
 
Benutzerbild von Veyrne
 
Registriert seit: 24.04.2004
Ort: Blewth Castle
Alter: 30
Beiträge: 13.441
Blog-Einträge: 11
Standard

Tolle Sache. Ich probiere es mal später aus. Damit kann man tatsächlich interessante Sachen machen. Komplexere Charaktererstellung etwa.
__________________

Filehost - Regeln - EBook - Raccu - YouTube - RPGA.info
Secret of Monkey Island (PSP)
Veyrne ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
RPGA.info