CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Aktion 3 mal hintereinander ausführen

Nach unten 
4 verfasser
AutorNachricht
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptySo 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
Nach oben Nach unten
kevda
Feldmarschall
Feldmarschall



Anmeldedatum : 08.05.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptySo Okt 25, 2009 1:50 pm

Code:
en[u]")"[/u],36

was soll denn das [u] sein?
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptySo Okt 25, 2009 2:00 pm

Das sollte normalerweise die Stelle unterstreichen^^ Naja, fett, kursic und unterstrichen gehen im 'Code-Modus' wohl nicht.
Nach oben Nach unten
Flinti
Kadett
Kadett



Männlich Alter : 31
Anmeldedatum : 07.04.09

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptySo 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 Wink
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptySo 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!
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyDi 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;

Fairness=1
if(Fairness=1 && Enemy)
{
Punch(Enemy,10);
Fairness=0;
Schedule("Fairness=1",50);

}

ERROR: ';' expected, but found identifier (in Damaging, Luftpanzertest.c4s\Finster-Bowser.c4d\Script.c:178:3) Zeile mit der if-Abfrage.
Nach oben Nach unten
kevda
Feldmarschall
Feldmarschall



Anmeldedatum : 08.05.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyDi Okt 27, 2009 9:51 pm

ist über der zeile mit der if abfrage (semikolon fehlt, sagt die error msg doch Razz ';' 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
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyDi 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?
Nach oben Nach unten
kevda
Feldmarschall
Feldmarschall



Anmeldedatum : 08.05.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi Okt 28, 2009 12:27 am

if fairness
kann man ganz oben packen, aber im grunde ist es wurscht
Nach oben Nach unten
Flinti
Kadett
Kadett



Männlich Alter : 31
Anmeldedatum : 07.04.09

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi 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 Wink
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi 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;

Fairness==1;
if(Enemy && Fairness=1 )
{
Punch(Enemy,10);
Fairness==0;
Schedule("Fairness==1",50);
}

}

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)
Nach oben Nach unten
Pitri
Feldmarschall
Feldmarschall
Pitri


Männlich Alter : 30
Ort : Karlsruhe
Anmeldedatum : 02.03.09

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi 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;

Fairness==1;
if(Enemy && Fairness=1 )
{
Punch(Enemy,10);
Fairness==0;
Schedule("Fairness==1",50);
}

}

>.< Autsch! das == gehört in das if rein!

== ist ein Vergleich
= ist eine Zuweisung.

du willst im if vergleichen, also gehört da ein == rein.
du willst die Variable ändern, also gehört da ein = rein

außerdem würde ich mit Booleans arbeiten (true und false)

Code:

var Enemy=FindObject2(Find_InRect(-18,-18,35,36), Find_OCF(OCF_Living), Find_Exclude(this()));
local Fairness;

Fairness=true;
if(Enemy && Fairness)
{
Punch(Enemy,10);
Fairness=false;
Schedule("Fairness=true",50);
}
Nach oben Nach unten
http://www.clonk-fanpage.lima-city.de
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi Okt 28, 2009 12:54 pm

Achso, dann war das umgekehrt, dass ich geschrieben habe. Ach die lätigen'=' Zeichen Very Happy
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 affraid Also local unter Initialize setzen und dort auf true stellen hat gewirkt. Danke an alle Very Happy
Nach oben Nach unten
Flinti
Kadett
Kadett



Männlich Alter : 31
Anmeldedatum : 07.04.09

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi Okt 28, 2009 6:37 pm

Schedule("Fairness=true",50);


Das darf nicht funzen.
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi Okt 28, 2009 8:16 pm

Wieso darf es nicht? Es tut aber? Ich habe ne local draußgemacht.
Nach oben Nach unten
Flinti
Kadett
Kadett



Männlich Alter : 31
Anmeldedatum : 07.04.09

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi Okt 28, 2009 8:20 pm

Ah! Sehr schön Smile
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen EmptyMi 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 Smile
Nach oben Nach unten
Gesponserte Inhalte





Aktion 3 mal hintereinander ausführen Empty
BeitragThema: Re: Aktion 3 mal hintereinander ausführen   Aktion 3 mal hintereinander ausführen Empty

Nach oben Nach unten
 
Aktion 3 mal hintereinander ausführen
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Scripthilfe-
Gehe zu: