Beiträge von Jeffry

    Mit der Funktion.
    Bei dist (zweiter Parameter) gibst du die Distanz ab der Mitte des Fahrzeugs bis dahin aus, wo der Spieler stehen soll (wird so zwischen 3 und 7 liegen).


    C
    new Float:x, Float:y, Float:z;
    GetPosHinterVeh(FarmerFahrzeug[0], 6.0, x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
    {
        //...
    }

    https://wiki.sa-mp.com/wiki/Floatround wirst du ja nutzen.
    Dort gibt es die Möglichkeit die Methode einzustellen: https://wiki.sa-mp.com/wiki/Floatround_method




    Code
    floatround_round	Round to the nearest integer. A fractional part of exactly 0.5 rounds upwards (this is the default).
    floatround_floor	Round downwards.
    floatround_ceil		Round upwards.
    floatround_tozero	Round downwards for positive values and upwards for negative values (“truncate”).

    Das kannst du mit dieser Funktion machen.
    Funktioniert gleich wie GetVehiclePos oder GetPlayerPos etc... .

    C
    stock GetPosHinterVeh(vehicleid, Float:dist, &Float:x, &Float:y, &Float:z) //©Jeffry
    {
    	new Float:a;
    	GetVehicleZAngle(vehicleid, a);
    	GetVehiclePos(vehicleid, x, y, z);
    	x += (-dist * floatsin(-a, degrees));
    	y += (-dist * floatcos(-a, degrees));
    	return true;
    }

    @AroX : Das stimmt so nicht.


    So:


    C
    if (strcmp("/skilaztor", cmdtext, true, 10) == 0)
    {
    	if(GetPVarInt(playerid,"Clan")!=1)return SendClientMessage(playerid, FARBE_ROT, "Error: Du bist kein SkiLaZ Mitglied!");
    	static status;
    	if(!status) MoveObject(skilaztor, 316.69, -1191.82, 68.90, 1.0); //geht auf
    	else MoveObject(skilaztor, 316.69, -1191.82, 73.72, 1.0); //geht zu
    	status = !status;
    	return 1;
    }

    Die static Variable merkt sich den Wert.

    Es gab in den älteren SA-MP Versionen einen RCON Konsole im Client, damit konnte das gemacht werden.
    Heute besteht noch immer die Möglichkeit diese zu nutzen, oder alternativ über externe Panels (oft zum Beispiel bei Hostern in User Panels) darauf zuzugreifen.
    Mit entsprechenden Bots geht es natürlich auch, was dann diese Meldung verursacht. Derjenige der das versucht kommt also von extern und ist nicht im Server.


    Das kann durchaus auch über mehrere Stunden gehen, da spreche ich aus Erfahrung.

    So würdest du nur ein Tor, sprich Objekt, erstellen.


    Du musst das CreateObject bei OnGameModeInit haben, und im Befehl MoveObject nutzen.
    Hier ein Beispiel: http://wiki.sa-mp.com/wiki/MoveObject


    Damit sich das Objekt wieder an seine ursprüngliche Position zurück bewegt musst du mit SetTimer einen Timer starten und im public des Timers wieder MoveObject nutzen, zu der Position die auch bei CreateObject steht.

    Du hast da mehrere Fehler drin.
    Zum einen kannst du keinen Zeilenumbruch (\n) in SendClientMessage machen, und zum anderen kannst du mit SendClientMessage nicht mehr als 144 + 1 (EOS) Zeichen ausgeben. Deshalb hat es bei einem Spieler geklappt, da das Limit von 144 + 1 Zeichen nicht überschritten wurde.
    Gebe für jeden Spieler eine extra Zeile aus, dann klappt es:


    So, ich habe jetzt mal einen groben Blick drüber geworfen und die Änderungen gemacht.
    Versuche es so: (kompilieren kann ich es momentan nicht):