public func Hit(){ DrawParticleCircle(this,70,RGB(0,255)); for(var obj in FindObjects(Find_Distance(70),Find_Exclude(this),Find_NoContainer()))AddEffect("IntParticleRing",obj,1,90,0,GetID());}
Das letzte ist zwar ein Extrembeispiel, aber solchen Code lese ich mir eigentlich erst gar nicht durch.
Genauso sinnfrei sind die meisten leeren Klammern. Damals musste man noch OCF_Living() schreiben, heute schreibt man aber OCF_Living, ohne Klammern. Alle OCF_*, C4D_*, C4MN_* und wasweißich-s sind in der Engine definierte Konstaten, die dann durch ihren definierten Wert ersetzt werden. 'return' ist auch keine Funktion, jegliche Formen von Klammern sind also sinnlos. 'return(1)' sollte 'return 1' heißen. 2 Tastendrücke weniger (Natürlich können die Klammern der Übersichtlichkeit halber trotzdem gesetzt werden. Nur leere Klammern sind absolut sinnfrei). Auch die this-Klammern sind vollkommen sinnfrei. 'this' ist seit längerem keine Funktion mehr. Wer unbedingt Klammern schreiben will, soll es tun. 'return(((((1)))))' funktioniert auch.
Wenn jemand weiteren Unsinn kennt, soll er ihn posten.
Was ist in C4-Script sinnig?
Zuerst einmal ist es sinnig, nicht die oben beschriebenen unsinnigen Sachen zu machen. Darunter fällt also die vernünftige Code-Einrückung und das weglassen sinnfreier Klammern.
Dazu ist es sinnig:
-mehrfach benutzte Anweisungen in eine Funktion zu packen -den Code zu kommentieren, aber nicht jede Zeile zu kommentieren, sonern ein gesundes Mittelmaß zu finden -Funktionen und Variablen aussagekräftige Namen zu geben -keine Veralteten Funktionen zu verwenden(Mul, Div, Add sind tolle Beispiele )
Das Gegenteil dieser sinnhaften Sachen ist natürlich sinnfrei, logisch.
Warum #strict 2?
Zuerst: #strict 2 ist kein Mehraufwand. Man muss lediglich eine 2 hinter das #strict schreiben! Unglaublich viel Arbeit!
Dann werden leere Klammern bei Nicht-Funktionen erst gar nicht mehr akzeptiert (return() ist ein Fehler, OCF_Living() auch)
Weiter gibt es die Operatoren ne, eq und S= für String-Vergleiche nicht mehr. Strings werden mit == und != verglichen.
Und: In #strict 2 kann man den Inhalt von Arrays vernünftig vergleichen.
Dann noch ein weiterer Unterschied, ich zitiere mich dazu einmal selbst:
Zitat :
Du schreibst
Code:
if(bla() && bla2()) irgendwas;
Bei #strict führt die Engine einfach beide Funktionen aus und überprüft, ob sie ungleich 0 sind. Sollte dem so sein, führt sie 'irgendwas' aus. Bei #strict 2 aber führt die Engine bla() aus, überprüft ob der Wert ungleich 0 ist, und sollte der Wert tatsächlich 0 sein, wird bla2() nicht mehr ausgeführt, da sowieso nicht mehr beide Ausdrücke ungleich 0 sein können.
Das vermeidet komische 'Object Call: Target ist zero'-Fehler in solchem code, falls obj nicht existiert:
Code: if(obj && obj->~Wasauchimmer()) blabla;
Ich hoffe, das ihr Anfänger hieraus etwas lernen könnt und nicht eure Zeit mit Tippen und Code-Entschlüsseln verschwendet
EDIT 2: Das heißt allerdings wohl nicht, dass sinnfrei kein deutsches Wort ist. sinnfrei und sinnlos ist aber nicht dasselbe.
Flinti Kadett
Alter : 30 Anmeldedatum : 07.04.09
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 Mo Okt 26, 2009 1:25 am
Ist das Thema so unbeliebt hier? Oder warum schreibt niemand?
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 Mi Okt 28, 2009 11:42 am
Gibt ja net so viele Fragen zu dem Thema. Ich schreibe eben auch eher in dem Stil wie im Tut und es ist viel übersichtlicher. Allerdings ist es so, dass ich durch die vielen Funktionen der StartCall und Endcalls der Aktion und ganzen Controls die Übersicht verliere
Flinti Kadett
Alter : 30 Anmeldedatum : 07.04.09
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 Mi Okt 28, 2009 6:33 pm
C4Scripter ftw!
In welchem Stil welches Tutorials? Dieses' hier?
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 Mi Okt 28, 2009 8:13 pm
c4Skripter hab ich schon, aber ich vergesse bei 30 Funktionen einfach welche wohin gehören. StartCalls von Aktionen, Fähigkeiten, usw Jup, im Stil von dem Tut, also schöne Absätze und gut eingerückt.
Flinti Kadett
Alter : 30 Anmeldedatum : 07.04.09
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 Mo Nov 09, 2009 1:55 pm
Jup, Einrückung ist einfach verdammt wichtig. Es geht auch schlimmer als 30 Funktionen. Auf ~2000 Zeilen kommt schon ordentlich was zusammen. Da hilft dann nur noch gute Sortierung und ein gutes Gedächnis
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 So März 07, 2010 1:24 pm
Ist es eigentlich akzeptabel, geschweifte Klammern der Übersichtlichkeit halber in die Zeile der aufrufenden Funktion zu schreiben - etwa so?
Code:
protected func Initialize {
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2 So März 07, 2010 3:03 pm
Sicher ist das Akzeptabel. Jeder hat schließlich seinen eigenen Stil. Deswegen werde Ich auch nie auch strict 2 umsteigen, weil ich einfach finde, return brauch Klammern, genauso wie this. Solange du nicht im Team arbeitest, oder deinen Code aus irgenteinem anderen Grund teilen musst, kannst du ihn schreiben, wie es dir passt. Und für so eine Klammer wird dir keiner den Kopf abreißen. Schwieriger wird schon, wenn du z.B. vor neuen Funktionen keinen Absatz lässt oder so.
Gesponserte Inhalte
Thema: Re: Über Sinn und Unsinn in C4-Script und #strict 2