Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

1

Freitag, 7. April 2017, 14:44

[Erledigt] Eigenes Message-Fenster erstellen

Hallo! XD

Ich habe mir so gedacht, dass man dieses Problem hier doch eigentlich auch "ganz einfach" lösen können müsste, wenn ich mir ein zweites Messages-Window bastel...
Aber so einfach scheint das nicht so sein.
Mithilfe dieses Tuts habe ich es zumindest schonmal geschafft, ein Fenster anzuzeigen.
Jetzt bin ich aber schon wieder zu doof, um alleine weiterzukommen.

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
#  
#==============================================================================
class Window_text < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.draw_text( 0, 0, 128, 32, "Hallo Welt." )
  end
end


Also, das schicke Teil zeigt oben links ein Fenster mit "Hallo Welt" an.
Das ist nicht so ganz das, was ich erreichen wollte.
Ich würde gerne die Größe des Fensters automatisch an den Inhalt des Textes anpassen lassen (fitting-window wie beim UMS) und ich würde natürlich gerne spontan im Event erst einsetzen, was in dem Fenster stehen soll (per Scriptbefehl, dachte ich). Zudem sollte das Fenster automatisch über dem Kopf eines NPCs erscheinen und sich gegebenenfalls auch mit ihm mitbewegen.

Wenn ich jetzt also statt

self.contents.draw_text( 0, 0, 128, 32, "Hallo Welt." )

sowas eintrage:

self.contents.draw_text( 0, 0, x, y, "" )

funktioniert das natürlich nicht, weil es sich auch nicht aufs Fenster bezieht, ich müsste das irgendwie bei Super anzeigen. Aber kann ich dem Script an der Stelle auch keine Zahlen übergeben und die Werte dann irgendwie im Scriptaufruf füllen, bzw sie automatisch fitten lassen? Ich würde gerne im Scriptaufruf "Window_text.new" vorher die Werte festlegen- am besten eben x und y richten sich nach Textlänge.
Mit Variablen könnte ich zumindest die Größe und Position des Fensters anpassen

Ruby Quellcode

1
2
3
4
5
  def initialize
    super($game_variables[3], $game_variables[4], $game_variables[1], $game_variables[2])
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end

aber an den Text angepasst ist das natürlich nicht immer- da müsste ich dann immer mitzählen, wieviele Buchstaben mein Text hat- UND das Fenster ist dann zwar über einem Event (wenn ich alles richtig mache), bewegt sich jedoch nicht mit diesem mit.
Zumindest kann ich aber mehrere Fenster öffnen, wie es scheint (nur gehen sie alle gleichzeitig wieder zu XD)

Auuuuußerdem weiß ich nicht, wie ich das Fenster wieder schließen kann, bzw, wie ich verhindere, dass es selbst zugeht. Es sollte offen bleiben, bis ich per Scriptbefehl die Erlaubnis zum zugehen erteile XD


Kurz:
- Fenster soll sich an Inhalt anpassen (notfalls mit Variablen und Buchstaben zählen, evtl kann man das auch aus dem UMS extrahieren?)
- Fenster schwebt über einem Event und bewegt sich mit diesem mit (notfalls mit Variablen und parallelprocess- keine Ahnung, wie es sonst gehen sollte)
- Inhalt sollte im Scriptbefehl erst festgelegt werden (keine Ahnung wie)
- Fenster geht erst auf Befehl wieder zu

Ich würde mich über ein bisschen Nachhilfe freuen :D
Vielleicht reicht es schon, mir zu sagen, in welchem Script ich nach Hinweisen suchen soll, bzw wo ich die richtigen Bausteine finde :3
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Josey« (13. April 2017, 16:37)


2

Sonntag, 9. April 2017, 14:28

Du kannst die Breite eines Strings, den er im Fenster bräuchte mit der Methode Bitmap#text_size bestimmen. Ein Beispiel gibt es im Window_Gold, wo der benötigte Platz für den Währungsnamen bestimmt wird. Findet man auch im Wiki Informationen_in_Fenstern_anzeigen#Gold

Angenommen Du hast deinen Text, den Du anzeigen möchtest in der Variable text_den_ich_anzeigen_möchte und der Text enthält mehrere Zeilen, dann trennst Du diesen erstmal an den Zeilenumbrüchen auf:

Ruby Quellcode

1
text_zeilen = text_den_ich_anzeigen_möchte.split("\n")

Und dann guckst Du einfach mal, wieviel Platz Du mindestens brauchst. Für die Höhe musst Du Zeilenhöhe mal Zeilenanzahl einplanen:

Ruby Quellcode

1
text_höhe = text_zeilen.length * 32

Für die Breite guckst Du einfach, welche Zeile am längsten ist und nimmst deren benötigten Platz:

Ruby Quellcode

1
2
3
4
5
text_breite = 0
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end

