Hast du den Code aus meinem vorherigen Beitrag #15 genutzt?
Zur Erklärung des Codes:
if (strcmp("/shpark",cmdtext, true, 10) == 0)
{
if (IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
{
if (!Shpark[playerid])
{
MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10,2.0);
GivePlayerMoney(playerid,-50);
SetTimer("parksh",5000,false);
Shpark[playerid] = 1;
return SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
}
MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100,2.0);
Shpark[playerid] = 0;
return SendClientMessage(playerid,GELB,"Fahre schnell durch sonst kostet es dich weiter 50$.");
}
return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
}
return SendClientMessage(playerid,ROT,"Dieser Befehl konnte nicht gefunden werden!");
}
Alles anzeigen
Zeile 1: sollte klar sein. Hier wird abgefragt, ob ein Spieler /shpark eingibt.
Zeile 3: befindet sich der Spieler in der Nähe (7 Meter) von Koordinate x,y,z
Zeile 5: parkt dieser Spieler noch nicht auf diesem Parkplatz, dann Zeilen 7 - 11 ausführen; Zeile 7 beweg das Objekt (Tor/Schranke) von x,y,z nach x,y,z - 10 mit der Geschwindigkeit 2.0
Zeile 13: Spieler parkt bereits hier, dann Schranke Richtung Position x,y,z mit der Geschwindigkeit 2.0 bewegen, Variable Shpark auf 0 setzen und Meldung ausgeben
Zeile 17: Spieler führt zwar den Befehl /shpark aus, aber befindet sich nicht in der Nähe der Koordinate x,y,z (Zeile 3)
Soll heissen, für die Schranke sind die Zeilen 7 und 13 wichtig. Zeile 7 bewegt Schranke nach unten (warum auch immer -10, k.A.), Zeile 17 bewegt sie wieder zurück.
Geht also die Schranke nicht, prüfe diese zwei Zeilen, ob die Koordinaten korrekt sind!
Nachtrag:
Was passiert eigentlich bei parksh? Du nutzt ja einen Timer (5 Sekunden bzw. 5000 Millisekunden). Zeig uns mal bitte diesen Code!