Thema: Aktion 3 mal hintereinander ausführen So Okt 25, 2009 1:24 pm
Also da sich eine Aktion 3 mal wiederholen soll, wollte ich mit Schedule beim Ende der Aktion diese nochmals aufrufen, während zeitgleich ein zweites Schedule gestartet wird, dass dann ebenfalls am Ende des ersten Schedules nochmal die Aktion aufruft. Dannach ist die Aktion endgültig zu Ende.
Code:
protected func ContextSauger(caller) { [Aufsaugen|Image=DBOS] SetAction("Aufsaugen"); Schedule("SetAction("Aufsaugen[u]")"[/u],36); //zählt die 36 Frames ab Schedule("SetAction("Aufsaugen")",72); //nach 72 Frames nochmal saugen bitte
return true; //true halt. }
Die Unterstrichene Stelle ist laut Engine der Fehler, aber ich kann da bei weitem nichts auffälliges sehen. Error Meldung ist folgende:
ERROR: ',' or ')' expected, but found identifier
kevda Feldmarschall
Anmeldedatum : 08.05.08
Thema: Re: Aktion 3 mal hintereinander ausführen So Okt 25, 2009 1:50 pm
Code:
en[u]")"[/u],36
was soll denn das [u] sein?
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen So Okt 25, 2009 2:00 pm
Das sollte normalerweise die Stelle unterstreichen^^ Naja, fett, kursic und unterstrichen gehen im 'Code-Modus' wohl nicht.
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Aktion 3 mal hintereinander ausführen So Okt 25, 2009 2:24 pm
Das wird so nichts geben. Für die Engine enthält das zwei Strings:
Code:
Schedule("SetAction("Aufsaugen")",72);
einmal "SetAction(" und ")". Der rest ist für die Engine natürlich dann absolut unverständlich. Du kannst also die ' " ' nicht so verschachteln wie z.B. Klammern. Du kannst aber vor die inneren Anführungszeichen ein '\' setzen, sie also "escapen":
Code:
Schedule("SetAction(\"Aufsaugen\")",72);
Und es funzt!
PS: Solltest du den C4Scripter verwenden, müsste er das schon längst angezeigt haben. Falls nicht, würde ich einfach mal damit arbeiten
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen So Okt 25, 2009 4:28 pm
Habe ich den C4Skripter verwendet, der hats dann auch farblich hervorgehoben. Das man die dann escapen muss/kann, wusst ich nicht. Jedenfalls geht es jetzt, danke Flinti!
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen Di Okt 27, 2009 9:47 pm
Arrggg, jetzt hat es den Beitrag nicht abgeschickt und ich darf alles nochmal schreiben!! Also kurzfassung:
Wollte wegen ähnlichem Problem nicht gleich nen neuen Theard eröffnen, Aktion mit 3 Bildern und Delay 10, Soll bei Gegnerfund schaden aber nach dem Schadprozess 50 Frames lang nicht schaden. Skript:
Code:
protected func Damaging() { var Enemy=FindObject2(Find_InRect(-18,-18,35,36), Find_OCF(OCF_Living), Find_Exclude(this())); var Fairness;
ERROR: ';' expected, but found identifier (in Damaging, Luftpanzertest.c4s\Finster-Bowser.c4d\Script.c:178:3) Zeile mit der if-Abfrage.
kevda Feldmarschall
Anmeldedatum : 08.05.08
Thema: Re: Aktion 3 mal hintereinander ausführen Di Okt 27, 2009 9:51 pm
ist über der zeile mit der if abfrage (semikolon fehlt, sagt die error msg doch ';' expected). würde dir aber raten anstatt schedule effecte zu benutzen. und wenn du die abfrage vorne in dein code packst dann ist sie auch ein klein wenig perfomance freundlicher, auch wenn es kaum einen unterschied bemerkbar sein sollte
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen Di Okt 27, 2009 11:17 pm
Was über? Die Engine zeigte mir nur die if-Zeile an. Arrg, der kann man einfach nicht trauen^^ Aber wie meinst du die Abfrage vor den Code packen? Der ist ja an erster Stelle in der Funktion?
kevda Feldmarschall
Anmeldedatum : 08.05.08
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 12:27 am
if fairness kann man ganz oben packen, aber im grunde ist es wurscht
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 12:32 am
Ich finde auf Anhieb 2 Fehler.
einmal
Fairness=1
und es fehlt ein } am Ende.
Hark! "Fairness=1" - NIEMALS! Du willst nichts zuweisen, du willst etwas vergleichen. Du willst '=='
"Schedule("Fairness=1",50);" Das wird leider nicht Funktionieren. Zu dem Zeitpunkt ist die Variable schon längst aus deinem RAM verschwunden
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 12:55 am
Ok, die } hab ich dann später auch noch selbst entdeckt aber mit Fairness==1 wär ich nicht drauf gekommen. Gegen Abend sollte ich wohl einfach nicht skriptenAber wie kriegt mann dann noch das Schedule hin? Die Variable muss ja dann wieder zurückgestellt werden. Wäre ne local da besser?
EDIT: Irgendwas stimmt immer noch nicht mit dem Skript. Ganze Zeile mit der if-Abfrage laut Clonk: ERROR: operator "=" left side: got "any", but expected "&"! Dabei soll es ja Fairness vergleichen, ob es 1 ist.
Code:
protected func Damaging() { var Enemy=FindObject2(Find_InRect(-18,-18,35,36), Find_OCF(OCF_Living), Find_Exclude(this())); local Fairness;
Und wie mache ich, dass während der Aktion die Physical 'Walk'gesteigert wird(dass kann ich), aber beim Wechsel in eine andere Aktion wieder zurückgesetzt wird(dass kann ich wiederum nicht)
Pitri Feldmarschall
Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 11:57 am
Bowserkoopa schrieb:
protected func Damaging() { var Enemy=FindObject2(Find_InRect(-18,-18,35,36), Find_OCF(OCF_Living), Find_Exclude(this())); local Fairness;
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 12:54 pm
Achso, dann war das umgekehrt, dass ich geschrieben habe. Ach die lätigen'=' Zeichen Also eine if-Überprüfung von True oder False, überprüft immer nur auf True, so wie ich das sehe. Da wäre das wirklich die bessere Methode, denn dann hätte ich keine Probleme mit den Ist-Gleich Zeichen gehabt >.<
EDIT: Tut immer noch nicht ganz. Scheinbar überprüft if gar nicht immer auf True :S EDIT2: Da es ein PhaseCall ist, wird ja immer vor der Überprüfung auf true gewechselt Also local unter Initialize setzen und dort auf true stellen hat gewirkt. Danke an alle
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 6:37 pm
Schedule("Fairness=true",50);
Das darf nicht funzen.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 8:16 pm
Wieso darf es nicht? Es tut aber? Ich habe ne local draußgemacht.
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 8:20 pm
Ah! Sehr schön
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aktion 3 mal hintereinander ausführen Mi Okt 28, 2009 10:50 pm
Dann hätten wir das geklärt, zumindest bis zum nächsten Problem. Habe nämlich vor noch einige Fähigkeiten zu machen