Showinfo-Positions Problem

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Showinfo-Positions Problem

Post: # 73681Post Schiman
03 Jun 2009, 11:05

Hab bissel im Forum geguckt, aber es scheint diese Frage noch keiner gestellt zu haben (kann mich auch nicht erinnern).

Und zwar ist es so, dass bei meinem Game die showinfo-Zeilen total weit von der Maus entfernt sind. Das sieht nicht so toll aus ;). Kann man den showinfo-text irgendwie verschieben? (ich glaubs eher nicht, aber fragen kann man ja ;)).

Ansonsten muss ich textouts verwenden.

Edit: Und noch ein Problem (das ist aber nur ein Bug denke ich mal).
Diese Variablen in Variablen funktionieren bei [charx:charname] und [chary:charname] nicht.
Ich habe einfach mal setstring(charname;Jason)

Dann liefert [charx:[charname]] einen undefinierbaren Wert... irgendwas negatives. Aber [charx:Jason] macht das Richtige.

Edit2: Und wenn ich schon dabei bin^^:
Wie kann ich verhindern, dass der Spieler Esc drückt?
Ich habe eine kurze Cutscene die nicht unterbrochen werden DARF, sonst screwt es die ganze Cutscene und dann gehts nicht mehr weiter. (Hat was mit linkchar und der daraus resultieren Charakterverschiebeung zwischen den Walkmap-Kästchen zu tun). Maus kann ich ja deaktivieren, aber Tastatur?

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73687Post Zimond
03 Jun 2009, 19:02

zu 1 : Das sollte eigentlich gar nicht sein können. Wie weit sind sie denn von der Maus weg? Benutzt du einen normalen Mauszeiger oder ein Objekt das du selbst verschiebst als ersatz?

zu 2 : Kann gut sein.. werd ich mal checken.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73691Post Schiman
03 Jun 2009, 20:32

Ich benutze einen normalen Mauszeiger und der Text ist total weit weg... ich zeig das mal:
Image
Meine Auflösung ist 320x240... nur mal so am Rande nochmal erwähnt.

Und was ist mit dem Esc in der Cutscene? Kann man das irgendwie unterbinden?

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73694Post Zimond
03 Jun 2009, 23:20

das kannst du nicht ausstellen. Aber es sollte auch nicht sgescrewt werden. Was ist denn hinterher anders?

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73695Post Zimond
03 Jun 2009, 23:40

[charx:[charname]]

Ich hab das gerade mal ausprobiert und bei mir gings. Sicher das der String Charname im richtigen Moment auch den richtigen Namen trägt?

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73696Post Zimond
03 Jun 2009, 23:46

wegen showinfo : ist vielleicht dein Mauszeiger der ja 11 Pixel hoch ist tatsächlich eine 32x32 Grafikdatei wo der Mauszeiger ganz unten rechts liegt und der rest frei liegt? Ich habe nämlich gerade festgestellt das die Showinfo Position nicht vom Klickpunkt ausgeht sondern von der oberen linken spitze dieses 32x32 Quadrats. (Man kann ja nie wissen wie so ein Mauszeiger aussieht)

Lösung wäre hier einfach den Zeiger innerhalb der 32x32 Grafik umzupositionieren und danach den Klickpunkt im PaC-DK anzupassen.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73698Post Schiman
04 Jun 2009, 08:10

