Beiträge von LiamRowley

    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.

    1. Du fügst den Filterscript in den Ordner "Filterscript"
    2. Dann öffnest du die Server.cfg und schreibst den Namen in die Zeile "filterscripts"
    (Exakter Name erforderlich! D.h heißt das Filterscript Blo0B.pwn Musst du in die Zeile auch wirklich Blo0B reinschreiben. Das .pwn weglassen.)
    3. Speichern
    4. Server starten bzw. restarten wenn er schon an war.
    5. Draufconnecten, und los gehts.


    INFO:
    Wenn keine .amx Datei vorhanden ist, davor compilen.