Fragen zum Scripten

Zakk Wylde
Hi

Ich würde gerne Scripten Lernen. grosses Grinsen Habe Aber dazu mal ein paar fragen:

1. Frage: Lohnt es sich jetzt noch mit COD4 Scripten anzufangen oder sollte ich erst bei COD6(kann mann COD6 sagen?^^) anfangen? Also würd sich die scriptsprache groß ändern?

2. Frage: Was !muss! alles in eine Mod?

3. Frage: Wie habt ihr Scripten gelernt?

4. Frage: Wie kann ich z.B für einen Brush ein Script schreiben? Also das es sich auf der Z Achse 50 units bewegt oder so?

grosses Grinsen

Edit2: 5. Frage: was macht Nitify/Endon/Waittill?
Nightwing
zu 1: Die Scriptsprache wird voraussichtlich dieselbe sein.

zu 2: Das kommt darauf an, was der Mod alles ändern soll.

zu 3: Durch Versuch / Anwendung und mit Hilfe (und viel Geduld) der erfahrenen Scripter hier im Board.

zu 4: Da bin ich überfragt, da ich mich mit dem Radiant nicht auskenne.

zu 5: Sehr empfehlenswert: CoD 4 Script Documentation von IW.

ToM
Zakk Wylde
Danke Schonmal! grosses Grinsen

Zu 1: Yippiii Augenzwinkern

Zu 2: Hmmmmm achso... Naja OK dann is das erstmal egal...

Zu 3: grosses Grinsen

Zu 4: Achso schade...

Zu 5: Danke das ist Geil! grosses Grinsen ähm da fällt mir noch ne frage ein.

6. Frage: Wenn ich jetzt z.B Das hier habe:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
elem SetPulseFX( 40, 2000, 600 );//Was ist das elem?



(Das verändert doch diesen Roten rand der kommt wenn mann getroffen ist oder?)

Wo schreibe ich das dann rein? Und wie mache ich dadraus dann eine Mod?
Nightwing
Hmmm, ich würd sagen, Du beginnst lieber ganz von vorne.

Wenn Du in meinem vorigen Post die Scriptdocumentation öffnest und nach der Funktion SetPulseFX suchst,
wäre Deine erste Frage beantwortet.

ToM
Zakk Wylde

Zitat:

Original von Nightwing
Hmmm, ich würd sagen, Du beginnst lieber ganz von vorne.


Die Seite kenn ich schon und dort habe ich mir auch fast alles durchgelesen aber dort geht es mehr um den aufbau der Sprache oder? Da ich schon ein Jahr C++ "gelernt" habe gibt es damit eigentlich fast keine Probleme ich such nur mal was wo gezeigt wird wie ich zum beispiel Die Functionen aus der Documentation benutzen kann, wie ich eine mod mache(ModBuilder), was "self" ist, usw...

hmmmm wie soll ich dis sagen....
Nightwing
Ich verstehe, was Du meinst.

Ich hab mich vor einiger Zeit auch mit dem ModBuilder versucht, bin aber seitdem nicht mehr dazu gekommen.
Hier in diesem Thread findest vielleicht die ein oder andere nützliche Information.
Zum Modden allgemein warte mal ab, was OMWG dazu meint.

ToM
Zakk Wylde
OK grosses Grinsen Hoffe er sagt was nettes Augenzwinkern
steinacker

Zitat:

Da ich schon ein Jahr C++ "gelernt" habe gibt es damit eigentlich fast keine Probleme

ich habs in der technikerschule gehabt C++/visual C++
das ganze zeugs mit dem membervariablem, klassen, funktionen, vererbung, zugriffsparameter usw.
aber diese programmiererei bei cod bereitet mir immer noch kopfschmerzen

ich überleg da garnicht mehr viel, sondern nehme die scripte und pass die an meine gegebenheiten an
und an die "grundprogrammierung" kommst du nicht ran z.b. self, ent, usw.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
	ent = maps\mp\_utility::createLoopEffect( "fire2" ); //effeckt fire2 an x,y,z, erstellen
	ent.v[ "origin" ] = ( -4096, 1984, -2130 );
	ent.v[ "angles" ] = ( 0, 0, 0 );
	ent.v[ "fxid" ] = "fire2";
	ent.v[ "delay" ] = 16;
///////////////////////////////////////bsp 2
	self waittill ("trigger"); // auf den "schalter" warten, dann aufzug bewegen, wenn stillstand

	if (!level.elevatorMoving1)
		thread elevator_move1();
	}



