Hallo Com!
Ich hätte da wieder ein Problem, wo ich eure Hilfe benötige.
Ich möchte rechts oben auf dem Bildschirm den Inhalt einer Variable anzeigen.
Und das die ganze Zeit.Da würde sich ein Common Event anbieten mit einem Parallel Process.
Nachricht würde so lauten: \v[ID der Variable] (Den Advanced Message Script habe ich schon).
Sowas wird bei HUD gerne benutzt.
Ich hatte mal ein Script dafür, habs aber schon gelöscht gehabt.
Nur wie geht das? (Es soll nur ein kleines Fenster sein)
Ich weiß, dass ich manchmal so viel schreibe, aber ich wollte es ausführlich machen.
Kann mir jemand helfen.
MfG Deamonic
Danke, vielen Dank!
Es funzt und funzt!
Kannst du das Script sogar erweitern?
Ich hätte nämlich gerne ein Icon als Bild auch dabei.
z.B.: für eine Goldanzeige, ein Münzsymbol.
MfG Deamonic
Hmm, mir ist aufgefallen, dass ich das Script nicht gleich am Anfang des Spiels brauche.
Kann man das Script erst später aktivieren, wie bei einem Call-Script?
wähle:
1. wenn du über call script das fenster regeln möchtest
2. wenn du einfach nur einen switch an oder aus schalten willst und damit das fenster zeigst oder versteckst.
1)
du fügst unter Scene_Map
attr_reader :variable
ein.
dann kannst du bei call script über
$scene.variable.visible = true/false
das fenster ein und ausschalten. (true = an, false = aus)
2)
ersetze das script durch das folgende. es ist eigtl das selbe nur halt mit der switch unterstützung.
(in zeile 5 gibt die erste zahl die id der variable und die 2. die id des switches an)
class Scene_Map
alias variable_main main
alias variable_update update
def main
@variable = Window_Variable.new(1,1)
variable_main
@variable.dispose
end
def update
@variable.update
variable_update
end
end
class Window_Variable < Window_Base
def initialize(id,switch)
@id = id
@switch = switch
super(0,0,200,64)
self.contents = Bitmap.new(width-32,height-32)
self.visible = $game_switches[@switch]
refresh
end
def refresh
self.contents.clear
icon = RPG::Cache.icon("032-Item01")
rect = Rect.new(0,0,24,24)
self.contents.blt(0,0,icon,rect)
self.contents.draw_text(30,0,self.contents.width-30,32,$game_variables[@id].to_s,0)
@old_value = $game_variables[@id]
end
def update
super
self.visible = $game_switches[@switch]
refresh if @old_value != $game_variables[@id]
end
end
Mann du bist echt gut!
Es funktioniert schon wieder!
Habs mit der switch-Variante gemacht, weil die leichter zu verstehen ist.
Hab die erste ger nicht durchgelesen. ^^
Ich glaube das wars, mehr gibts nicht zu fragen.
Ich danke dir, dass du mir geholfen hast.
Das einzige, was ich dir bieten kann, ist ein Creditseintrag.
(falls du es möchtest)
MfG Deamonic
Geändert von Rusk (30.04.2009 um 15:25 Uhr)
Grund: Rechtschreibung
Ich bräuchte dieses Skript auch dringend; nur müsste es bei mir 2 Variabeln anzeigen (eine rechts und eine links beispielsweise) und zusätzlich noch einen text vor dem Wert azeigen; kriegst du das hin? oO
Ich wäre dir sehr dankbar ( =
class Scene_Map
alias variable_main main
alias variable_update update
def main
@variable = [
Window_Variable.new(0,0,200,64,1,1,"HP:"),
Window_Variable.new(440,0,200,64,2,1,"MP:"),
Window_Variable.new(0,400,200,64,3,1,"EXP:")
]
variable_main
@variable.each{|var| var.dispose}
end
def update
@variable.each{|var| var.update}
variable_update
end
end
class Window_Variable < Window_Base
def initialize(x,y,w,h,id,switch,text="")
@text = text
@id = id
@switch = switch
super(x,y,w,h)
self.contents = Bitmap.new(width-32,height-32)
self.visible = $game_switches[@switch]
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(0,0,self.contents.width-30,32,@text+$game_variables[@id].to_s,0)
@old_value = $game_variables[@id]
end
def update
super
self.visible = $game_switches[@switch]
refresh if @old_value != $game_variables[@id]
end
end
diese stelle gibt die anzahl und eigenschaften der fenster an.
in diesem beispiel sind es 3 fenster, wenn es mehr oder weniger sein sollen einfach eine zeile löschen oder ein Window_Variable.new(x,y,b,h,vid,sid,text) anfügen.
in den klammern stehen die eigenschaften des fensters.
x = x koordinate
y = y koordinate
b = breite
h = höhe
vid = ID der Variable, die ausgelesen wird
sid = switch ID (ist der switch an, werden die fenster angezeigt)
text = text der vor der variable angezeigt wird (bitte an "" denken, siehe Bsp)
Du verstehst wirklich dein Handwerk; deine Skripts funktionieren ohne Probleme und gleich beim ersten Mal. Ich kann nur sagen: du hast Talent :P
Am besten solltest du dieses Skript mal im Forum präsentieren bzw. fragen ob dus Hochladen kannst, denn dieses Skript können sicher viele gebrauchen
Weiter so und nochmal vielen Dank!
(Ein Creditseintrag ist dir bei meinem SKS auf jeden Fall sicher)