Nachdem Du die Werte berechnet hast, wirfst Du erstmal dein altes Content-Bitmap weg und erzeugst dir eins in der passenden Größe. Falls dein Text leer war, wäre das allerdings Breite=0, Höhe=0 was nicht funktioniert. Wir sichern uns also vorher noch schnell ab und erzeugen dann das Content-Bitmap.

Ruby Quellcode

1
2
3
4
text_breite = 1 if text_breite == 0
text_höhe = 1 if text_höhe == 0
self.contents.dispose
self.contents = Bitmap.new( text_breite, text_höhe )

Und nachdem wir jetzt das passende Bitmap haben, müssen wir ja noch das Fenster resizen:

Ruby Quellcode

1
2
self.width = text_breite + 32
self.height = text_höhe + 32

Die Fenstergröße entspricht der Textgröße plus 16 Pixel Fensterrahmen auf jeder Seite.
Wenn Du das in deine Methode refresh übernimmst, wird er jedes mal das Fenster auf die benötigte Breite ändern.

Soweit so gut. Nur woher kommt der Text?
Am besten legst Du dir eine eigene Variable dafür an. Erweitern wir dafür doch Game_Temp:

Ruby Quellcode

1
2
3
class Game_Temp
  attr_accessor :extra_message_text
end

Dann kannst Du in deinem CallScript schreiben:

Ruby Quellcode

1
$game_temp.extra_message_text = "Hallo Welt.\nIch bin Josey.\n"


Und in dein Fenster kannst Du bei refresh schreiben:

Ruby Quellcode

1
2
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n")


Soweit schonmal ein bisschen was zum Ausprobieren. Für die weiteren Fragen müsstest Du mal zeigen, wie und wo Du das Fenster erstellst und anzeigst.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

3

Sonntag, 9. April 2017, 19:01

Danke für deine Hilfe und Erklärung! :D

So, nach einigem editieren udn hin und her bin ich soweit, dass ich jetzt diesen Fehler ausgespuckt kriege, wenn ich das Fenster aufrufen will:

---------------------------
Script 'Window' line 30: NoMethodError occurred.

