Da ich sehe das viele ein Geldtransporter System wollen, habe ich mich dazu durchgebracht mein geliebtes System zu "veröffentlichen"...
Achtung: Es ist ein Geldtransporter System für LoH! Wer will kann es natürlich umschreiben. Alle Abfragungen basieren auf LoH Abfragen.
Es ist eigentlich ganz einfach und simple gemacht.
Schritt 1:
Am Anfang müsst ihr ein paar Sachen definieren:
//TransporterKlau
new CarRob[MAX_PLAYERS]; //Eine variable für das Abfragen ob der Spieler den Transporter klaut.
new Transporter[5]; //Sehen wir später mehr zu. Das ist nur für die Fahrzeuge.
#define TEAM_BLUE_COLOR 0x8D8DFF00 // Eine der Farben die wir später brauchen.
#define COLOR_RED 0xAA3333AA // Noch eine der Farben die wir später brauchen.
Schritt 2:
Nun erstellen wir unter OnGameModeInit die Geldtransporter und noch ein paar Objecte zur Verschönerung
public OnGameModeInit()
{
Transporter[1] = AddStaticVehicleEx(428,1531.46948242,-1006.67529297,24.32791519,195.99908447,7,7,15); //Geldtransporter 1
Transporter[2] = AddStaticVehicleEx(428,1527.69299316,-1009.80389404,24.32791519,223.99908447,7,7,15); //Geldtransporter 2
Transporter[3] = AddStaticVehicleEx(428,1536.12683105,-1005.45129395,24.32012558,177.99597168,7,7,15); //Geldtransporter 3
Transporter[4] = AddStaticVehicleEx(428,1540.00598145,-1005.41644287,24.32012558,177.99597168,7,7,15); //Geldtransporter 4
CreateObject(3881,1531.77624512,-1028.67895508,24.84796333,0.00000000,0.00000000,336.00000000); //object(airsecbooth_sfse) (1)
CreateObject(2933,1524.44018555,-1028.68688965,24.55014801,0.00000000,0.00000000,336.00000000); //object(pol_comp_gate) (1)
CreateObject(3852,1520.82092285,-1015.57202148,24.75112915,0.00000000,0.00000000,0.00000000); //object(sf_jump) (1)
CreateObject(3666,1517.84216309,-1031.71252441,23.30518532,0.00000000,0.00000000,0.00000000); //object(airuntest_las) (1)
CreateObject(3666,1528.67578125,-1036.61425781,23.30782890,0.00000000,0.00000000,0.00000000); //object(airuntest_las) (2)
CreateObject(9241,1434.68164062,-988.94183350,58.57452393,0.00000000,0.00000000,268.00000000); //object(copbits_sfn) (1)
CreateObject(8132,1503.36340332,-1024.02246094,25.41958618,0.00000000,0.00000000,276.00000000); //object(vgschurch03_lvs) (1)
CreateObject(987,1535.78820801,-1025.68835449,23.07812500,0.00000000,0.00000000,66.00000000); //object(elecfence_bar) (1)
CreateObject(987,1543.14392090,-1009.20489502,23.07812500,0.00000000,0.00000000,65.99487305); //object(elecfence_bar) (3)
CreateObject(1411,1519.94177246,-1024.83801270,24.43064117,0.00000000,0.00000000,280.00000000); //object(dyn_mesh_1) (1)
CreateObject(1411,1519.70825195,-1023.70733643,24.43012428,0.00000000,0.00000000,279.99755859); //object(dyn_mesh_1) (2)
CreateObject(987,1539.56542969,-1017.34942627,23.07812500,0.00000000,0.00000000,65.99487305); //object(elecfence_bar) (6)
return 1;
}
Schritt 3:
Damit abgefragt wird, ob der Spieler das Fahrzeug klaut, müssen wir unter OnPlayerStateChange folgendes einfügen.
Hier wird der Raub "richtig" gestartet:
if(veh == Transporter[1] || veh == Transporter[2] || veh == Transporter[3] || veh == Transporter[4]) //Fragt ab ob das Auto in das man gerade einsteigt ein Transporter ist
{
new cops=0; // Variable zum Abfragen wieviele Cops online sind
for(new i = 0; i < MAX_PLAYERS; i++) // EIne for Schleife damit alle User abgefragt werden.
{
if(IsPlayerConnected(i))
{
if(IsACop(i)) // Hier wird abgefragt ob der User ein Cop ist
{
cops++; // und hier wird unsere Variable um 1 erhöht. Das brauchen wir zur Abfrage ob 2 Cops online sind.
}
}
}
if(cops>1) // Hier wird geprüft ob 2 Cops oder mehr Online sind
{
new robname[MAX_PLAYER_NAME]; // Variable für den Namen des "Diebes"
GetPlayerName(playerid,robname,sizeof(robname)); // Hier Ermitteln wir den Namen des "Diebes"
SetPlayerCheckpoint(playerid,-1573.6975,127.5690,3.2554,5.0); // Setzt einen Checkpoint im SF Hafen
GameTextForPlayer(playerid,"Raub gestartet!",5000,1); // Gametext für den Spieler "Raub gestartet!"
CarRob[playerid]=1; // Nun wird unsere "Raub" Variable auf 1 gesetzt. Das heißt der Spieler klaut den Transporter
SendClientMessage(playerid,0xFF9933FF,"Du klaust einen Geldtransporter!"); // InfoText für den Spieler
SendClientMessage(playerid,0xFF9933FF,"Bringe den Geldtransporter zur Makierung und bekomm das Geld!"); // InfoText für den Spieler
cops=0; // Die Variable Cops wird wieder auf 0 gesetzt damit neue "Diebe" die Einsteigen auch wieder bei 0 Anfangen zu zählen
for(new i = 0; i < MAX_PLAYERS; i++) // wieder eine For Schleife für den Text der Cops
{
if(IsPlayerConnected(i)) // Fragt ab ob der Spieler Connected und Gespawnt ist
{
if(IsACop(i)) // Fragt ab ob der Spieler ein Cop ist
{
new RobText[100]; //Variable für den Text
format(RobText, sizeof(RobText), "HQ: Verbrechen: Geldtransporter-Klau, Gesuchter: %s",robname); // Hier setzten wir den Text ein, da ein Name eingesetzt wird, brauchen wir dafür ein format, da SendClientMessage das sonst nicht anzeigen kann.
SendClientMessage(i,TEAM_BLUE_COLOR,"HQ: Achtung Alle Einheiten! Eine Meldung vom Bank Security System!"); // Weiterer Info Text für die Cops
SendClientMessage(i,TEAM_BLUE_COLOR,RobText); // Hier sendet das Script die oben definierte Nachricht an den User
SendClientMessage(i,TEAM_BLUE_COLOR,"HQ: Begeben sie sich sofort zum SF Hafen!"); // Weiterer Info Text für die Cops
}
}
}
return 1;
}
else // Falls keine 2 Cops online sind
{
SendClientMessage(playerid,COLOR_RED,"Du kannst den Transporter nicht klauen, da keine 2 Cops online sind!"); // InfoText warum man den Transporter nicht klauen kann
TogglePlayerControllable(playerid,false); // Freezt den Spieler
TogglePlayerControllable(playerid,true); // Unfreezt den Spieler damit er sich wieder bewegen kann.
RemovePlayerFromVehicle(playerid); // Falls der Spieler es ins Auto geschafft hat wird er wieder "rausgeworfen" :D
return 1;
}
}
Gleich folgt der 2. Teil des Tuts...
Der passt hier aufgrund der Längenbegrenzung leider nichtmehr hin.