Zimond wrote:das kannst du nicht ausstellen. Aber es sollte auch nichts gescrewt werden. Was ist denn hinterher anders?
Ok, ich will es kurz erklären:
Ich habe einen Char, der mit einem Objekt gelinkt wird (linkchar(char,objekt)).
Dieses Objekt wird nun von A nach B bewegt, dabei achte ich auf die Walkmap-Kästchen, weil der Char danach genau wieder auf einem Walkmap-Kästchen stehen bleiben muss. (Wegen Positionsabfragen usw.)
Also moveobj(Objekt;x;y;wait)
Danach unlinkchar(char).
Nun wird aber beim Drücken von ESC dieses wait im moveobj übersprungen und unlinkchar(char) direkt ausgeführt, sodass mein Char dann ZWISCHEN zwei Walkmapkästchen steht. Das führt dazu, dass meine Positionsabfragen nicht mehr gehen und mein ganzes Schiebe-System nicht mehr funktioniert.
Das einzige, was mir jetzt noch einfällt ist direkt nach dem moveobj() noch mal ein moveobj(Objekt;x;y;0) zu machen, sodass der Char sofort hingebeamt wird und dann kann unlinkchar auch gemacht werden... weiß aber nicht ob das funzt, die Idee kam mir gerade erst.
Zimond wrote:[charx:[charname]]
Ich hab das gerade mal ausprobiert und bei mir gings. Sicher das der String Charname im richtigen Moment auch den richtigen Namen trägt?
Ok, ich probiers nochmal.
Zimond wrote:wegen showinfo : ist vielleicht dein Mauszeiger der ja 11 Pixel hoch ist tatsächlich eine 32x32 Grafikdatei wo der Mauszeiger ganz unten rechts liegt und der rest frei liegt? Ich habe nämlich gerade festgestellt das die Showinfo Position nicht vom Klickpunkt ausgeht sondern von der oberen linken spitze dieses 32x32 Quadrats. (Man kann ja nie wissen wie so ein Mauszeiger aussieht)

Lösung wäre hier einfach den Zeiger innerhalb der 32x32 Grafik umzupositionieren und danach den Klickpunkt im PaC-DK anzupassen.
Du hast natürlich mal wieder recht^^. Mein Mauszeiger ist ganz weit unten rechts und der Klickpunkt ist dementsprechend unten rechts... Ok, dann setz ich den um.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73699Post Schiman
04 Jun 2009, 08:32

Also, das mit dem [charx:[charname]] funzt bei mir nicht. Vielleicht deshalb, weil ich in meinem string ein _ habe. Ich habe nämlich setstring(charname;Turm_W1). Der Name wird korrekt geschrieben, das habe ich getestet, aber die charx-abfrage geht nicht.

Meine Lösung mit dem moveobj funktioniert auch nicht. Bringt einfach nichts. Wenn ich zwischendrin ein stopskip() einbaue, wird wenigstens ein ESC abgefangen, aber bei ESC-Doppelklick habe ich wieder das gleiche Problem.

Edit: Ah ja, ich habe die Lösung für das Problem mit dem moveobj. Ich muss einfach folgende Art von Skript-Abfolge haben:

Code: Select all

minicut()
linkchar(Char,Objekt)
moveobj(Objekt;[x];[y];600ms;wait)
moveobj(Objekt;[x];[y];0;wait)
stopskip()
unlinkchar(Char)
Dann wird bei nichtstun der Char innerhalb von 0,6 sekunden auf den richtigen Platz gebracht. Beim Drücken von ESC springt er sofort auf den Platz und unlinkchar kann nichts Böses mehr ausrichten.
Wenn ich das stopskip() weglasse, wird unlinkchar() irgendwie VOR dem 2. moveobj() ausgeführt. Dann bleibt der Char dort stehen, wo er gerade ist.

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73700Post Zimond
04 Jun 2009, 09:55

Das mit dem gelinkten char und esc muss natürlich noch gefixt werden. Das der Unterstrich zu Problemen führt kann ich mir irgendwie schlecht vorstellen, aber möglich is alles. Also ich hab das überprüft in er Funktions demo.

Ich hab per Konsole eingegeben :

setstring (name ; ben)

textout (1 ; [charx:ben] ; 100 ; 100)
textout (2 ; [charx:[name]] ; 200 ; 100)

Das war zweimal exakt der gleiche Wert der angezeigt wurde. Um andere Probleme auszuschließen probier doch auch mal bitte so einen textout versuch um zu sehen welche Werte tatsächlich dabei rauskommen, weil : Wenn du [charx:name] machst wobei der Name ein Char ist den es nicht gibt sollte das Ergebniss 0 sein und nicht irgendwelche Werte.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73701Post Schiman
04 Jun 2009, 12:11

Und ich habe per Konsole eingegeben:

setstring(test;Turm_W1) (so heißt der Char auch)
textout(1;[charx:Turm_W1];100;200) -> da zeigt er 135 an.
textout(2;[charx:[test]];100;220) -> da zeigt er gar nix an.

Hängt wohl doch am Unterstrich^^.

Post Reply