OldSchoolHack

Register / Login English

Mods

icon Thread: Mods

Join Date: May 2010

Posts: 5

Ich versuche mal zu helfen:

Basic GSC Scripting


In diesem kleinen TUT werde ich versuchen GSC-Programmierung vorzustellen.


(!)
CPP Code:
  1.  
  2. #include common_scripts\utility;
  3. #include maps\mp\_utility;
  4. #include maps\mp\gametypes\_hud_util;
  5.  
  6. // Dies sind immer die 3 obersten Zeilen einer GSC Datei
  7.  


Eine GSC Datei fäng meist mit der "init" Funktion an, hier im Beispiel in Kombination mit dem "doCommands" *Befehl*:

CPP Code:
  1.  
  2.  
  3. init() //Funktion
  4. {
  5. self.variable = 100; //setzt Variable
  6. self thread doCommands(); //geht zu "doCommands"
  7. }
  8.  
  9. doCommands() //Funktion erstellen
  10. {
  11. //Kommandos
  12. }
  13.  
  14.  
  15.  



Grundsätzlich sieht die Verwendung einer Funktion etwa so aus:

CPP Code:
  1.  
  2. Funktion (argument1, argument2, argument3…)
  3. {
  4. //Kommandos
  5. }
  6.  

Die meisten Funktionen die in einer GSC zu finden sind haben keine Argumente...

Beispiel mit Argumenten:


CPP Code:
  1.  
  2. init()
  3. {
  4. self thread iniNuke(1,12,20,5); //Wert der 4 verwendeten Argumente 1= days 12= hours 20= minutes 5= seconds
  5. }
  6.  
  7. iniNuke( days, hours, minutes, seconds ) //Funktion + Argumente
  8. {
  9. self endon ( "disconnect" ); //Stopt wenn Verbindung abbricht
  10. self endon ( "death" ); //Stopt wenn du Stirbst
  11. setDvar( "scr_airdrop_nuke", 0 ); //Abwurfkisten-Einstellung für Atombombe = 0
  12. setDvar( "scr_nuketimer", 18664993205 ); //Erkläre ich seperat
  13. }
  14.  

Erklärung zu "scr_nuketimer":

Wie ihr euch sicher denken könnt bestimmt dieser Befehl die Zeit der Atombombe.. Damit der Script funktioniert müssen wir "scr_nuketimer" auf den gleichen Wert stellen wie die Argumente...
Und da "scr_nuketimer" auf Sekunden anspringt müssen wir ein bisschen rechnen...

1*24*60*60+12*60*60+20*60+5= 18664993205 // soviele Sekunden muss "scr_nuketimer" laufen



Nun zum If-Then-Else Statement:

CPP Code:
  1.  
  2.  
  3. if (self.name=="Stereo") {
  4. self thread iniHost();
  5. } else {
  6. self thread mapsmpgametypes_hud_message::hintMessage( "Willkommen zu Stereo's Lobby" );
  7. }
  8.  

Diese Abfrage prüft ob "Stereo" der Host ist. Falls ja, wird die Hud Massage  "Willkommen zu Stereo's Lobby" angezeigt.

Man kann auch mehrere Namen gleichzeitig prüfen:


CPP Code:
  1.  
  2. if (self.name == "Stereo" || self.name == "beeeh1991" || self.name == "aaaah1991") {
  3.  



Zum While Statement:

Um es kurz zu machen, es handelt sich um eine Schlaufe:

CPP Code:
  1.  
  2. doRainMoney()
  3. {
  4. self endon ( "disconnect" );
  5. self endon ( "death" );
  6. while(1) // Schlaufen Befehl (Wert 1= True 0= False)
  7. {
  8. playFx( level._effect["money"], self getTagOrigin( "j_spine4" ) ); //Regen durch Geld ersetzten
  9. wait 0.5; // Warte 0.5 Sekunden
  10. }
  11. }
  12.  

Ist der Wert auf 1 ist die Schlaufe anerkannt. Auf 0 wird der Befehl einmalig ausgeführt.

So..

Da ich keine Lust habe alles hier zu posten unterbreche ich mal...

Falls das Feedback positiv ist werde ich weitere Teile des Tuts schreiben.

Weitere Informationen unter: www.im00studios.com

Greez