Showinfo-Positions Problem
Showinfo-Positions Problem
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?
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?
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.
Lösung wäre hier einfach den Zeiger innerhalb der 32x32 Grafik umzupositionieren und danach den Klickpunkt im PaC-DK anzupassen.
Ok, ich will es kurz erklären:Zimond wrote:das kannst du nicht ausstellen. Aber es sollte auch nichts gescrewt werden. Was ist denn hinterher anders?
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.
Ok, ich probiers nochmal.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?
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.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.
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:
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.
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)
Wenn ich das stopskip() weglasse, wird unlinkchar() irgendwie VOR dem 2. moveobj() ausgeführt. Dann bleibt der Char dort stehen, wo er gerade ist.
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.
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.