Allgemeine Fragen (Questions)
-
- PaC-DK Newby
- Posts: 12
- Joined: 09 Feb 2007, 19:38
-
- PaC-DK Newby
- Posts: 12
- Joined: 09 Feb 2007, 19:38
Dein Wille geschehe
Hier die "Kasspätzle" (Spatz):
Die Coladose:
Und das Wasser:
Hier die "Kasspätzle" (Spatz):
Code: Select all
on (mouse)
showinfo(Tiroler 'Kasspätzle';true)
on (take)
speech(self;Das habe ich doch schon!)
on (look)
speech(self;Sieht lecker aus)
on (use)
link(spatz)
Code: Select all
on (mouse)
showinfo(Cola-Dose;true)
on (take)
speech(self;Das besitze ich doch schon!)
on (look)
speech(self;Eine volle Cola-Dose)
on (use)
link(Cola)
Code: Select all
on (mouse)
showinfo(Becher, voll;true)
on (look)
speech(self;Ein Becher voll mit leckerem Waserspender-Wasser;look_bechervoll)
on (take)
speech(self;Das besitzt ich doch bereits!;vpetrus_error1)
on (use)
link(wasser)
-
- PaC-DK Newby
- Posts: 12
- Joined: 09 Feb 2007, 19:38
Nope, das wars leider auch nicht...
Hier ist der ganze Code vom Orbjekt:
Hab das jetzt mit dem Walkto geändert, gebracht hat es aber nichts.
Nach wie vor klickt man zuerst den Becher mit Wasser an (link: wasser), dann steht unten "Benutzte Wasser mit Frau Schneider", klickt man dann passiert nichts, der link ist allerdings immer noch aktiv, der Schriftzug unten, bleibt.
Hier ist der ganze Code vom Orbjekt:
Code: Select all
on (mouse)
showinfo (Frau Schneider; true)
on (look)
speech (self;Das Ist Frau Schneider, die Sekräterin)
on (click)
{
walkto(self;21;22)
}
on (take)
speech (self;Die? Bist du noch ganz bei trost?!?)
on (talk)
{
walkto(self;21;22)
lookto(Schneider;1)
loopstop(tippse2)
textscene(Schneider)
lookto(Schneider;2)
loopsound(tippse2)
}
on(link)
{
if_link(spatz)
{
cutscene(happa)
break()
}
if_link(cola)
{
cutscene(cola)
break()
}
if_link(wasser)
{
cutscene(Wadda)
break()
}
}
Nach wie vor klickt man zuerst den Becher mit Wasser an (link: wasser), dann steht unten "Benutzte Wasser mit Frau Schneider", klickt man dann passiert nichts, der link ist allerdings immer noch aktiv, der Schriftzug unten, bleibt.
Weil Additive Objekte gedacht sind für Lichtscheine, und die werden nicht dunkler wenn der Rest des Zimmers dunkler wird. Das würde den ganzen Effekt kaputt machen. Außerdem wär das schon technisch unnütz.
Solche Rendergeschichten sind ja nichts anderes als Zahlen, nehmen wir mal eine grauweisse Tapetenwand mit Farben von den Werten .. nun .. 190 bis 240 (255 wäre dann ganz weis) ein Objekt additiv gerendert(nehmen wir mal die Flashlight Spots) darauf welches einen Farbwert von sagen wir mal 70 hat und damit relativ dunkel ist, würde die komplette Wand einfarbig weiss machen.. alle Details wären weg. Wenn die Raumlichtänderung erst NACH dem additiven Objekt käme in der Renderreihenfolge wäre die Wand einfarbig grau immer noch OHNE Details. Das wäre wie wenn du versuchts ein viel zu helles Digicam Foto dunkler zu machen.. du wirst weisse Flächen nur in Grau umwandeln.
Außerdem stimmt es so ja nicht das diese Objekte an der Raumlichtänderung nicht teilnehmen, die Farben werden ja zum Hintergrund addiert und wenn der dunkler ist wird das Objekt auch dunkler sein.
Solche Rendergeschichten sind ja nichts anderes als Zahlen, nehmen wir mal eine grauweisse Tapetenwand mit Farben von den Werten .. nun .. 190 bis 240 (255 wäre dann ganz weis) ein Objekt additiv gerendert(nehmen wir mal die Flashlight Spots) darauf welches einen Farbwert von sagen wir mal 70 hat und damit relativ dunkel ist, würde die komplette Wand einfarbig weiss machen.. alle Details wären weg. Wenn die Raumlichtänderung erst NACH dem additiven Objekt käme in der Renderreihenfolge wäre die Wand einfarbig grau immer noch OHNE Details. Das wäre wie wenn du versuchts ein viel zu helles Digicam Foto dunkler zu machen.. du wirst weisse Flächen nur in Grau umwandeln.
Außerdem stimmt es so ja nicht das diese Objekte an der Raumlichtänderung nicht teilnehmen, die Farben werden ja zum Hintergrund addiert und wenn der dunkler ist wird das Objekt auch dunkler sein.
Okay, das "leuchtet" mir ein. Ich danke dir für deine Erklärung.
Ich werde also einen anderen Weg finden, um den Lichtstrahl als additiv geblendetes Objekt im Vordergrund am Ausblenden des Raums (Verdunkelung) teilhaben zu lassen. Statt den "setlight()"-Befehl benutze ich den "beamto()"-Befehl zu einem schwarzen Raum, mit Fading. So sollte das gleichermaßen funktionieren - und das Lichtstrahl-Objekt fügt sich meinem Willen
Ich werde also einen anderen Weg finden, um den Lichtstrahl als additiv geblendetes Objekt im Vordergrund am Ausblenden des Raums (Verdunkelung) teilhaben zu lassen. Statt den "setlight()"-Befehl benutze ich den "beamto()"-Befehl zu einem schwarzen Raum, mit Fading. So sollte das gleichermaßen funktionieren - und das Lichtstrahl-Objekt fügt sich meinem Willen
- Wie kann ich die Walkmapkoordinaten, auf denen sich ein nicht fokusierter Character befindet, abfragen und in einem Num abspeichern? Habe das Manual nach einem passenden Befehl durchgesucht und bin lediglich auf "if_ischar (characterinstanz)" gestoßen. Das müsste man dann ja in jedes einzelne Walkmapkachel-Skript schreiben. Gibt es eine andere Möglichkeit?
Beim "moveobj()"-Befehl kann man also rechnen. Aber: Täusche ich mich, oder ist es beim "setobj()"-Befehl nicht möglich, Werte wie +a/ -a einzusetzen? Das würde nämlich mein aktuelles Problem erklären. In einer Function möchte ich mit "setobj(Objekt;+1)" ein bestimmtes Objekt immer höher setzen, bis dieses eben den Zustand 10 erreicht. Das klappt soweit auch alles ganz gut, zumindest die parallele Num-Addition "setnum(Num;+1)". Doch das Objekt verändert seinen Zustand nicht! Jetzt bin ich mal in den Dev-Mode gegangen und habe in der Konsole als Wert direkt einen Zustand eingegeben - das funktioniert.Master Belzebub wrote:Kann man beim "moveobj()"-Befehl eigentlich für die x- und y-Angaben Werte wie +a/ -a angeben?
Sollte es so sein wie ich vermute, dass man bei Objekten nur direkt die Objektzustände schreiben darf (leider gibt es ja bisher nur zusätzlich noch > und <), dann müsste ich das Skript ein wenig umschreiben, wüsste aber, wo sich der Fehler befindet. ...ich habe das schon einmal gefragt , ich weiß. Du konntest mir zu der Zeit aber noch keine klare Antwort geben. Das war bei meiner Anregung, unter anderem die > und < einzubauen
- so müsstest du die koordinaten eines Chars speichern können :
das /20 is dafür die Pixel Koordinaten in Walkmapkoordinaten umzuwandeln... 20 ist der Wert bei 640x480, bei 800x600 ist er 25.
- Ich werde alle Befehle mal durchschauen wo man Rechnen noch erlauben könnte und wo es Probleme bereiten könnte.
Code: Select all
setnum (WalkmapX ; [charx:yourchar]/20)
setnum (WalkmapY ; [chary:yourchar]/20)
setnum (WalkmapX ; +1)
setnum (WalkmapY ; +1)
das /20 is dafür die Pixel Koordinaten in Walkmapkoordinaten umzuwandeln... 20 ist der Wert bei 640x480, bei 800x600 ist er 25.
- Ich werde alle Befehle mal durchschauen wo man Rechnen noch erlauben könnte und wo es Probleme bereiten könnte.
- Die Variable [charx/y:charactername] habe ich im "Variablen nutzen"-Kapitel des Handbuchs wohl übersehen. Super, so müsste es klappen! Aber wieso addierst du die Variable(n) in deinem Skript mit 1? Durch den ersten "setnum()"-Befehl hat man doch bereits den tatsächlichen Walkmapkachel-Koordinaten-Wert!?
Vor allem kommt es mir auf Addition/ Subtraktion beim "setobj()"-Befehl an.Zimond wrote:Ich werde alle Befehle mal durchschauen wo man Rechnen noch erlauben könnte und wo es Probleme bereiten könnte.
Danke, das wäre echt lieb von dir
-
- PaC-DK Newby
- Posts: 12
- Joined: 09 Feb 2007, 19:38
- Klar, das ist logisch. Aber sag mal, macht es denn keinen Unterschied ob man doppelte Walkmap gesetzt hat oder nicht? Bei doppelter Walkmap müsste es doch dann durch 40 dividiert werden...!?
Und sollte man mit "if_num(NUM;0)" nicht noch einfügen, dass die Variable nur dann um 1 addiert wird, wenn sie den Wert 0 hat?Denn, Beispiel: Befindet sich der Charakter ganz rechts auf der Walkmap (größtmöglicher x-Wert) und wird dann die Variable für den x-Wert um 1 addiert, so ergibt sich ein unmöglicher Wert.Code: Select all
setnum (WalkmapX ; [charx:yourchar]/20) setnum (WalkmapY ; [chary:yourchar]/20) if_num(WalkmapX;0) setnum (WalkmapX ; 1) if_num(WalkmapY;0) setnum (WalkmapY ; 1)
- Gibt es einen Trick, um höhere Zoomfaktoren zu erreichen als die 7. Stufe im Raumfenster?
- nich durch 40 sondern 10, die einzelnen Walkmap Kästchen werden ja kleiner nich größer.
- ja nee, dieses Aufrunden zieht sich ja komplett durch, wenn charx 44 ist befindet sich der Char schon auf Walkmap PunktX = 3 und nicht 2. Den Wert am Ende hingegen müsstest du dann abfragen, also verhindern das er über den Rand hinausgeht.
- noch krasser als 7? Ich könnte noch ne 8 dranhängen wenn du es brauchst, für den nächsten Release. Den Raum möcht ich mal sehen
- ja nee, dieses Aufrunden zieht sich ja komplett durch, wenn charx 44 ist befindet sich der Char schon auf Walkmap PunktX = 3 und nicht 2. Den Wert am Ende hingegen müsstest du dann abfragen, also verhindern das er über den Rand hinausgeht.
- noch krasser als 7? Ich könnte noch ne 8 dranhängen wenn du es brauchst, für den nächsten Release. Den Raum möcht ich mal sehen
Wenn ich die Walkmapdivision also nochmal zusammenfassen darf:
Bei einer Auflösung von 640x480 muss bei einfacher Walkmap durch 20, bei doppelter Walkmap durch 10 geteilt werden. Bei der Auflösung 800x600 muss bei einfacher Walkmap durch 25 geteilt werden, das wäre dann bei doppelter Walkmap... durch 12,5? Das kann ja wohl nicht sein
Bei einer Auflösung von 640x480 muss bei einfacher Walkmap durch 20, bei doppelter Walkmap durch 10 geteilt werden. Bei der Auflösung 800x600 muss bei einfacher Walkmap durch 25 geteilt werden, das wäre dann bei doppelter Walkmap... durch 12,5? Das kann ja wohl nicht sein
doch, das ist der Hauptgrund warum ich solange keine Doppelte Walkmap machen wollte.. weil ich der doofen engine erst mal diese doofe 12,5 Walkmap Größe beibringen musste
Für die Berechnung müsstest dann, da Kommazahlen direkt ja nicht eingegeben werden können aber PaC-Dk Intern damit rechnet, es so ändern :
setnum (WalkmapY ; [chary:yourchar]*10 /125/ 10), das ergebnis ist automatisch aufgerundet
Für die Berechnung müsstest dann, da Kommazahlen direkt ja nicht eingegeben werden können aber PaC-Dk Intern damit rechnet, es so ändern :
setnum (WalkmapY ; [chary:yourchar]*10 /125/ 10), das ergebnis ist automatisch aufgerundet
- Welche Gründe kann es haben, dass ein *.avi-Video im Spiel ohne Ton abgespielt wird? Extern ertönt der Sound, im Spiel und in der „Vorschau“ des Mediapools bleibt es aber stumm. Das Problem besteht nur bei einigen Videodateien, einige werden vom PaC-DK auch MIT Ton gespielt. Testweise habe ich eines der fraglichen Filmdateien mal hochgeladen, und zwar hier:
http://home.arcor.de/master.belzebub/00 ... B-news.avi
Die schlechte Ton- und Ruckelgrafikqualität ist der Dateigröße zuliebe beabsichtigt, nicht erschrecken. - Ich kann in den Mediapool importierte Musikstücke nicht wieder entfernen! Beim Versuch erscheint die Fehlermeldung „List Index out of bounds (Zahlenwert, bsp. -1, 77)“
- Kann man für den Wert des "wait()"-Befehls Nums angeben?
- gegen nicht laufende AVIs kann ich im Grunde nichts machen weil hierfür nur eine Standard Media Player Komponente benutzt wird die bei der Delphi Entwicklungsumgebung so mit drin ist, das benutzt weder die Grafik noch die Soundengine von PaC-DK
- Probier mal das Vorschaufenster vorher zu schließen, falls das auch nicht hilft, schick mir mal die ADV (nur die ADV, sollte erstmal reichen)
- Ja, sollte gehen, falls du Kommazahlen einsetzen willst musst du dich aber eines Tricks bedienen :
wait ([vorkomma],[nachkomma])
- Probier mal das Vorschaufenster vorher zu schließen, falls das auch nicht hilft, schick mir mal die ADV (nur die ADV, sollte erstmal reichen)
- Ja, sollte gehen, falls du Kommazahlen einsetzen willst musst du dich aber eines Tricks bedienen :
wait ([vorkomma],[nachkomma])
- Okay, das mit den Videodateien verstehe ich. Vielleicht findet sich ja jemand, der die hochgeladene Filmdatei mal in seinem PaC-DK-Projekt testet ...*pfeifend weggeh*
- Werde also mal versuchen ob das am Vorschaufenster liegt. Ansonsten erhältst du mal meine ADV, oder der Spieler bekommt Musik, die er gar nicht braucht
- Die Tatsache, dass man in den "wait()"-Befehlen Variablen benutzen kann, vereinfacht mein Vorhaben. Klasse!
Ich möchte mich bei den Textscenes meines Projekts nicht auf Text-/ bzw. Symbolanzeige beschränken, d.h. ich möchte sowohl Text-Textscenes als auch Symbol-Textscenes integrieren.
Wenn ich hier im Projekt-Setup unter Textscenes --> Multiple Choice eines der beiden Möglichkeiten auswähle, bleibt mir die andere verwehrt. Gibt es eine Möglichkeit, im Spiel umzuschalten oder trotz ausgewählter Textanzeige Symbole zu integrieren? An Objekte im Anywhere-Raum als Textscene-Symbole habe ich auch schon gedacht, aber 1. verschwinden Überall-Objekte in Cut(/Text-)scenes und 2. wäre das ein wenig umständlich
Wenn ich hier im Projekt-Setup unter Textscenes --> Multiple Choice eines der beiden Möglichkeiten auswähle, bleibt mir die andere verwehrt. Gibt es eine Möglichkeit, im Spiel umzuschalten oder trotz ausgewählter Textanzeige Symbole zu integrieren? An Objekte im Anywhere-Raum als Textscene-Symbole habe ich auch schon gedacht, aber 1. verschwinden Überall-Objekte in Cut(/Text-)scenes und 2. wäre das ein wenig umständlich
In den Grundeinstellungen meines Projekts habe ich das Lade-Bild geändert. Obwohl sowohl Grafik als auch Benennung geändert wurden und übereinstimmen, wird bei Spielstart noch das alte Lade-Bild angezeigt. Besonders merkwürdig ist es auch, dass sich die alte Lade-Grafikdatei gar nicht mehr im Mediapool und noch nicht einmal mehr auf meiner Festplatte befindet!