Allgemeine Fragen (Questions)
Jo
Ja daselbe Problem mit dem Ladebild hab ich auch.
Hab alles genauso wie Master Belzebub gemacht: Bilde ausm MediaPool genommen und auch von der Festplatte gelöscht, dann ein neuse Ladebild genommen und bei den Grundeinstellungen eingetragen
Hab alles genauso wie Master Belzebub gemacht: Bilde ausm MediaPool genommen und auch von der Festplatte gelöscht, dann ein neuse Ladebild genommen und bei den Grundeinstellungen eingetragen
[img]http://www.adventure-creator.com/aluehn2/titel.gif[/img]
wohl wieder was für meine ToDo Liste
Das Problem könnt ihr so beheben :
Beim Spiel-Erstellen kopiert PaC-DK das Ladebild in den DATA Ordner und benennt es "Loading.jpg" bzw .gif oder .png. Deswegen kann das alte Bild noch da sein obwohl die ursprüngliche Datei weg ist.
Ich vermute mal ihr beide habt (bei DESA konnte ichs ja sehen an seinem Download) bei Ändern des Ladebilds ein anderes Bildformat gewählt, also GIF statt JPG oder anders rum. Und da hier PaC-DK aber das alte Bild nicht löscht befinden sich dann zwei ladebilder im DATA Ordner und die Engine nimmt sich das erste was sie findet.... also :
In den DATA Ordner gehen und eins der beiden loading Bilder löschen.
Das Problem könnt ihr so beheben :
Beim Spiel-Erstellen kopiert PaC-DK das Ladebild in den DATA Ordner und benennt es "Loading.jpg" bzw .gif oder .png. Deswegen kann das alte Bild noch da sein obwohl die ursprüngliche Datei weg ist.
Ich vermute mal ihr beide habt (bei DESA konnte ichs ja sehen an seinem Download) bei Ändern des Ladebilds ein anderes Bildformat gewählt, also GIF statt JPG oder anders rum. Und da hier PaC-DK aber das alte Bild nicht löscht befinden sich dann zwei ladebilder im DATA Ordner und die Engine nimmt sich das erste was sie findet.... also :
In den DATA Ordner gehen und eins der beiden loading Bilder löschen.
Stimmt, das habe ich tatsächlich. Schon unglaublich, wie schnell du stets die Ursachen findest. Das Löschen der alten Lade-Grafikdatei sollte wohl nach Entfernung des Kennwortschutzes bei den Spieldateien kein Problem seinZimond wrote:Ich vermute mal ihr beide habt bei Ändern des Ladebilds ein anderes Bildformat gewählt, also GIF statt JPG oder anders rum.
Tritt das Problem auch in anderen Bereichen, wie bspw. Räume auf, wenn man das Bild aktualisiert? Bisher hatte ich bei Aktualisierung von Grafiken eigentlich nie Probleme, deshalb verwundert mich der Fehler ein wenig. Könnte auch damit zusammenhängen, dass das Lade-Bild weder ein richtiger Raum noch ein Objekt o.ä. ist und deshalb bei Ausführung von PaCDK nicht neu geladen wird.
Nein, das ist ein anderes Problem, das ich immer umgangen bin und es schön ignoriert habe. Das Ladebild ist außerhalb aller anderen Grafiken weil es nicht mittels DirectX als Textur von der Engine geladen wird, sondern als Image auf ein Fenster beim starten.Tritt das Problem auch in anderen Bereichen, wie bspw. Räume auf, wenn man das Bild aktualisiert?
Das mit den Räumen ist so... wenn du ein Spiel Erstellen läßt, erstellt PaC-Dk die Mediendateien (gfx.dat, sfx.dat) nur dann neu wenn etwas im Mediepool hinzugefügt oder entfernt wurde um Zeit zu sparen. Wenn du eine Grafik änderst ohne etwas im Mediapool zu ändern wird die geänderte Form nicht im Spiel sein. Ich helf mir da immer drumherum indem ich PaC-dK neustarte oder die Grafik entferne und neu hinzufüge. Natürlich hab ich schon dran gedacht eine Überprüfung des "Zuletzt geändert" Daten ind en Dateien zu machen, aber das dauert fast genauso lange wie sie einfach wieder zu kopieren.
Ein Aspekt bei der Bedienung des Development Kits ist mir bis heute nicht wirklich klar geworden, wobei ich mir bisher stets durch Überprüfung im erstellten Spiel und nachträgliche Korrektur der Werte geholfen habe:
Was ist der Bezugspunkt für jegliche Textkoordinaten?
Beispiel:
Was ist der Bezugspunkt für jegliche Textkoordinaten?
Beispiel:
- Welchen Wert muss ich in den Grundeinstellung bei der Höhe vom Aktionstext angeben, wenn der "höchste" Pixel des größten Buchstaben bspw. X Pixel vom oberen Rand entfernt angezeigt werden soll? Mein Vorschlag wäre X.
- Noch genauer: Liege ich richtig in der Annahme, dass man bei den Koordinaten (Pixel in der Abbildung, auf den der rote Pfeil zeigt) von Text anzeigender Befehle des PaCDKs, bspw. "textout()" die "linke obere Ecke" angeben muss, also für den x-Wert den ersten Pixel von links gesehen des ersten Buchstaben und für den y-Wert den "obersten" Pixel des größten Buchstaben? Folgende Abbildung soll meine Vorstellung verständlicher darstellen, weil die Erklärung doch recht umständlich ist:
Danke! Schön dass das jetzt endlich geklärt ist. Nun werde ich aber versuchen, das Gegenteil zu beweisen - ich habe da so eine Vermutung dass das schon einmal nicht so aussahZimond wrote:Beim textout Befehl ist das richtig wie du es gezeigt hast.
Man gibt beim "offspeech()"-Befehl Walkmapwerte an?? Das erklärt, wieso das bei mir noch nie funktioniert hat... Trotzdem wundert es mich nicht, dass ich bisher immer die x-/y-Pixelwerte angegeben habe, denn aus dem entsprechenden Eintrag im Manual ist das nicht klar ersichtlich:Zimond wrote:Bei Offspeech ist das allerdings anders, hier wird der Walkmappunkt den man dabei angibt...
Da sollte unbedingt erwähnt werden, dass mit X und Y die Walkmapkacheln gemeint sind.offspeech (x ; y ; text ; sample ; dontwait)
Erzeugt einen Text + Sample, Character unabhängig. X/Y ist Mitte/Unten des Textes nicht Oben/Links. Optional mit Sprachausgabe Sample. Wird ein Sample angegeben richtet sich die Zeit des Textes nach der Länge des Soundfiles. Wird kein Sample angegeben richtet sich die Zeit nach der Länge des Text und der Textspeed Einstellung. Wird nicht DONTWAIT angegeben wird der Ablauf bei Cutscenes, Textscenes und bei Loopskripten solange angehalten bis der Text zu Ende ist.
Fein. Dann geht der nächste Handbuch-Leser dem "offspeech()"-Befehl vielleicht nicht mehr auf den Leim - auch wenn die Leute, die sich ihr Wissen erstmal brav aus dem Handbuch aneignen immer weniger werden
Dann würde ich gerne noch wissen, ob es mit den Koordinaten beim "setpos()"-Befehl genauso aussieht wie bei den Textbefehlen, also dass der angegebene Wert der Pixel oben links des sichtbaren Bildausschnitts ist.
Dann würde ich gerne noch wissen, ob es mit den Koordinaten beim "setpos()"-Befehl genauso aussieht wie bei den Textbefehlen, also dass der angegebene Wert der Pixel oben links des sichtbaren Bildausschnitts ist.
Auch das ist gut zu wissen. Aber ich muss schon zugeben, so langsam weiß ich wirklich nicht mehr, bei welchem Befehl ich nun Pixelwerte angeben muss und bei welchem Befehl Walkmapwerte. Ein Blick ins Handbuch klärt die Frage nach dem korrekten Werttyp... sollte er. Denn auch zum "setpos()"-Befehl steht nichts bezüglich Walkmap-Angaben. Aber du hast ja bereits versprochen, dich darum zu kümmern. Danke
Anlässlich des Releases der PaCDK-Version 2.7.3 möchte ich an dieser Stelle nun einmal bildlich einen Strich ziehen und drei in diesem Thread gestellte Fragen, welche bisher nicht beantwortet wurden, noch einmal aufgreifen:
- Problem: Walkmapskripts werden auch dann ausgeführt, wenn ein Charakter sie in einer Cutscene betritt oder passiert.
- Wie lässt es sich bewirken, dass nach einem „walkto()“-Befehl im „on(click)“-Bereich so lange gewartet wird, bis der angegebene Charakter sein Ziel erreicht hat?
- Betreffend „Multiple Choice“ in den Grundeinstellungen: Wie kann man sowohl Text als auch Symbole integrieren, also in einigen Textscenes Symbole verwenden, in anderen Text?
- Das ist so schon richtig, es war anfangs mal anders, das eben Walkmapskripte NICHT ausgeführt wurden in Cutscenes. Damit aber würden Schattenbereiche in Cutscenes nicht mehr funktionieren, also setcharlight Befehle die in der Walkmap stecken.
Aus dem Grund hab ich das entfernt. Wenn nun also der benutzer in Cutscenes walkmapskripte nicht ausgeführt haben will muss er sie selber durch eine variable "zu" machen.
- In dem du im on(click) Ereignis eine Cutscene startest indem dann erst der Walktobefehl drin is.
- Könnte ich als extra Option für den textscene Befehl einbauen, quasi Textscene (Scene ; X ; y ; Breite ; useitem /usetext) welcher dann die standard einstellung ignoriert.
Aus dem Grund hab ich das entfernt. Wenn nun also der benutzer in Cutscenes walkmapskripte nicht ausgeführt haben will muss er sie selber durch eine variable "zu" machen.
- In dem du im on(click) Ereignis eine Cutscene startest indem dann erst der Walktobefehl drin is.
- Könnte ich als extra Option für den textscene Befehl einbauen, quasi Textscene (Scene ; X ; y ; Breite ; useitem /usetext) welcher dann die standard einstellung ignoriert.
Mit folgendem Codeöffnet sich das Coin-Menü nicht an den angegebenen Koordinaten, sondern an der bisherigen Mausposition. Was können mögliche Gründe für das Problem sein?
Code: Select all
setnum(mousex;540)
setnum(mousey;120)
popupcoin()
- Bei diesem Skript treten zwei Probleme auf: 1. Das Coin-Menü öffnet sich nicht an der Stelle (x=540/y=120) sondern an der vorherigen Mausposition und 2. der vorgeschlagene Befehl "coinreturn()" existiert nicht/ ist PaCDK unbekannt.
Code: Select all
setnum(mousex;540) setnum(mousey;120) popupcoin() wait(5) coinreturn()
- Übrigens funktioniert das "on(mouse)"-Ereignis eines Objekts im Coin-Menü seit Version 2.8.2 nicht mehr.
- Ich lasse jetzt im Startskript einige Textout-Zeilen ausgeben, die an den Überall-Raum gebunden sind und unsichtbar sein sollen wenn der Überall-Raum deaktiviert ist. Bisher habe ich alle einzelnen Objekte im Überall-Raum zu "HUD" gruppiert und Objekt "HUD" dann mit dem "setobj()"-Befehl ein- und ausgeschalten.
Damit die nun hinzugefügten Textout-Zeilen an den Raum gebunden sind, habe ich in das Startskript vor die Ausgabe dieser Zeilen "bindtext(#;any)" geschrieben.
Problem: Wenn ich nun die Objekte-Gruppe "HUD" (alle Objekte im Überall-Raum) auf 0 setze, so bleibt die Textoutzeile verständlicherweise erhalten.
Ich kann mich im Moment nicht an einen exakten Befehl erinnern, mit dem ich den Überall-Raum komplett abschalten kann!?
*edit: Ich umgehe das Problem jetzt durch Verwendung von weiteren Objekten statt Text, interessieren würde mich das aber weiterhin.
stimmt, coinreturn, is natürlich nich in der Skriptliste eingetragen weswegen pacdk ihn nicht zuläßt, hab ich vergessen... aber Warum zur Hölle musst du denn ein Coinmenu in einer Cutscene aufrufen??? Um dem Spieler das einmal zu zeigen wo er drücken muss??? Und dafür diese Extrawürste? Erstell einfach noch einen Raum wo das Coinmenu an richtiger Stelle drin ist und ruf diesen als Subroom auf.
Wegen on(mouse) im Coinmenu, werd ich überprüfen.
Einen Befehl um den Überallraum abzuschalten gibt es nicht aber du kannst dir ganz einfach dafür ne Funktion schreiben.
Funktion AnyOn:
Funktion AnyOff :
Und schon hast du Befehle die den gesamten Überallraum ab- und anschalten.
Und eine Bitte : Bevor du immer gleich nach neuen Funktionen schreist schreib erstmal immer genau was du machen willst, denn es geht oft auch mit nem kleinen Umweg... denn im Moment hab ich kaum die Zeit Verbesserungen einzubauen die nur der Bequemlichkeit dienen.
Wegen on(mouse) im Coinmenu, werd ich überprüfen.
Einen Befehl um den Überallraum abzuschalten gibt es nicht aber du kannst dir ganz einfach dafür ne Funktion schreiben.
Funktion AnyOn:
Code: Select all
setobj (anyobj gruppe ; 1)
textout (1)
textout (2)
ect.
Code: Select all
setobj (anyobj gruppe ; 0)
texthide (1)
texthide (2)
ect.
Und schon hast du Befehle die den gesamten Überallraum ab- und anschalten.
Und eine Bitte : Bevor du immer gleich nach neuen Funktionen schreist schreib erstmal immer genau was du machen willst, denn es geht oft auch mit nem kleinen Umweg... denn im Moment hab ich kaum die Zeit Verbesserungen einzubauen die nur der Bequemlichkeit dienen.
Verstanden. Ich werde mich kürzer fassen und nach alternativen Lösungen suchen. Das Coin-Menü werde ich dem Spieler in anderer Form veranschaulichen und das Problem mit dem Text im Überall-Raum habe ich durch Verwendung weiterer Objekte umgangen.
*Nachtrag: Noch einer: Ist es so, dass man den "setobj()" Befehl nicht mehr auf einzelne Objekte anwenden kann, wenn sie gruppiert wurden? (Bsp.: OBJ1, OBJ2 und OBJ3 sind zu OBJX gruppiert. Ich schätze, dass "setobj(OBJX;1)" dann funktioniert, "setobj(OBJ2;1)" aber nicht mehr.)
...es bleibt das neue Problem mit den Coin-Objekten, deren "on(mouse)"-Ereignis nicht mehr ausgeführt wird.
Erledigt. Ich habe zwei Gruppen mit höchstens 10 Objekten erstellt.Dadurch komme ich aber über die 20 "group()"-Marke, ich habe im Anregungsthread bereits etwas dazu geschrieben...
*Nachtrag: Noch einer: Ist es so, dass man den "setobj()" Befehl nicht mehr auf einzelne Objekte anwenden kann, wenn sie gruppiert wurden? (Bsp.: OBJ1, OBJ2 und OBJ3 sind zu OBJX gruppiert. Ich schätze, dass "setobj(OBJX;1)" dann funktioniert, "setobj(OBJ2;1)" aber nicht mehr.)
Erledigt. Ich habe geschickt um das Problem "herumgebastelt" - das HUD habe ich mit Löchern versehen, durch welche man die Taskbar sieht.Trotzdem muss ich dich einen weiteren Punkt fragen:
Wieso wird ein in den Überall-Raum eingezogenes Inventarfeld im Spiel nicht angezeigt, ein in ein Bedienfeld eingezogenes aber schon?
*Nachtrag: In den Überall-Raum kann ich das Inventar also nicht packen, deshalb benutze ich für den Inventar-Bereich des HUD jetzt eine Taskbar mit gleichen Abmaßen. Leider sehe ich das Inventar hinter dem Überall-Raum gar nicht, weil die Renderreihenfolge in Version 2.6.0 vertauscht wurde
...es bleibt das neue Problem mit den Coin-Objekten, deren "on(mouse)"-Ereignis nicht mehr ausgeführt wird.
Hast du das konkret ausprobiert und fragst jetzt ob das so gewollt ist? Weil eigentlich sollten sich alle Objekte trotzdem einzeln stellen lassen, wie sonst sollte man zum beispiel ein Feld mit Buttons gruppieren und jeden einzelnen Button durch setobj highlighten lassen beim mouseover.*Nachtrag: Noch einer: Ist es so, dass man den "setobj()" Befehl nicht mehr auf einzelne Objekte anwenden kann, wenn sie gruppiert wurden? (Bsp.: OBJ1, OBJ2 und OBJ3 sind zu OBJX gruppiert. Ich schätze, dass "setobj(OBJX;1)" dann funktioniert, "setobj(OBJ2;1)" aber nicht mehr.)
PS : Das mit dem on(mouse) bei coins hab ich schon notiert. ich werd versuchen diesen und den movetext bug noch in ein paar Tagen dann als 2.8.2a oder so rauszubringen... ich denke ich hab auch schon ungefähr im Kopf wo ich die Fehler gemacht hab. Naja, ich müsste bei jedem Release eigentlich immer ausführlich testen das ich nichts kaputt gemacht hab.. aber die Zeit, immer diese Zeit.
Aber für Penibel nach Fehlern suchen hab ich ja schon nen Experten hier, wah?
Last edited by Zimond on 10 Nov 2007, 18:29, edited 1 time in total.
Erneut getestet: Doch, man kann einzelne Objekte aus einer Gruppe noch einstellen.
Es ist offensichtlich dass die Mindesthöhe 80 Pixel beträgt, also habe ich auch dieses Problem wie beschrieben umgangen.Andere Frage: Kann es sein dass die Taskleiste "Bedienfeld" mindestens 80px hoch sein muss? Ich habe das eben mit 79 Pixeln Höhe probiert, das wurde automatisch wieder auf 80 gesetzt
...sollte das so sein, dann schiebe ich einfach die Grafiken 1 Pixel nach unten - doch bevor ich das tue, wüsste ich gerne ob ich es denn muss
Last edited by Baelavay on 10 Nov 2007, 18:36, edited 2 times in total.
ja wer mir lieb, ursprünglich konnte man das Pixelgenau einstellen. Aber es gab da irgendein richtig dümmlichen Fehler der aber nur bei einer nicht Zehner Zahl auftrat und ich hab da ewig gesessen und gerätselt worans liegt bis ich schließlich das ganze auf 10er gesperrt hab. Ich weiss gar nicht mehr genau was da passierte, aber es war echt zusammenhangslos.