Problem mit /setfraktion und befehl

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
  • Hallo
    wie schon oben steht habe ich eine frage zu /setfraktion und einem befehl.


    Also bei /setfraktion habe ich die befürchtung dass es nicht wirklich klappt es steht zwar da aber ob es das wirklich ausführt bin ich mir nicht so sicher.
    Ich habe im Pd ein tor gemappt das ich mit/pd öffnen kann soweit der Spieler in der Fraktion ist die ich so abfrage


    if(IstSpielerInFraktion(playerid, 2))
    #define sFraktion "LSPD"
    #define sFraktion2 "FBI"
    #define sFraktion3 "Bundeswehr"


    hier noch der stock
    stock IstSpielerInFraktion(playerid,fraktionsid)
    {
    if(sSpieler[playerid][Fraktion] == fraktionsid) return 1;
    return 0;
    }


    Doch wenn ich jetzt eingebe /setfraktion 0 2 kann ich es trotzdem nicht öffnen
    dann habe ich mal getestet ob es die Fraktion auch speicher und das tut sie auch nicht
    ..


    Bitte um hilfe


    hier noch der komplette /setfraktion befehl
    CMD:setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid,2))return SendClientMessage(playerid,Rot,"Du bist kein Admin");
    new pID,frakid;
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pID,frakid))return SCM(playerid,Blau,"Benutze: /setfraktion [playerid] [Fraktion]!");
    if(pID == INVALID_PLAYER_ID)return SCM(playerid,Rot,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pID,frakid) == frakid)
    sSpieler[pID][Fraktion] = frakid;
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    SCM(pID,Blau,"Du wurdest einer Fraktion zugewiesen!");
    return 1;
    }

    Mit freundlichen Grüßen
    Siepac


  • CMD:setfraktion(playerid,params[])
    {
    if(sSpieler[playerid][Adminlevel] == 0)return SendClientMessage(playerid,Rot,"Du bist kein Admin");
    new pID,frakid;
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pID,frakid))return SCM(playerid,Blau,"Benutze: /setfraktion [playerid] [Fraktion]!");
    if(pID == INVALID_PLAYER_ID)return SCM(playerid,Rot,"Ungültiger Spieler");
    sSpieler[pID][Fraktion] = frakid;
    GetPlayerName(pID,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    dini_IntSet(Spieler,"Fraktion",frakid);
    SCM(pID,Blau,"Du wurdest einer Fraktion zugewiesen!");
    return 1;
    }


    €: Ein Fehler nach dem anderen verbessert.

    2 Mal editiert, zuletzt von Showtek ()

  • okey jetzt speichert es
    doch tore gehen immer noch nicht auf..


    Würdest du mir meine fehler sagen will ja auch wissen was ich falsch geschrieben habe ;)
    Hier der code für das tor


    if (strcmp("/pd", cmdtext, true, 10) == 0)//den Befehl könnt ihr jederzeit beliebig ändern
    {
    if(IstSpielerInFraktion(playerid,2))
    {
    if(IsPlayerInRangeOfPoint(playerid,5,246.3600006,72.6699982,1003.8400269))
    {
    MoveObject(pdtuer, 244.3699951,72.6800003,1003.8400269,2.0);
    SetTimer("GateClosetGate",5000,0);
    }
    else
    {
    SendClientMessage(playerid,Blau,"Du bist kein Cop");
    }
    }
    }

    Mit freundlichen Grüßen
    Siepac

  • if (strcmp("/pd", cmdtext, true, 10) == 0)//den Befehl könnt ihr jederzeit beliebig ändern
    {
    if(sSpieler[playerid][Fraktion] == 2)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,246.3600006,72.6699982,1003.8400269))
    {
    MoveObject(pdtuer, 244.3699951,72.6800003,1003.8400269,2.0);
    SetTimer("GateClosetGate",5000,0);
    }
    else
    {
    SendClientMessage(playerid,Blau,"Du bist kein Cop");
    }
    }
    }


    Ist es ein Tor das nach unten sinkt?

  • klappt immernoch nicht und warum soll ich eigentlich


    if(sSpieler[playerid][Fraktion] == 2)
    statt
    if(IstSpielerInFraktion(playerid,2))
    machen denn ich habe ja einen Stock erstellt


    stock IstSpielerInFraktion(playerid,fraktionsid)
    {
    if(sSpieler[playerid][Fraktion] == fraktionsid) return 1;
    return 0;
    }

    Mit freundlichen Grüßen
    Siepac

  • Hier dein Gate Befehl :)


    CMD:pd(playerid,params[])
    {
    if(IstSpielerInFraktion(playerid,2))return SendClientMessage(playerid,FARBE,"Du bist kein Cop");
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,244.3699951,72.6800003,1003.8400269))
    {
    MoveObject(pdtuer, 244.3699951,72.6800003,1003.8400269,2.0);
    SetTimer("GateClosetGate",5000,0);
    }
    }
    return 1;
    }

  • Weil du mit deinem Stock nur ein bestimmtes Level abfragen kannst.
    Wenn du sicher bist, dass du den Spieler, bevor du versucht hast das Tor zu öffnen, in Fraktion 2 gesetzt hast, poste bitte mal wie du das Tor erstellst.
    Und soll das Tor sinken oder ist es eines, das sich zur Seite bewegt?

  • Problem gelößt
    bei der abfrage ob der spieler in der fraktion ist mit
    if(!IstSpielerInFraktion(playerid,2))
    habe ich das ! vergessen :)


    doch irgendwie kommt die tür nichtmehr zurück :O
    ist per timer gesteuert

    Mit freundlichen Grüßen
    Siepac