Dein_Troll Problem Thread

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 78789Post DeinTroll
06 Dec 2011, 19:37

kann mir jemand sagen wie ich das Standartmenü per Button aufrufen kann ? Hat das einen Subroom Name ?
Image

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

Re: Dein_Troll Problem Thread

Post: # 78793Post Zimond
06 Dec 2011, 22:45

nee da gibts leider keine Möglichkeit. Nur durch selbsttätiges Nachbauen in einem eigenen Subroom.
Image

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 78794Post DeinTroll
07 Dec 2011, 00:10

ah ok danke
Image

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79088Post DeinTroll
02 Jul 2012, 22:03

japanhonk wrote:Ahaaaaa....

Schon mal mit Kollisionsabfragen gearbeitet ? Das wäre genau das, was Du brauchst.

Hier mal ein Beispiel ( kann das Original von Zimond nicht mehr finden....)

Definiere die Breite und Höhe der beiden abzufragenden Objekte
und starte dann die Abfrage :

if_num(Objekt_1;<[Objekt_2]+[breite1])
if_num(Objekt_1;<[Objekt_2]+[hoehe1])
if_num(Objekt_2;<[Objekt_1]+[breite2])
if_num(Objekt_2;<[Objekt_1]+[hoehe2])
{
Deine Befehle...
....
}

X/Y Positionen eines Objektes beziehen sich immer auf die obere linke
Ecke eines Objektes. Also musst du, um die untere Kante abzufragen, die Höhe des Objektes angeben, ebenso mit der Breite.
Ich versuch gerade ne Kollisionsabfrage hin zu kriegen, aber ich versteh das nicht so ganz irgendwie. Mein Char bewegt sich ja, wie kann ich da die derzeitige Position abfragen ? Kann ich die X / Y Koordinaten von einem Charakter irgendwie in ne Variable packen ?
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 79089Post japanhonk
03 Jul 2012, 04:22

Siiiischa..


setnum (x_position;[objx:meinobjekt])
setnum (y_position;[objy:meinobjekt])

Die X/Y Position von "meinobjekt" wird abgefragt und in den Variablen
x_position und y_position gespeichert.
objx und objy sind fest definierte Variablen des Editors.
Wichtig sind hierfür auch die eckigen Klammern und der DOPPELPUNKT.

direkte Positionsabfragen gehen übrigens auch per : if_xobj / if_yobj
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79095Post DeinTroll
04 Jul 2012, 23:19

und wie ruf ich die Koordinaten von einem Charakter ab ?
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 79096Post japanhonk
05 Jul 2012, 07:09

Ich selber hab das nie ausprobiert, aber gem der Befehlsreferenz kannst Du mit folgenden Variablen arbeiten ( Fest definiert vom Editor )

[charx] und [chary] sind die aktuelle Position des aktiven Characters in Pixel.

Per If Abfrage sollte das gehen, mit den Klammern musst Du mal sehen, wann Du sie einsetzt. Für eine einfache If Abfrage braucht
man sie eigentlich nicht.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79097Post DeinTroll
05 Jul 2012, 16:28

hehe ok thx ^^ hätte ich mir eigentlich denken können ^^ es funktioniert auch wie bei Objekten mit [Charx:Character1] wenn es nich der Aktivierte Char sein soll.
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 79098Post japanhonk
05 Jul 2012, 17:54

Da hab ich wieder was gelernt.

In abgewandelter Form hab ich das so in Etwa benutzt, da ich
durch das Coin Interface und die ganze Bedienung nicht direkt
in den Raum klicken kann.

Ich musste die Mausposition in Walkmappunkte umwandeln.

Darum steht bei mir in jedem Raumskript :
on (loop2)
{
setnum (walkx ; [mousex])
setnum (walkx ; [walkx] :25+1)
setnum (walky ; [mousey])
setnum (walky ; [walky] :25+1)
}
(by Zimond...)

Jeder Raum hat ein Dummyobjekt als Hintergrund, dass den Rechtsklick für das Menü abfragt. Darum reagiert der Char
nicht auf den Hintergrund beim Klicken.

