Sehr geehrte Community,
Heute werde ich euch zeigen, wie ihr ganz leicht ein Drivein erstellen könnt.
Nun der Beginn:
Inhalt:
1.0 Forwards
2.0 Public
3.0 Create3DTextLabel
4.0 Befehl
---
1.0 Forwards
Als erstes musst du ganz oben im Script folgende Forwards hinzufügen:
forward IsAtDrivein(playerid);
forward Drivein(playerid);
2.0 Public
Als zweites fügst du folgende zwei Public's ein:
public Drivein(playerid)
{
SetPlayerHealth(playerid,100.0); // Das Leben wird auf 100 Prozent gesetzt.
GivePlayerMoney(playerid,-20); // 20$ werden für das Essen abgezogen.
SendClientMessage(playerid, COLOR_GRAD4,"Personal: Ihr Essen wurde zubereitet! Auf wiedersehen, und einen Guten Hunger!");
TogglePlayerControllable(playerid, 1); // Der Spieler wird gefreezt.
GameTextForPlayer(playerid, "~r~ -20$", 3000, 1); // Ein Gametext.
}
public IsAtDrivein(playerid)
{
if(IsPlayerConnected(playerid)) // Der Spieler muss eingeloggt sein.
{
if(IsPlayerInRangeOfPoint(playerid,10.0,801.5522, -1628.91, 13.3828) || IsPlayerInRangeOfPoint(playerid,10.0,1209.958,-896.7405, 42.9259))
{
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0,-2341.86, 1021.184, 50.6953) || IsPlayerInRangeOfPoint(playerid,10.0,2485.291, 2022.611, 10.8203))
{
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0,1859.496, 2084.797, 10.8203) || IsPlayerInRangeOfPoint(playerid,10.0,-2349.49, -152.182, 35.3203))
{
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0,2409.651, -1488.65, 23.8281) || IsPlayerInRangeOfPoint(playerid,10.0,2377.733, -1909.27, 13.3828))
{
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0,2375.014, 2021.186, 10.8203))
{
return 1;
}
}
return 0;
}
3.0 Create3DTextLabel
Ich habe mich mit Absicht für 3DTextLabel's entschieden, da ich finde es wirkt besser und "neuer"
Diese Create3DTextLabel fügst du unter den CreatePickUps ein:
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,2375.014, 2021.186, 10.8203,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,2409.651, -1488.65, 23.8281,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,2377.733, -1909.27, 13.3828,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,1859.496, 2084.797, 10.8203,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,-2349.49, -152.182, 35.3203,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,-2341.86, 1021.184, 50.6953,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,2485.291, 2022.611, 10.8203,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,801.5522, -1628.91, 13.3828,15.0,0,0);
Create3DTextLabel("Drivein Schalter\nNutzen sie /drivein damit wir Ihre bestellung aufnehmen können!",0xFFFF00AA,1209.958,-896.7405, 42.9259,15.0,0,0);
4.0 Befehl
Als letztes erstellst du den Befehl, ohne diesen Befehl funktioniert nichts. Ist ja logisch.
if(strcmp(cmd, "/Drivein", true) == 0)
{
if(IsPlayerConnected(playerid)) // Der Spieler muss eingeloggt sein.
{
if(IsAtDrivein(playerid)) // Der Spieler muss an einem DriveIn sein.
{
SendClientMessage(playerid, COLOR_LIGHTBLUE," Willkommen am Drivein! Ihre bestellung wird aufgenommen!");
SendClientMessage(playerid, COLOR_LIGHTBLUE," Bitte warten Sie. Ihr Essen wird zubereitet.");
SendClientMessage(playerid, COLOR_LIGHTBLUE," Bitte haben Sie ein wenig Geduld.");
SetTimerEx("Drivein",7000,0,"i",playerid); // Timer wielang der Spieler warten muss. *
TogglePlayerControllable(playerid, 0); // Der Spieler wird unfreezt.
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Du bist an keinem Drivein !"); // Meldung wenn man an keinem Drivein Steht.
return 1;
}
}
return 1;
}
Ich habe einen Timer hinzugefügt, da es einfach realistischer wirkt und man nicht einfach direkt losfahren kann.
Das ist ziemlich praktisch, wenn man beispielsweise auf einer Jagd ist. Damit der Täter ( der sich healt ) nicht direkt abhauen kann.
Info:
Fragen werden gerne beantwortet.
Falls das hier fehl am Platz ist, bzw. es dies hier schon gibt kann dies gerne geschlossen / gelöscht werden.