• Anmelden

CosmoMemories

Ankömmling

  • »CosmoMemories« ist der Autor dieses Themas

Motto: Naiv, nicht dumm.

  • Nachricht senden

1

Dienstag, 27. Januar 2009, 17:20

Suche Anzeige-Skript

Da ich leider völlig unbegabt bin, frag ich mal ob mir vielleicht jemand so ein Skript machen könnte:
Ich möchte in einem Fenster des aktuell ausgewählten Window-Skins in der linken oberen Ecke stehen haben:

wie viele Punkte es noch für das nächste Level Up des Hauptcharakters sind (und)
wie viel Währung man besitzt

Im Kampf soll das Fenster nicht angezeigt werden.
Schön wäre es, wenn die Zahlen hochlaufen und nicht hochspringen zb:
von 100 auf 101, 102, 103... usw. bis ...200 (aber ganz schnell natürlich)
anstatt von 100 (ZACK!!) auf 200.

Ich danke im Vorraus. :)
TollEinAndererMachts! :D

RedLink

Landsknecht

Motto: Faulheit ist Relativ

  • Nachricht senden

2

Dienstag, 27. Januar 2009, 19:23

Falls du es ja selbst machen willst.
Kannst es ja auch als Grundlage benutzen.
Das Tutorial
  • Scripter

    Für den MV
  • Mitmacher

    nirgendswo

CosmoMemories

Ankömmling

  • »CosmoMemories« ist der Autor dieses Themas

Motto: Naiv, nicht dumm.

  • Nachricht senden

3

Mittwoch, 28. Januar 2009, 13:39

Die Anzeige würde ich damit ja hinbekommen. Aber es ist nicht genau das, was ich suche.
Wenn du dir meine Angabe nochmal durchliest fällt es dir auf. ;) (Und sag nicht, ich hätte es nicht versucht. Dem ist nicht so.)

EDIT: Ach, kommt schon. Das ist doch nur ein Fenster. Bloß weil ich zu doof bin...
TollEinAndererMachts! :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CosmoMemories« (28. Januar 2009, 20:23)


4

Donnerstag, 29. Januar 2009, 11:01

hab mich mal grad hin gesetzt und das zusammengehackt

Spoiler

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Window_GE < Window_Base
  def initialize()
    super(0,0,200,96)
    self.contents = Bitmap.new(width - 32, height - 32)
    @screen_exp=$game_party.actors[0].exp
    @screen_gold=$game_party.gold
  end 
 
  def update()
    if @screen_gold<$game_party.gold
      @screen_gold+=1
    end
    if @screen_exp<$game_party.actors[0].exp
      @screen_exp+=1
    end
    self.contents.clear
    draw_exp
    draw_gold
  end
 
  def draw_exp
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 24, 32, "E")
    self.contents.font.color = normal_color
    self.contents.draw_text(24, 0, 84, 32, @screen_exp.to_s, 2)
    self.contents.draw_text(108, 0, 12, 32, "/", 1)
    self.contents.draw_text(120, 0, 84, 32, $game_party.actors[0].next_exp_s)
  end
 
  def draw_gold
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = system_color
    self.contents.draw_text(0, 32, cx, 32, $data_system.words.gold)
    self.contents.font.color = normal_color
    self.contents.draw_text(cx+4, 32, self.contents.width-cx-4, 32, @screen_gold.to_s, 2)
 
  end
end

zum Lesen den Text mit der Maus markieren


Damit das ganze auf der Map erscheint müssen wir natürlich noch Scene_Map verändern und zwar fühgen wir zwischen:

Ruby Quellcode

1
2
3
4
5
    # Make message window
    @message_window = Window_Message.new
                                               # <- hier kommt unser code hin
    # Transition run
    Graphics.transition


folgendes ein:

Ruby Quellcode

1
2
    # Make gold/exp window
    @ge_window = Window_GE.new


Damit es so aussieht:

Ruby Quellcode

1
2
3
4
5
6
    # Make message window
    @message_window = Window_Message.new
    # Make gold/exp window
    @ge_window = Window_GE.new
    # Transition run
    Graphics.transition