das sind nur mal 2 kleine beispiele.
und seit cod haben die programmierer in ihren scripten immer noch axis vs. allies drin, also lohnt es sich auch noch für die zukünftigen cod's die vlt. noch kommen

OMWG iss da voll der checker
Zakk Wylde
hmmmm coool danke aber ich wollte "self" nicht verändern sondern wissen wofür es steht^^ Hab irgendwo gelesen das mann es in funktionen benutzen muss wenn sich auf einen player beziehen, ist das richtig?
und was macht/bedeutet ent?
bangingbernie
Da hast Du schon mal ein bischen:

Eine Variable kann verschiedene Werte annehmen wie z.b.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
 
IntegerVariable = 1; //Integer = Ganzzahlig 
FloatVariable = 0.5; //Float = Gleitkommazahl 
BoolVariable = true; //Bool = Wahr (true) oder Falsch (false) 
StringVariable = "ABCD"; //String = Text 



Deklarieren von Variablen:

Variablen können auf 3 verschiedene Arten deklariert werden:
1.) Funktionsbezogen --> var = 1;
2.) Globalbezogen --> level.var = 1;
3.) Entitybezogen --> ent.var = 1;


Funktionen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
 
funcMoveX() 
{ 
   self moveX( -4400,60,15,20 ); 
} 



Sobald diese Funktion aufgerufen wird, wird der Code in den Klammern {} ausgeführt. Funktionen kann man auch mit verschiedenen "Argumenten" erweitern:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
 
funcMoveX( xvalue, time, acceleration_time, deceleration_time ); 
{ 
   self moveX( xvalue, time, acceleration_time, deceleration_time ); 
} 
    
funcMoveX(-4400, 60, 15, 20 ); //Hier wird die Funktion aufgerufen 



Aufrufen von Funktionen:

Man kann eine Funktion aufrufen (Call) oder behandeln (thread). Der Unterschied zwischen den Beiden ist, das wenn eine Funktion als call aufgerufen wird, das Script solange unterbrochen wird bis die Funktion vollständig abgearbeitet ist. Wenn eine Funktion als thread behandelt wird, wird das Script währendessen weiter ausgeführt.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
 
funcMoveX(); //call 
thread funcMoveX(); //thread 




Logik:

if/else:

Das if ("wenn") dient dazu verschiedene Variablen miteinander zu vergleichen, oder grundsätzlich um zu überprüfen ob eine Bedingung zutrifft oder nicht.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
       
if( var ) // wenn var wahr ist 
if( !var ) //wenn var falsch ist 
if( var1 == var2 ) //wenn var1 gleich var2 ist 
if( var1 != var2 ) //wenn var1 nicht gleich var2 ist 



Z.B. will man, dass, wenn var1 gleich var2 ist, die funcMoveX() aufgerufen wird, ansonsten wird funcMoveY() aufgerufen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
 
if( var1 == var2 ) 
{ 
   funcMoveX(); 
} 
  
else 
{ 
   funcMoveY(); 
} 
                
funcMoveX() 
{ 
   self moveX(-4400, 60, 15, 20 ); 
} 
             
funcMoveY() 
{ 
  self moveY(-4400, 60, 15, 20 ); 
} 



Will man aber, dass, wenn var1 gleich var2 ist, funcMoveX() aufgerufen wird, var1 größer var2 ist funcMoveY aufgerufen wird, und wenn nichts von beiden zutrifft funcMoveZ() aufgerufen wird, schreibt man das so:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
 
if( var1 == var2 ) 
{ 
   funcMoveX(); 
} 
                
else if( var1 > var2 ) 
{ 
   funcMoveY(); 
} 
                
else 
{ 
   funcMoveZ(); 
} 
                
funcMoveX() 
{ 
   self moveX(-4400, 60, 15, 20 ); 
} 
             
funcMoveY() 
{ 
  self moveY(-4400, 60, 15, 20 ); 
} 

funcMoveZ() 
{ 
  self moveZ(-4400, 60, 15, 20 ); 
} 


Quelle


HIER findest Du auch noch interessante Sachen....
Zakk Wylde
Danke das hat schonmal ein paar fragen geklärt! grosses Grinsen

edit: hab deinen Link unter "Quelle" gar nicht gesehen....^^ Ohaaa das ist geil! vielen Dank! Komisch ich hab auf der seite auch schon gesucht hab aber das nicht gefunden, egal jetzt hab ichs^^