Im Dummyskript steht deshalb :

on (click)
walkto (self;[walkx];[walky];1)
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79099Post DeinTroll
05 Jul 2012, 19:47

ich hab da folgendes problem, ich setz ausbildung auf true, die variable cd bekommt jede sekunde +1 bis fünf, dann wird lkwkommt1 die objx:haus und lkwkommt2 objy:haus und rechnet jeweils +5 dazu . Ich geb mir nun alle variablen auf den bildschirm mit textout 33 und 34. ich sehe das die variablen stimmen wie ich mir das vorstelle. Aber der charakter lkw der den beamto befehl bekommt wird einfach nicht zu den koordinaten geportet. Geb ich statt lkwkommt1 und lkwkommt2 beim beamto befehl feste werte an, dann beamt er sich...ich hab auch schon versucht einen walkto befehl zu benutzen, dann läuft der charakter rechts runter in den bildschirm undverschwindet irgendwann aus der sicht. Was läuft da schief ? ich seh doch das im textout die koordinaten stimmen aber irgendwie läuft der doch zu anderen ?

on (loop2)
{

textout (33; [objx:haus] [objy:haus]; 77;77;1)

textout (34; [lkwkommt1] [lkwkommt2]; 77;90;1)


if_bool (ausbildung;true)
{
Wait (1)
setnum (cd; +1)

if_num (cd; 5)
{
setnum (lkwkommt1;[objx:haus])
setnum (lkwkommt1; +5)
setnum (lkwkommt2;[objy:haus])
setnum (lkwkommt2; +5)
beamto (lkw;welt2;[lkwkommt1];[lkwkommt2];1)
setbool (ausbildung; false)
setnum (cd; 0)
}
}
}
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 79100Post japanhonk
05 Jul 2012, 20:37

Ich denke mal, dass dein Loop nicht rechtzeitig aufhört, zu zählen,
wenn der Char das Ziel erreicht hat.

Es fehlt eine Endbedingung, die alles stoppt... Wird der Bool
denn wieder auf true gesetzt , wenn das Ziel erreicht ist ?
Und bleibt er dann auch so ?

wenn ich das so auf die Schnelle richtig sehe...
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

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

Re: Dein_Troll Problem Thread

Post: # 79102Post Zimond
05 Jul 2012, 23:31

3 Dinge :

1. Das on (loop2) Event halte ich hier für ungeeignet. Es ist explizit dafür gedacht das es jederzeit unterbrochen wird wenn der Spieler eine Cutscene oder Textscene startet und einen anderen Char ansteuert. Gedacht ist das für NPC Gespräche die naturgemäß unterbrochen werden sollen wenn der Spieler die NPCs anspricht. on (loop1) oder eine Function wären besser.

2. Standardfrage : Ist die Walkmap an den entsprechenden Punkten frei? Sonst funktioniert kein Beamto.

3. Wird der LKW in mehr als einen Raum verwendet? Sonst würde es sich eher empfehlen ihn als Objekt zu verwenden. Mittels Moveto läßt sich das entspannter direkt regeln.
Image

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79103Post DeinTroll
05 Jul 2012, 23:42

sitz jetzt leider am falschen pc ich probier das alles morgen mal...was mich aber wundert is das es eben mit den festen werten funktioniert und mit den variablen nich obwohl die in der textausgabe stimmen...
Image

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79116Post DeinTroll
11 Jul 2012, 16:18

Also Objekt kann ich den lkw schlecht nehmen weil ich ihn mit der maus steuern will. Mit der Walkmap hat es nix zu tun, weil wie gesagt geb ich feste Werte ein dann Funktioniert es. Ich habe loop1 benutzt und nen break rein gehauen aber es geht immer noch nicht. Die Variable lkwkommt1 und lkwkommt2 stimmen wie gesagt da ich sie mir in einer textout raus geben lasse...der lkw ist in einem anderen raum und wird in den raum geportet...

