Straßensperre mit Rotation

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Wie kann ich es machen das auch die Rotation der PlayerID gezählt wird beim Setzen der Straßensperre. Also in die Richtung die PLAYERID schaut in die soll die Sperre gesetzt werden


    Der Befehl:
    if(listitem == 0)
    {
    SendClientMessage(playerid,GRAU,"Du hast eine kleine Straßensperre aufgestellt");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateObject(1459,x,y+1,z-0.4,0,0,0);
    return 1;
    }

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

  • Dankeschön klappt nun


    Jetzt hab ich noch eine Frage: Wie kann ich jede Sperre einzeln entfernen mit dem Listitem 2
    Der Code sieht bis jetzt so aus:
    if(listitem == 0)
    {
    SendClientMessage(playerid,GRAU,"Du hast eine kleine Straßensperre aufgestellt");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new Float:Angle;
    GetPlayerFacingAngle(playerid, Angle);
    CreateObject(1459,x,y+1,z-0.4,0,0,Angle);
    return 1;
    }
    if(listitem == 1)
    {
    return 1;
    }

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

  • //Ganz oben
    #define MAX_SSPERREN 10 //Maximale Sperren
    ssperre[MAX_SSPERREN][3],
    serstellt[MAX_SSPERREN],
    sobj[MAX_SSPERREN];


    //OnGameModeInit
    for(new i = 0; i<MAX_SSPERREN; i++)serstellt[i] = 0,ssperre[i][0] = 0,ssperre[i][1] = 0,ssperre[i][2] = 0;



    //OnDialogResponse
    if(listitem == 0)
    {
    SendClientMessage(playerid,GRAU,"Du hast eine kleine Straßensperre aufgestellt");
    new Float:x, Float:y, Float:z,Float:Angle,i;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, Angle);
    for(i = 0; i<MAX_SSPERREN; i++)
    {
    if(serstellt[i] == 1)continue;
    ssperre[i][0] = x,ssperre[i][1] = y, ssperre[i][2] = z,serstellt[i] = 1;
    return sobj[i] = CreateObject(1459,x,y+1,z-0.4,0,0,Angle);
    }
    return 1;
    }
    if(listitem == 1)
    {
    new Float:x, Float:y, Float:z,i;
    GetPlayerPos(playerid, x, y, z);
    for(i = 0; i<MAX_SSPERREN; i++)
    {
    if(serstellt[i] == 0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,3,ssperre[i][0],ssperre[i][1],ssperre[i][2]))return SendClientMessage(playerid,FARBE,"Du bist nicht in der Nähe einer Straßensperre!");//Oder was du auch immer ausgaben willst..
    serstellt[i] = 0,ssperre[i][0] = 0,ssperre[i][1] = 0,ssperre[i][2] = 0;
    DestroyObject(sobj[i]);
    return SendClientMessage(playerid,FARBE,"Du hast die Straßensperre erfolgreich entfernt.");
    }
    return 1;
    }


    Sollte so funktionieren..