undefined method `text_size' for nil:NilClass
---------------------------

Wieso ist text_size nil, das verstehe ich nicht? :< Das wird doch gefüllt vom Callscript? >_> Oder nicht?
Weiß mein Script etwa nicht, was "Zeile" ist? Wie definiere ich das? Er scheint "Zeile" nicht zu erkennen XD°
Auch wenn ich statt Zeile irgendetwas anderes eingebe (in "" oder auch ohne >_>) kommt derselbe Fehler :<

Im UMS sieht das Fitting (fast) genauso aus, ich hab irgendwo was falsch gemacht, komm aber nicht drauf T____T

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
      # Resize the window to fit the contents?
      if $game_system.ums_mode == FIT_WINDOW_TO_TEXT
        width = 1
        text = @text.split("\n")
        height = 0
        i = 0
        for line in text
          # don't count this line's width if it has the ignr code
          if !line.include?("\023")
            width = [width, self.contents.text_size(line).width].max
            delta = self.contents.text_size(line).height
            height += delta + (delta * 0.2).to_i
          end
        end



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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
#  
#==============================================================================
  #--------------------------------------------------------------------------
  # * Game_Temp Erweiterung
  #--------------------------------------------------------------------------  
class Game_Temp
  attr_accessor :extra_message_text
end 
 
 
 
class Window_text < Window_Base
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n") # Zeilenumbrüche
 
text_höhe = text_zeilen.length * 32 # Für die Höhe Zeilenhöhe mal Zeilenanzahl einplanen
 
text_breite = 0 # welche Zeile ist am längsten
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end
 
text_breite = 1 if text_breite == 0 # Absichern, falls 0
text_höhe = 1 if text_höhe == 0
 
self.contents.dispose # neues angepasstes self.content, Bitmap erzeugen
self.contents = Bitmap.new( text_breite, text_höhe )
 
 
#    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
 
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
self.width = text_breite + 32 # Fenster erzeugen, an Text anpassen
self.height = text_höhe + 32
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n")
 
 
#    self.contents.draw_text( 0, 0, 128, 32, "Hallo Welt." )
 
  end
 
 
end
zum Lesen den Text mit der Maus markieren
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (9. April 2017, 18:28)


4

Montag, 10. April 2017, 00:49

Hoppla. Hihi, dein Script sieht aus als hättest Du es kräftig durchgeschüttelt. Alle Zeilen sind richtig, sie sind nur etwas verrutscht.

Die Fehlermeldung sagt dir, dass self.contents leider nil ist und deswegen keine Methode text_size kennt.
Nimm mal Zeile 23 bis 38 und schieb die in die Methode refresh, wo der Anfang der Sequenz schon stand.
Die beiden Zeilen mit self.width und self.height aus der Methode refresh schiebst Du dann ans Ende der Methode. Abschließend das auskommentierte self.contents= in der Methode inititalize wieder rein nehmen. Das brauchst Du vor dem refresh noch.

Ruby Quellcode

41
42
#    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
:arrow:

Ruby Quellcode

41
42
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh


Dann sollte es eigentlich passen.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

5

Montag, 10. April 2017, 01:37

Oh, das sollte alles in refresh? XD°
Ups.
Alles klar, ich hab den Satz "wenn du das in refresh übernimmst" nur auf das Letzte bezogen >_>

Naja, zumindest ist das Fenster jetzt da XD
Aber es bleibt leer (wenn es sich auch eindeutig an den Text anpasst, also wird der wohl erkannt?). o.o
Hab ich noch was übersehen?

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
#  
#==============================================================================
  #--------------------------------------------------------------------------
  # * Game_Temp Erweiterung
  #--------------------------------------------------------------------------  
class Game_Temp
  attr_accessor :extra_message_text
end 
 
 
 
class Window_text < Window_Base
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
 
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n") # Zeilenumbrüche
 
text_höhe = text_zeilen.length * 32 # Für die Höhe Zeilenhöhe mal Zeilenanzahl einplanen
 
text_breite = 0 # welche Zeile ist am längsten
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end
 
text_breite = 1 if text_breite == 0 # Absichern, falls 0
text_höhe = 1 if text_höhe == 0
 
self.contents.dispose # neues angepasstes self.content, Bitmap erzeugen
self.contents = Bitmap.new( text_breite, text_höhe )
 
self.width = text_breite + 32 # Fenster erzeugen, an Text anpassen
self.height = text_höhe + 32
 
 
#    self.contents.draw_text( 0, 0, 128, 32, "Hallo Welt." )
 
  end
 
 
end
zum Lesen den Text mit der Maus markieren

Muss ich noch was mit "draw_text" machen?

Wenn ich das hier mache:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
#  
#==============================================================================
  #--------------------------------------------------------------------------
  # * Game_Temp Erweiterung
  #--------------------------------------------------------------------------  
class Game_Temp
  attr_accessor :extra_message_text
end 
 
 
 
class Window_text < Window_Base
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
 
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n") # Zeilenumbrüche
 
text_höhe = text_zeilen.length * 32 # Für die Höhe Zeilenhöhe mal Zeilenanzahl einplanen
 
text_breite = 0 # welche Zeile ist am längsten
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end
 
text_breite = 1 if text_breite == 0 # Absichern, falls 0
text_höhe = 1 if text_höhe == 0
 
self.contents.dispose # neues angepasstes self.content, Bitmap erzeugen
self.contents = Bitmap.new( text_breite, text_höhe )
 
self.width = text_breite + 32 # Fenster erzeugen, an Text anpassen
self.height = text_höhe + 32
 
 
    self.contents.draw_text( 0, 0, text_breite, text_höhe, text_den_ich_anzeigen_möchte )
 
  end
 
 
end
zum Lesen den Text mit der Maus markieren

Wird der Text zwar angezeigt, aber die Zeilenumbrüche nicht erkannt o.o

Außerdem verschwindet das Fenster wieder von allein. Muss ich irgendwie ein Scene einrichten, damit ich es per Event-Befehl verschwinden lassen kann und verhindern kann, dass es einfach von allein zugeht?
Wieso geht das Fenster überhaupt alleine zu? Woher nimmt das Script die Zeitangabe, wann es das (angeblich) tun soll und wieso tut es das überhaupt?
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

6

Montag, 10. April 2017, 20:48

Das Fenster verschwindet, weil Ruby nichtmehr benötigte Objekte wegwirft, um Speicherplatz frei zu machen für Neues.
Ruby erkennt, dass ein Objekt (zum Beispiel dein Window) nichtmehr benutzt wird, wenn es keine sogenannte Referenz darauf gibt. Das bedeutet, wenn keine Variable mehr darauf verweißt. Damit sind aber nicht nur die Spielvariablen $game_variables gemeint, sondern alle Variablen im Programm.

Vermutlich speicherst Du dein Fenster noch nicht in einer Variable, oder speicherst es in einer lokalen Variable, die nach dem Ausführen des CallScripts verfällt. Das Message Window wird in der Scene_Map gespeichert, dort könntest Du auch dein Extrafenster speichern. Dafür braucht es nicht mehr als das:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
class Scene_Map
  attr_reader :extra_window
  alias_method( :org_ini_wo_extra_window, :initialize )
  def initialize
    @extra_window = []
    org_ini_wo_extra_window
    @extra_window.each{ |window| window.dispose }
  end
end

Dann kannst Du im Interpreter schreiben:

Ruby Quellcode

1
$scene.extra_window[1] = Window_text.new


Nun aber zum Fenster selber. Ja, den Text musst Du noch selber zeichnen. Allerdings unterstützt draw_text von sich aus keine Zeilenumbrüche. Du musst also jede Zeile einzeln zeichnen, da kannst Du wieder mit einer for-Schleife über alle Zeilen laufen und dann nur diese Zeile drawen. Denk daran, dir eine lokale Variable draw_y zu besorgen, die dir immer sagt an welche Y-Position die aktuelle Zeile in der for-Schleife gezeichnet werden muss.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

7

Montag, 10. April 2017, 21:01

Alles klar, ich brauch also wirklich eine Scene :D
Jetzt hab ich mir das eingebaut, aber scheinbar hab ich schon wieder einen Denkfehler. :/
Ich denke, ich hab den Interpreter noch nicht durchschaut, was ist da falsch?
Fehlt ein "def" für irgendwas?

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
#  
#==============================================================================
  #--------------------------------------------------------------------------
  # * Game_Temp Erweiterung
  #--------------------------------------------------------------------------  
class Game_Temp
  attr_accessor :extra_message_text
end 
 
 
 
class Window_text < Window_Base
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
 
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n") # Zeilenumbrüche
 
text_höhe = text_zeilen.length * 32 # Für die Höhe Zeilenhöhe mal Zeilenanzahl einplanen
 
text_breite = 0 # welche Zeile ist am längsten
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end
 
text_breite = 1 if text_breite == 0 # Absichern, falls 0
text_höhe = 1 if text_höhe == 0
 
self.contents.dispose # neues angepasstes self.content, Bitmap erzeugen
self.contents = Bitmap.new( text_breite, text_höhe )
 
self.width = text_breite + 32 # Fenster erzeugen, an Text anpassen
self.height = text_höhe + 32
 
 
    self.contents.draw_text( 0, 0, text_breite, text_höhe, text_den_ich_anzeigen_möchte )
#    self.contents.draw_text( 0, 0, 128, 32, "Hallo Welt." )
 
  end
 
 
end
 
class Scene_Map
  attr_reader :extra_window
  alias_method( :org_ini_wo_extra_window, :initialize )
  def initialize
    @extra_window = []
    org_ini_wo_extra_window
    @extra_window.each{ |window| window.dispose }
  end
end
 
 
class Interpreter
  $scene.extra_window[1] = Window_text.new
end  
zum Lesen den Text mit der Maus markieren

Sorry, dass ich so auf dem Schlauch stehe ._.


Zu der Sache mit dem Text:
Du meinst damit, dass ich jede Zeile in ein extra-Callscript reinschiebe, ja? Und mit der Variable "draw_y" kann ich verhindern, dass die Zeilen aufeinander gezeichnet werden, stattdessen würden sie damit untereinander gezeichnet.
Aber ich habe noch nicht verstanden, wie ich das mache. Im Script? Im Callscript? Wie sage ich dem Script dann, dass es jedes der Callscripts beachten muss? (Ich bin Niveautechnisch immer noch bei If-Abfragen XD°)
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

8

Montag, 10. April 2017, 21:17

Whoops. Was hab ich denn da geschrieben. Ich meinte in Wirklichkeit, dass Du

Ruby Quellcode

1
$scene.extra_window[1] = Window_text.new
in das CallScript schreiben kannst. Also da, wo ich annehme, dass Du auch bisher dein Fenster erzeugt hast.

Zum Text: In der Methode refresh, hast Du ja schon eine Zeile draw_text. Dort an dieser Stelle machst Du jetzt das zeilenweise drawen.

Ruby Quellcode

55
56
57
58
59
draw_y = 0
for zeile in text_zeilen
  self.contents.draw_text( 0, draw_y, text_breite, 32, zeile )
  draw_y += 32
end


Dann zeichnet dir das Fenster deinen Text zeilenweise, berücksichtigt also die Zeilenumbrüche, die in der Variable $game_temp.extra_message_text enthalten sind.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

9

Dienstag, 11. April 2017, 12:44

Alles klar, das Fenster geht wieder auf :D
Aber wie krieg ich es nun zu?
Window_text.dispose funktioniert jedenfalls nicht :< (klang für mich logisch XD°)

:D
Es klappt! Ich bin so begeistert!! XD *herumrenn*
Vielen Dank! :D
Wieso erkennt der Befehl denn plötzlich \n?


Ich schreib mal noch die letzten Probleme hin: Die Position des Fensters und das seperate Schließen.
- Es ist zwar möglich, mehrere Fenster mit verschiedenen Texten zu öffnen, aber wenn ich sie dann schließe, würden alle Fenster gleichzeitig geschlossen, oder?
-> Ich kann immer nur ein Fenster "speichern" das andere schließt nach einer Weile
- Die Position des Fensters kann ich mit Variablen bestimmen- soweit so gut. Wie aber sorge ich dafür, dass so ein Fenster einem NPC folgen würde (also immer über ihm schwebt, wenn er sich bewegt?) Und wie sage ich dem Script, welches der Fenster die ich mit verschiedenen Texten gefüllt habe, sich bewegen soll?

Kann ich das irgendwie mit einer Variable durchnummerieren und dann so Werte durchgeben? (So könnte ich auch bestimmen, welches Fenster geschlossen werden soll und welches sich bewegen soll [wie auch immer ich das hinkriege])
Wäre es einfacher das Script mehrmals zu verwenden mit jeweils anderer definition? Window_text1 und Window_text2?
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Josey« (11. April 2017, 12:44)


10

Dienstag, 11. April 2017, 13:05

Bin gerade auf dem Sprung, deswegen nur fix ein paar Dinge zum Weiterdenken.
Heute Abend schreibe ich mehr.

Ruby Quellcode

1
2
3
$scene.extra_window[1] = Window_text.new
$scene.extra_window[2] = Window_text.new
$scene.extra_window[2].y = 240

@>Wait: 40 Frames

Ruby Quellcode

1
$scene.extra_window[1].dispose

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

11

Dienstag, 11. April 2017, 15:54

\o/
Abgefahren XD
Auf die Idee die Zahl zu ändern bin ich nicht gekommen XD
Das öffnen und schließen klappt super- auch hier hatte ich dann wohl den falschen Befehl.

Okay, zu dem, was ich versuchen will: Das Fenster soll seine Position dynamisch ändern können und sich immer über dem Kopf des NPCs befinden.
$scene.extra_window[2].y = 240 funktioniert auf jeden Fall, auch kann ich eine Variables übergeben, statt einer festen Zahl. Aber müsste ich jetzt das Fenster ständig neu disposen und neu aufrufen? Oder kann ich mit einem refresh das Fenster neu positionieren (je nach Moveroute des Charakters, ohne, dass das Fenster zwischendurch verschwindet)?

Um die Events herauszufiltern, die ein Window über dem Kopf haben sollen, hätte ich das hier:

...edit...


Wenn ich es irgendwie sinnvoll verbinden kann, dass das Script die Koordinaten (+ Höhe des NPCs und dann muss die Textbox ja mittig über diesem schweben) eines Events berechnen und immer updaten kann, kann man mit [id] dann einen Namen festlegen, der pro Fenster gesucht werden kann (so müsste die ID des Events nicht extra bekannt sein, wäre für mich sinnvoller).

Also im Scriptcall etwas wie:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
$game_temp.extra_message_text = 
"Lululululu.\nLalala.\n"
 
id=get_eventid_by_name("Basil") #Event-ID-Berechnung
$game_map.events[id].???? # Script ruft automatisch die X+Y Koordinaten auf (+ irgendwas, damit es über und mittig des Events schwebt) und übergibt die Koordinaten an Variablen 3 und 4
 
$scene.extra_window[2] = 
Window_text.new
$scene.extra_window[2].x = 
$game_variables[3]
$scene.extra_window[2].y = 
$game_variables[4]


Und dann irgendwie ständig updaten :<
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Josey« (11. April 2017, 23:30)


12

Dienstag, 11. April 2017, 20:36

Ständig updaten ist doch eine super Idee. Wieso soll unsere Scene_Map nicht alle Extra-Windows updaten? Tut sie mit dem Messagewindow ja auch.

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Scene_Map
  attr_reader :extra_window
  alias_method( :org_ini_wo_extra_window, :initialize )
  def initialize
    @extra_window = []
    org_ini_wo_extra_window
    @extra_window.each{ |window| window.dispose }
  end
  alias_method( :org_update_wo_extra_window, :update)
  def update
    org_update_wo_extra_window
    @extra_window.each{ |window| window.update }
  end
end

Jetzt muss das extra Fenster von uns, sich nurnoch darum kümmern ein Event zu verfolgen. Wieso geben wir dem Window_text nicht ein Attribut @target, was dem Fenster sagt: Hey, hier ist ein Event - lauf dem hinterher.

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Window_text < Window_Base
 
  attr_accessor :target
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    @target = nil # Bei Start noch kein Target
    refresh
  end
 
  ... restliche Methoden und Zeug


Und dann fehlt natürlich die Updatemethode, die dein Fenster immer zum Target-Event schiebt:


Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Window_text < Window_Base
 
  attr_accessor :target
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    @target = nil # Bei Start noch kein Target
    refresh
  end
 
  def update
    if @taget.is_a? Game_Character
      self.x = @target.screen_x - (self.width / 2)
      self.y = @target.screen_y - self.height
    end
  end
 
  ... restliche Methoden und Zeug der Klasse Window_text


Kann man mal ausprobieren als CallScript:

Ruby Quellcode

1
2
3
4
5
6
7
$game_temp.extra_message_text = 
"Lululululu.\nLalala.\n"
 
id=get_eventid_by_name("Basil") #Event-ID-Berechnung
 
$scene.extra_window[2] = Window_text.new
$scene.extra_window[2].target = get_character(id)


Schusseliger-Playm-Disclaimer: Habe den ganzen Quellcode hier im Beitragseditor geschrieben. Es könnten sich ein paar Rechtschreibfehler eingeschlichen haben, wodurch das Script nicht sauber läuft.


Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

13

Dienstag, 11. April 2017, 21:05

Hey! :D
Startet alles wunderbar, nix mit schusseliger Playm! :D
Aber ich krieg einen Fehler mit dem Event-Name Script o.o

---------------------------
Script 'Event_ID_by_Name by StorMeye' line 5: NoMethodError occurred.

undefined method `name' for #<Game_Event:0x2a3d8d8>
---------------------------