Und zu Japanhonk wenn cd =5 ist wird der bool ausbildung wieder false gesetzt und cd wird null gesetzt damit wird alles gestopt was im loop so vor sich geht...er kann sich daher unmöglich verzählen...hab ich mir aber zur sicherheit auch mit ner textout darstellen lassen und er zählt bis fünf und hört bei fünf auf und setzt wieder auf null...

also ich hab mir jetzt auch ma die variablen der position von dem lkw anzeigen lassen und die springt wenn er porten soll auf x=14544 und y=13744 obwohl die Variable lkwkommt1 und lkwkommt2 eigentlich x=455 und y=430 sind...

fazit es geht immer noch nicht...kann der beamto befehl eventuell nicht mit variablen umgehen ?
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 79117Post japanhonk
11 Jul 2012, 18:11

der beamto Befehl funzt absolut sauber mit Variablen. Hab ich selber immer wieder benutzt. Je nach Editorversion gibt es höchstens Probleme, die Blickrichtung als Variable zu setzen.

Du kannst ein Objekt doch per Maus steuern.

die Variablen mousex und mousey geben immer die Zeigerposition an.
Schreibst Du selbst einen Wert dort rein, bewegt sich der Zeiger sofort an
die angegebene Position.

Beispiel :

on (click)
moveobj (lkw;[mousex];[mousey];9) -> LKW wird an die aktuelle Mauszeigerposition bewegt.


Evtl müsstest Du nur berücksichtigen, dass sich der LKW dann nur mit der linken oberen Ecke zur Zeigerposition bewegt. Den Wert müsstest du ggf vorher noch korrigieren.
Somit wärst du wesentlich flexibler, als mit Walkmappunkten. Dann kann ein Objekt auch aus dem Bildschirm herausfahren z.B.

Zurück zu den Walkmappunkten :

Wenn es mit festen Werten geht, dann bau dein Skript mal versuchsweise um , setze direkt hinter den beamto Befehl einen Sound und ein break ()
Der sound zeigt, ob das Skript überhaupt den Befehl anspringt, der break Befehl sorgt dafür, dass das Skript nur einmal ausgeführt wird. Wenn es dann nämlich ausgeführt wird, liegt die Vermutung nahe, dass es zu oft aufgerufen wird und die Koordinaten dann "weglaufen"
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 79118Post DeinTroll
12 Jul 2012, 22:37

und wie regelst du das mit dem bewegungsanimationen ? wird ja dann um einiges aufwendiger...
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 79119Post japanhonk
13 Jul 2012, 05:40

Ob ich einen Char animiere oder ein Objekt spielt erstmal keine Rolle.
Aber wenn es wirklich eine Figur o.ä. ist, sind entsprechende Befehle nutzbar.

Es gibt aber einen Trick, um beides zu kombinieren - ist nicht im ganzen Spiel unbedingt sinnvoll, aber stellenweise nützlich :

