GTA SAN ANDREAS
MODS for


Erste Schritte mit Sannybuilder für Cleo-Script schreiben
- Installier Dir den Sannybuilder von Seemann und leg Dir einen Ordner für deine Scripte an
- www.sannybuilder.com
- Dabei musst Du den Pfad zu deiner GTASA-Instalationsverzeichnis
angeben.
Starte Sannybuilder, - Öffne eine neue leere Seite, kopier das Script unten und fügs in die neue Seite ein.
- Speichere es in deinem Sannyscripte-Ordner und gib ihm dabei einen Namen.
- Kompiliere das Script. Klick dazu im Menue oben auf START und wähle kompilieren + kopieren
- Wenn die CLEO - Library installiert ist, wird das script kompiliert und in den GTASA\CLEO - Ordner kopiert
- Die Cleo-Scriptdatei erhält dann als Dateiformat die Endung, die in der Cleo-Direktive am Scriptanfang einzutragen ist
- {$CLEO .cs} = Cleo-Direktive,
wird zu *.cs kompiliert
- Als DEMOTEXT.txt gespeichert und zu DEMOTEXT.cs kompiliert
- Wenn CLEO NICHT installiert ist, dann
fordet sannybuilder dazu auf und am rechten unteren Fensterand,
erscheint das CLEO - Feld mit rotem Rahmen. Klick drauf und der Sannybuilder installiert Cleo sofort.
Oder saug Dir hier die Cleo-Basis-Dateien, da steht auch wie es geht, vor allem wie man das Text-Plug-In richtig installiert.
- War der kompilieren + kopieren -Vorgang erfolgreich, wird die Report-Melung ausgegeben
- diese mit Klick auf OK bestatigen.
die unterste Angabe "Largest Script" gibt die Größe des Cleo scripts an
die anderen beziehen sich auf das Kompilieren einer main.scm - Teste jetzt das Script im Spiel, drücke Feuertaste, dann wird die Textmeldung OK ausgegeben
- Das Script wird dann beendet, deaktiviert, weil es mit dem opcode 0A93: end_custom_thread endet
- 0A93: end_custom_thread ist ein Code,
den Seemann extra für Cleoscripte programmiert hat
Die Originalversion des Codes, die in der main.scm genutzt wird, wäre 004E: end_thread
Die extra Cleo-opcodes findet man in der Sannybuilder-HILFE unter CLEO 3 Code Library >> CLEO 3: opcodes - siehe auch Besonderheiten in Cleo
- Als nächstes solltet ihr euch über die Grundlagen fürs Cleo-Scripten informieren
- Beschreibung der Sannybuilder-Funktionen
- Koordinaten auslesen
- Der Opcode
- DATA TYPE MEANING/Die Zeichen und ihre Bedeutung
- oder scrollt etwas nach unten und probiert euer erstes eigenes Cleoscript zum Autos platzieren
{$CLEO .cs}
:DEMOTEXT
03A4: name_thread "DEMO"
wait 1000
:DEMOTEXT_1
wait 0
if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @DEMOTEXT_1
if
00E1: key_pressed 0 17
004D: jump_if_false @DEMOTEXT_1
00BA: text_styled 'FEM_OK' 1000 ms 1
0A93: end_custom_thread
Autos platzieren(Parked cars) und Waffen-Pickups
- Bei parked cars oder pickups oder ähnlichen Dingen muss der Script-Status gespeichert werden.
- Dazu trägt man zu Scriptbeginn folgenden code ein:
- 0A95: enable_thread_saving
- Cleo erstellt dann beim speichern zusätzliche speicherdateien, die unter
- CLEO\Cleo_save abgelegt werden.
- wenn 0A95: enable_thread_saving fehlt und man speichert und lädt dann diesen speicherstand gibt es eine weitere instanz des parked cars
- wenn man das mehrmals macht hat man mehrmals das selbe parked car
Beispielscript: - Beschreibung des parked car-codes
{$CLEO .cs}
:PaCar_1
03A4: name_thread "PACR"
0001: wait 1000 ms
0A95: enable_thread_saving
014B: 1@ = init_parked_car_generator #BANSHEE -1 -1 1 alarm 0 door_lock 0 0 10000 at 920.1994 2020.546 11.79 angle 100.0
014C: set_parked_car_generator 1@ cars_to_generate_to 101
032B: 2@ = create_weapon_pickup #MINIGUN 15 ammo 5000 at 2113.373 1520.674 10.82
0A93: end_custom_thread
parked cars erfordern 2 code-zeilen
1. der code zur Definition des vehikels
014B: 1@ = init_parked_car_generator #PCJ600 0 17 1 alarm 0 door_lock 0 0 10000 at 2490.0 -1682.0 13.5 angle 90.0
2. der code für das Einschalten der parked car-Funktion
014C: set_parked_car_generator 1@ cars_to_generate_to 101
generate_to 101 bedeuted, daß das car immerwieder erscheint
generate_to 0 bedeuted, daß die Funktion deaktiviert ist
der code zur Definition des vehikels im Detail
014B: ist der opcode zur Ausführung der Funktion
1@ ist der Variabel-Namen unter dem im Spiel das "parked-car" registriert wird
#PCJ600 ist der Dateiname des Modells, zur Angabe eines Dateinamens wird ein # (Raute/hash) davorgestellt
Anstatt des Dateinamens kann auch nur die ID-Nummer eingetragen werden, ohne Verwendung von # (Raute/hash)
Das würde so aussehen:
//--mit ID-Nummer:
014B: 1@ = init_parked_car_generator 461 0 17 1 alarm 0 door_lock 0 0 10000 at 2490.0 -1682.0 13.5 angle 90.0
//--mit Dateiname:
014B: 1@ = init_parked_car_generator #PCJ600 0 17 1 alarm 0 door_lock 0 0 10000 at 2490.0 -1682.0 13.5 angle 90.0
Dateiname oder ID-Nummer
muß auf jedenfall in der VEHICLES.IDE vorkommen
in den Parametern hinterm Dateiname #PCJ600 0 17 1 kann die Farbe bestimmt werden
der erste Parameter, in diesem Fall die 0 ist die Primär-farbe, 0=schwarz
der zweite Parameter, in diesem Fall die 17 ist die Sekundär-farbe, 17=dunkelrot
wird in dem Farbparameter -1 eingetragen, dann wird die Farbe nach Zufall gewählt
im Parametern alarm 0 kann ein Wert zwischen 0 und 100 eingetragen werden
das entspricht einer Prozentangabe und bestimmt die Wahrscheinlichkeit ob bei dem auto der arlarm angeht
im Parametern door_lock 0 kann ein Wert zwischen 0 und 100 eingetragen werden
das entspricht einer Prozentangabe und bestimmt die Wahrscheinlichkeit ob das auto abgeschlossen ist
in den letzten Parametern at 2490.0 -1682.0 13.5 angle 90.0 werden die Koordinaten und die Winkelausrichtung eingetragen
zur Bestimmung des Ortes für die Platzierung
Hier dürfen nur kommagetrennte Werte (floating points value)eingetragen werden
wobei anstatt eines Kommas, ein Punkt . zu setzen ist.
at 2490.0 -1682.0 13.5
entspricht
at X-koordinate Y-koordinate Z-koordinate
angle 90.0 , für die Winkelausrichtung im Kreisbogen kann ein Wert zwischen 0.0 und 360.0 Grad eingetragen werden
- Beschreibung der pickup-codes
es gibt dafür 2 verschiedene codes
032B: für Waffen mit Munition und für den Jetpack
0213: für Schlagwaffen und Objekte wie der Fallschirm (GUN_PARA) oder die Schutzweste (1242, bodyarmour)
032B: 2@ = create_weapon_pickup #AK47 15 ammo 3000 at 2490.0 -1662.0 13.5
0213: 3@ = create_pickup #gun_para type 15 at 2494.0 -1662.0 13.5
032B: oder 0213: ist der opcode zur Ausführung der Funktion
2@ bzw. 3@ ist der Variabel-Namen unter dem im Spiel das Pick-Up registriert wird
#AK47 ist der Dateiname des Modells, zur Angabe eines Dateinamens wird ein # (Raute/hash) davorgestellt
Anstatt des Dateinamens kann auch nur die ID-Nummer eingetragen werden, ohne Verwendung von # (Raute/hash)
Das würde so aussehen:
//--mit ID-Nummer:
032B: 2@ = create_weapon_pickup 355 15 ammo 3000 at 2490.0 -1662.0 13.5
//--mit Dateiname:
032B: 2@ = create_weapon_pickup #AK47 15 ammo 3000 at 2490.0 -1662.0 13.5
Dateiname oder ID-Nummer von Waffen
muß auf jedenfall in der DEFAULT.IDE vorkommenEinsetzen des Objektnamens, ist nur mit Objekten (Schlagwaffen und Zubehör) der default.ide möglich, z.B. #gun_para
health und pickupsave und Schutzweste hingegen befinden sich in der data\maps\generic\dynamic.ide und erforden den Eintrag der ID-Nummerbei Einsetzen der ID-Nummer von Objekten, also auch für Objekt-Pickups muss diese Nummer in einer der IDE-Dateien vorhanden sein
der Parameter hinterm Dateiname #AK47 15 gibt den Pickup-Typ an
Typ 15 ist ein Pickup, der immerwieder erscheint
Typ 3 ist ein Pickup, der nur einmal erscheintbeim Waffen-Pickup kann im Parameter ammo 3000 die Munitionsmenge angegeben werden,
die die Pickup-Waffe haben soll.
Maximum ist 99999
in den letzten Parametern at 2490.0 -1662.0 13.5 werden die Koordinaten eingetragen
zur Bestimmung des Ortes für die Platzierung
Hier dürfen nur kommagetrennte Werte (floating points value)eingetragen werden
wobei anstatt eines Kommas, ein Punkt . zu setzen ist.
at 2490.0 -1662.0 13.5
entspricht
at X-koordinate Y-koordinate Z-koordinate