und damit das ganze auch geupdatet wird fühgen wir in der update funktion (def update) an folgender Stelle:

Ruby Quellcode

1
2
3
4
5
    # Update message window
    @message_window.update
                                                    # <- HIER
    # If game over
    if $game_temp.gameover


das hier ein:

Ruby Quellcode

1
2
    #Update gold/exp windoe
    @ge_window.update


das ganze sollte dann so aussehen:

Ruby Quellcode

1
2
3
4
5
6
    # Update message window
    @message_window.update
    #Update gold/exp windoe
    @ge_window.update
    # If game over
    if $game_temp.gameover


Bleibt noch das Schlusswort:
Bei dieser Lösung wird der Text bei jedem Frame neu geschrieben und außerdem auch noch überprüft ob es eine Änderung gegeben hat. Das könnte man natürlich performanter regeln, wenn man das ganze nur aufruft, wenn sich am Gold bzw. an den Erfahrungspunkten was geändert hat. Das wäre aber ne ganze Nummer aufwendiger und da meine Zeit mehr wert ist als die Rechenzeit eurer Computern... Falls du irgendwann mal Performanceprobleme hast - und auch schon nen Stück Projekt aufzuweisen, damit ich weiß das ichs nich umsonst mache - lasse ich mich vielleicht übrreden es schöner zu machen. Wobei die Performance meist an den Events hängt und nicht am RGSS...
Außerdem werden Erfahrungspunkte und Gold, welche im Kampf gewonnen wurden (außer du nutzt ein AKS) nicht hochgezählt sondern sind einfach da. Das ließe sich mit einer globalen variable oder so sicherlich noch ändern...

Viel Spaß damit. Wenn was nich klapt einfach mal rummosern...

CosmoMemories

Ankömmling

  • »CosmoMemories« ist der Autor dieses Themas

Motto: Naiv, nicht dumm.

  • Nachricht senden

5

Donnerstag, 29. Januar 2009, 19:40

Danke!
Allerdings gibt es ein kleines Problem wenn man das Menü aufruft. ;)
Das Fenster verschwindet erst nach einiger Zeit.
Auch wenn die Zahlen hochspringen, ist es fehlerhaft.

Müsste also noch etwas überarbeitet werden.
Schließlich sollte es in Kämpfen und beim Menüaufruf verschwinden, tut es aber nicht.
TollEinAndererMachts! :D

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »CosmoMemories« (29. Januar 2009, 20:06)


6

Donnerstag, 29. Januar 2009, 23:24

ja hm.. hab ich vergessen... werd ich morgen oder übermorgen fixen.
oder du kannst auch kuken ob dus selbst hin kriegst. du könntest zB. mal suchen wo sowas steht wie:

Ruby Quellcode

1
@message_window.dispose

und dann da einfach mal

Ruby Quellcode

1
@ge_window.dispose

drunter schreiben...

CosmoMemories

Ankömmling

  • »CosmoMemories« ist der Autor dieses Themas

Motto: Naiv, nicht dumm.

  • Nachricht senden

7

Montag, 23. Februar 2009, 20:50

Nicht gefunden, tut mir Leid.
Machst du das noch mal irgendwann oder...??
TollEinAndererMachts! :D

8

Donnerstag, 26. Februar 2009, 15:22

kuk nochmal! In der main Funktion von der Scene_map steht relativ weit unten:

Ruby Quellcode

1
2
# Dispose of message window
@message_window.dispose


da drunter einfach

Ruby Quellcode

1
@ge_window.dispose

schreiben.

Das mit den Zahlen musst du noch etwas genauer beschreiben. Das sieht bei mir eigentlich gut aus.
Sorry das ich dich vergessen hab...

CosmoMemories

Ankömmling

  • »CosmoMemories« ist der Autor dieses Themas

Motto: Naiv, nicht dumm.

  • Nachricht senden

9

Samstag, 28. Februar 2009, 19:24

Danke, das reicht vollkommen aus!
TollEinAndererMachts! :D

Ähnliche Themen

Social Bookmarks