Linkchar () - Damit koppelst Du eine Firgut an ein Objekt. NAchteil :
Die Figur bewegt sich dabei nicht. ( z.B. in einem Aufzug oder so.

Anderes Beispiel :

Mein Char soll sich einen Schusswechsel mit einem Anderen liefern.

Um die Kollissionsabfrage der Geschosse nutzen zu können, lege ich ein Dummyobjekt über die Figur und bewege es mit Ihr. Damit kann ich eigene Treffer abfragen.
Der Gegner ist ein Objekt, das nur Skriptgesteuert funktioniert. Da kann ich direkt abfragen.
Bei einem Char muss ich also die Walkmappunkte in Pixelpositionen umwandeln.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 81820Post DeinTroll
28 Oct 2014, 22:37

Ich rufe mein Problem Thread ma wieder zurück ins Leben...

Ich hab folgendes Problem und krieg es nicht gelöst. Ich möchte das, solange ich "alt" drücke, der Mauszeiger 2 Angezeigt wird. Wenn ich los lasse soll wieder Mauszeiger 1 Angezeigt werden. Soweit bin ich:

on(loop2)
{
if_keypressed (alt)
{
instmouse(2)
}
}

Das geht auch wunderbar, aber wie rufe ich nun ab das die Taste wieder losgelassen worden ist?
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 81821Post japanhonk
28 Oct 2014, 22:41

if_keypressed (taste)
{

}

Wird benutzt für : Funktionen und Loopskripte

Parameter :

taste- Taste auf die überprüft werden soll.

Beschreibung :

Überprüft ob eine Taste gehalten wird. Für taste sind zulässig : a-z, 0-9, up, down, right, left, strg, alt, space, enter, backspace und F1 - F10. Die Überprüfung geht solange gut wie der Spieler die Taste gedrückt hält. [Variabeln] können als Parameter eingetragen werden. So lässt sich zum Beispiel einrichten das der Spieler eine entsprechende Taste selber wählen kann und diese in einem String abgespeichert wird.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 81822Post DeinTroll
28 Oct 2014, 23:37

Soweit war ich auch schon...
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Dein_Troll Problem Thread

Post: # 81824Post japanhonk
29 Oct 2014, 06:00

Ansonsten wüsste ich nur den Befehl on (release), der ist aber für die MAustasten.

Da gibt es eigentlich nur keydown oder keypressed.

MAn könnte aber keypressed vlt mit einem Bool im Loop oder Mainskript verbinden, der das dann regelt, wüßte sonst aus dem Stehgreif keine Lösung...
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

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

Re: Dein_Troll Problem Thread

Post: # 81826Post Zimond
29 Oct 2014, 07:20

du kannst beim keypressed ja zusätzlich einen merker auf true setzen. und darunter überprüfst du dann :

ifnot_keypressed (alt)
if_bool (bla ; true)
{
setbool(bla; false)
was auch immer dann passieren soll
}
Image

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

Re: Dein_Troll Problem Thread

Post: # 81827Post Zimond
29 Oct 2014, 07:23

btw: jeder if befehl kann durch ifnot_ umgedreht werden.
Image

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Dein_Troll Problem Thread

Post: # 81828Post DeinTroll
29 Oct 2014, 16:15

Ifnot ist genau das was ich gesucht habe!
Sollte man in die Hilfe rein schreiben.
Image

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

Re: Dein_Troll Problem Thread

Post: # 81829Post Zimond
29 Oct 2014, 16:37

Image
Die Syntax von Skripten

Die Form eines Skriptbefehls sieht immer wie folgt aus :

Befehl ( wert1 ; wert2 ; wert3....)

Die Anzahl der nötigen Werte für einen Befehl hängt vom jeweiligen Befehl ab. PaC-DK überprüft beim Spielerstellen die Syntax und weist auf Fehler hin. Befehle die keine Werte benötigen müssen dennoch Klammern danach haben um den Befehl abzuschließen.

Bedingungen :
Durch if_ Befehle können Bedingungen abgefragt werden deren Entscheidung dafür sorgt ob die nachfolgende Zeile gelesen wird oder nicht. Mehrere Befehle nach einem if_ Befehl werden durch geschweifte Klammern eingegrenzt. Beispiel :

if_num ( zahl ; 10)
{
Befehl 1
Befehl 2
...
}

Alle if_ Varianten können durch ifnot_ umgekehrt werden. In bestimmten Befehlen wie if_num können auch Zahlenbereich durch < und > abgefragt werden. Beim setzen von Zahlen sind auch Rechenzeichen erlaubt.

Ereignisse :
Ereignisse werden verwendet um auf bestimmte Dinge zu reagieren z.B wenn der Spielen mit der Maus über ein Objekt fährt. In dem Fall sähe der Skriptteil in diesem Objekt so aus :

on (mouse)
{
Befehl 1
Befehl 2
...
}

Variablen :
Zahlen und Strings können in anderen Befehlen wieder verwendet werden durch eckige Klammern. Beispiel :

setnum (meinezahl ; 47)
setstring (meintext ; Spacko)

speech (ben ; Ich bin ein [meintext]. Meine Zahl lautet [meinezahl].)
Image

Post Reply