Kann es sein, dass das Script nicht vollständig ist und ich vergessen habe, etwas zu kopieren, oder habe ich was falsch gemacht?

Wenn ich stat "id" die Event-ID direkt eintrage, bekomme ich den Fehler:

---------------------------
Script 'Window' line 92: NoMethodError occurred.

undefined method `update' for nil:NilClass
---------------------------

Woah, überfordert XD
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

14

Dienstag, 11. April 2017, 21:10

Ah, ändere mal die Zeile

Ruby Quellcode

1
    @extra_window.each{ |window| window.update }
in

Ruby Quellcode

1
    @extra_window.each{ |window| window.update if window and not window.disposed? }


Und bei deinem Eventname-Script fehlt vermutlich diese Definition

Ruby Quellcode

1
2
3
4
5
class Game_Event
  def name
    @event.name
  end
end
Die war vermutlich vorgesehen, aber hat es nicht rüber in dein Projekt geschafft.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

15

Dienstag, 11. April 2017, 22:19

Ich such die Stelle mal im anderen Projekt- evtl wurde es dort direkt in Game_Event eingebaut >_>
*schluderei*

Jetzt wird das Fenster angezeigt, aber immer oben in der Ecke. :/

Nochmal zum Vergleich, mein Script:

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
#  
#==============================================================================
  #--------------------------------------------------------------------------
  # * Game_Temp Erweiterung
  #--------------------------------------------------------------------------  
class Game_Temp
  attr_accessor :extra_message_text
end 
 
 
 
class Window_text < Window_Base
 
  attr_accessor :target
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
#    super($game_variables[3], $game_variables[4], 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    @target = nil # Bei Start noch kein Target
 
    refresh
  end
 
 
   def update # bringt das Fenster immer zum Event
    if @taget.is_a? Game_Character
      self.x = @target.screen_x - (self.width / 2)
      self.y = @target.screen_y - self.height
    end
  end
 
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n") # Zeilenumbrüche
 
text_höhe = text_zeilen.length * 32 # Für die Höhe Zeilenhöhe mal Zeilenanzahl einplanen
 
text_breite = 0 # welche Zeile ist am längsten
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end
 
text_breite = 1 if text_breite == 0 # Absichern, falls 0
text_höhe = 1 if text_höhe == 0
 
self.contents.dispose # neues angepasstes self.content, Bitmap erzeugen
self.contents = Bitmap.new( text_breite, text_höhe )
 
self.width = text_breite + 32 # Fenster erzeugen, an Text anpassen
self.height = text_höhe + 32
 
draw_y = 0
for zeile in text_zeilen
  self.contents.draw_text( 0, draw_y, text_breite, 32, zeile )
  draw_y += 32
end
#    self.contents.draw_text( 0, 0, text_breite, text_höhe, text_den_ich_anzeigen_möchte )
#    self.contents.draw_text( 0, 0, 128, 32, "Hallo Welt." )
 
  end
 
 
end
 
 
 
class Scene_Map
  attr_reader :extra_window
  alias_method( :org_ini_wo_extra_window, :initialize )
  def initialize
    @extra_window = []
    org_ini_wo_extra_window
    @extra_window.each{ |window| window.dispose }
  end
  alias_method( :org_update_wo_extra_window, :update)
  def update
    org_update_wo_extra_window
    @extra_window.each{ |window| window.update if window and not window.disposed? }
  end
end
zum Lesen den Text mit der Maus markieren


Das ID-Aufrufescript:
editiert...



Mein Callscript:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
$game_temp.extra_message_text = 
"Lululululu.\nLalala.\n"
 
id=get_eventid_by_name("Dummy") 
#Event-ID-Berechnung
 
$scene.extra_window[2] = 
Window_text.new
$scene.extra_window[2].target = 
get_character(id)


Hab ich einen Fehler drin? *BrettvormKopf*
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (11. April 2017, 23:30)


16

Dienstag, 11. April 2017, 22:55

Upps. Nix mit schusseliger Playm? Aber Hallo. Schau mal in Zeile 33:

Ruby Quellcode

33
    if @taget.is_a? Game_Character

Da sollte eigentlich @target stehen.

Und wenn Du eh schon am fixen bist, ergänz in Zeile 35 mal ein -48

Ruby Quellcode

35
      self.y = @target.screen_y - self.height - 48

Dann sieht es hübscher aus.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

17

Mittwoch, 12. April 2017, 00:46

\o/
Das. Ist. Awsome! XD
Genau so wollte ich es! Vielen vielen vielen Dank! :D
(Jetzt kann ich einen der UMS-Threadts schließen und davon losgelößt funktioniert es auch! XD)

Einmal für alle: Hier das Script für ein Fenster, dass über einem NPC herumschwebt und ihm folgt:

Spoiler: Message-Window-Follow-Event

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#==============================================================================
# ** Window_text
#------------------------------------------------------------------------------
# Playm & Josey
# http://www.rpg-studio.org
# Einfache Nutzung in nicht-kommerziellen  RMXP  Projekten ist gestattet.
# Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden.
# Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet.
#==============================================================================
# Nutzung:
# Ein Callscript mit folgendem Inhalt:
#
# $game_temp.extra_message_text = "Text.\nText\n"  
#
# $scene.extra_window[x] = Window_text.new
# $scene.extra_window[x].target = get_character(Event_ID)
#
# \n steht dabei für Zeilenumbrüche und sind Optional
# x ist die Nummer des Windows
# Event_ID wird mit der ID des Events ersetzt, über dem das Window schweben soll
#
# Geschlossen wird das Fenster mit einem Callscript:
# $scene.extra_window[x].dispose
#==============================================================================
 
  #--------------------------------------------------------------------------
  # * Game_Temp Erweiterung
  #--------------------------------------------------------------------------  
class Game_Temp
  attr_accessor :extra_message_text
end 
 
class Window_text < Window_Base
 
  attr_accessor :target
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    @target = nil # Bei Start noch kein Target
    refresh
  end
 
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
   def update # bringt das Fenster immer zum Event
    if @target.is_a? Game_Character
      self.x = @target.screen_x - (self.width / 2)
      self.y = @target.screen_y - self.height  - 48
    end
  end
 
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
 
text_den_ich_anzeigen_möchte = $game_temp.extra_message_text
text_zeilen = text_den_ich_anzeigen_möchte.split("\n") # Zeilenumbrüche
 
text_höhe = text_zeilen.length * 32 # Für die Höhe Zeilenhöhe mal Zeilenanzahl einplanen
 
text_breite = 0 # welche Zeile ist am längsten
for zeile in text_zeilen
  zeilen_breite = self.contents.text_size( zeile ).width
  text_breite = zeilen_breite if zeilen_breite > text_breite
end
 
text_breite = 1 if text_breite == 0 # Absichern, falls 0
text_höhe = 1 if text_höhe == 0
 
self.contents.dispose # neues angepasstes self.content, Bitmap erzeugen
self.contents = Bitmap.new( text_breite, text_höhe )
 
self.width = text_breite + 32 # Fenster erzeugen, an Text anpassen
self.height = text_höhe + 32
 
draw_y = 0
    for zeile in text_zeilen
      self.contents.draw_text( 0, draw_y, text_breite, 32, zeile )
      draw_y += 32
    end 
  end
end
 
class Scene_Map
  attr_reader :extra_window
  alias_method( :org_ini_wo_extra_window, :initialize )
  def initialize
    @extra_window = []
    org_ini_wo_extra_window
    @extra_window.each{ |window| window.dispose }
  end
  alias_method( :org_update_wo_extra_window, :update)
  def update
    org_update_wo_extra_window
    @extra_window.each{ |window| window.update if window and not window.disposed? }
  end
end
zum Lesen den Text mit der Maus markieren


Bei dem Get-Event-ID-By-Name-Script weiß ich nicht, wie StorMeye dazu steht, ob das von anderne benutzt werden darf, oder nicht. Oben editiere ich es also erstmal auch wieder raus :3


Hast du Zeit mir noch ein paar Verständnisfragen zu beantworten? :3

Spoiler
-Manchmal sehe ich ein ? irgendwo und es scheint teil des Ruby-Codes zu sein. Wann verwendet man es?
- das "is_a?" ist scheinbar auch direkt ruby. Wozu benutzt man es allgemein?
- Worauf bezieht sich "self." wenn ich es verwende?
- Wozu hast du extra eine alias-Methode in der Scene_Map gebaut? Die ist doch nur, damit man später faul sein kann, oder?
zum Lesen den Text mit der Maus markieren



Kurze Frage noch direkt zum Script: Ich bekomme eine Fehlermeldung, wenn ich ein Window_text disposen will, dass nicht da ist. Kann man das irgendwie abfedern oder kann ich in einem CB irgendwie fragen, ob das Window aktuell existiert (und es dann im CB disposen)?
Da läuft ein PP-Event mit einer Unterhaltung durch und deswegen weiß ich nicht, welches der beiden Fenster aktuell offen ist.
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Josey« (12. April 2017, 01:19)


18

Mittwoch, 12. April 2017, 01:04

Zur letzten Frage schonmal:

Ruby Quellcode

1
2
w = $scene.extra_window[x]
w.dispose if w and not w.disposed?


Und dann beantworten wir doch direkt mal, was das Fragezeichen ist. In Ruby können Methodennamen außer Buchstaben auch die Sonderzeichen ! und ? enthalten. Für den Rubyinterpreter haben diese keinerlei Bedeutung, aber sie helfen dem Menschen, der den Quellcode sieht zu erraten, was die Methode tut. In Ruby ist es Konvention, dass eine Methode die auf ein Fragezeichen endet einen Wahrheitswert (true/false) zurückgibt. Eine Methode die auf ein Ausrufezeichen endet tut etwas wichtiges, was der Programmierer für sein Programm beachten sollte oder etwas destruktives, indem es das Objekt, dass die Methode aufruft stark verändert. Zwei Beispiele dazu:

Die Methode String#downcase gibt eine Kopie des Strings in Kleinbuchstaben zurück. Das Original bleibt dabei wie es war erhalten. Die Methode String#downcase! verändert den ursprünglichen String indem es alle Buchstaben durch Kleinbuchstaben ersetzt. Das Original ist danach verändert und nichtmehr wie es war. Das Ausrufezeichen verrät uns, dass hier unser Objekt maßgeblich verändert wird.

Die Methode Window#disposed? liefert uns true zurück, wenn das Fenster bereits entfernt wurde und false, wenn das Fenster noch nicht entfernt wurde. Das Fragezeichen ist ein Hinweis, dass die Methode einen Wahrheitswert zurückliefert.

Zitat

das "is_a?" ist scheinbar auch direkt ruby. Wozu benutzt man es allgemein?
Du benutzt is_a? um die Klasse des Objekts zu prüfen. So kannst Du herausfinden, ob ein Objekt von einer bestimmten Klasse oder Unterklasse abgeleitet ist. Zum Beispiel kann ich damit prüfen, ob in der Variable @target ein Objekt der Klasse Game_Character enthalten ist. Wenn wir dort ein Event rein tun, gibt die Methode true zurück, denn Game_Event ist eine Subklasse von Game_Character und deswegen sagt uns dann Ruby: "Ja, stimmt. Da ist ein Game_Character drin." Gut, eine besondere Spezialisierung, aber es ist ein Game_Character. Und Playm sagt dann: "Danke liebes Ruby. Dann weiß ich jetzt, dass ich Methode aus Game_Character benutzen kann, dann gib mir mal die screen_x und screen_y Werte des Objekts in @target zurück, ich will damit rechnen."

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

19

Donnerstag, 13. April 2017, 06:29

Ahh, vielen Dank für die Erklärung! :D
ALso ist auch das ? und das ! irgendwo mal von einem Programmierer speziell für diese "Worte" festgelegt worden und ich kann sie nicht einfach blindlings irgendwo dranklatschen, wo sie nicht vorgesehen sind. Danke!
Das is_a? ist also nur eine geschickt gewählte Buchstabenkombination. Hätte der Programmierer xyz ausgewählt, würde das genauso funktionieren, nur klingt das nicht so schön XD

Danke auch für den Callscript-Code- das klappt super! :D
Unterhaltungen von NPCs laufen nebenher, man kann sie unterbrechen und sie nehmen ihre Unterhaltung wieder auf (danke Variablen) XD
Du hast mir wirklich unglaublich geholfen, danke! :D


Edit Noch eine Frage: Ist es möglich, mit meinem eigenen Message-Window auf eine Funktion des UMS zuzugreifen?
Ich rede in diesem Fall von den "talk1", "talk2" und "thought" Attributen. Die sorgen für so ein kleines dreieckiges Dings unten am Window, dass zeigt, wer gerade spricht- wenn zwei NPCs sehr nah aneinander stehen, könnte man sonst nicht genau sehen, wer spricht :3
Könnte ich einfach alle Teile, die sich darauf beziehen, in mein Script kopieren?
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (13. April 2017, 06:29)


20

Donnerstag, 13. April 2017, 13:45

Theoretisch könnte das klappen. Wenn Du alles was mit @comic im Window_Message passiert übernimmst, sollte er die Funktion in dein Script übertragen.
Du musst dir dann noch überlegen, woher Du die Information nimmst, welches... Ding Du brauchst. Das UMS hat dafür ja ein extra Attribut in Game_System $game_system.comic_style eingerichtet. Ob Du sowas auch möchtest, oder wie Du es machen willst. Vielleicht willst Du das Attribut ja auch lieber in deine eigene Window-Klasse einbringen. Ist alles möglich.

Beachte, dass es im UMS neben dem Window_Message auch das Window_Slave gibt. Du brauchst nur die Definitionen aus dem Window_Message des UMS.

Ähnliche Themen

Social Bookmarks