Problem bei gov 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
  • Also ich wollte das so machen das nur Mitglieder des LSPD und der Army /gov machen können wenn sie mindestens Rang 9 haben...


    ocmd:gov(playerid,params[])
    {
    new t[128];
    new pID;
    if(sscanf(params,"u",pID)){return SendClientMessage (playerid,ROT,"Benutz: /gov [text]");}
    format(t, sizeof(t), "(( %s: %s ))", SpielerName(playerid), params);
    SendClientMessageToAll(0x00D7FFFF, t);
    if(GetPVarInt(playerid,"Fraktion") == 1 || GetPVarInt(playerid,"Fraktion") == 2)
    {
    if(GetPVarInt(playerid,"Rang") >= 9)
    {
    SendClientMessageToAll(0x00D7FFFF, t);
    }
    else
    {
    SendClientMessage (playerid,ROT,"Dazu brauchst du Rang 9.");
    }
    return 1;
    }
    else if(!isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2))
    {
    SendClientMessage (playerid,ROT,"Dazu bist du nicht Berechtigt.");
    return 1;
    }
    return 1;
    }


    Das Problem ist das wenn man im LSPD ist und Rang 9 oder höher hat die Nachicht 2 mal gesendet wird und wenn man unter Rang 9 ist kommt "Dazu musst du Rang 9 haben" aber die Nachricht wird trotzdem abgesendet...//edit: und das selbe auch wenn man nicht in Der army oder lspd ist ...

  • ocmd:gov(playerid,params[])
    {
    new t[128];
    new pID;
    if(sscanf(params,"u",pID)){return SendClientMessage (playerid,ROT,"Benutz: /gov [text]");}
    format(t, sizeof(t), "(( %s: %s ))", SpielerName(playerid), params);
    SendClientMessageToAll(0x00D7FFFF, t);
    if(GetPVarInt(playerid,"Fraktion") == 1 || GetPVarInt(playerid,"Fraktion") == 2) return SendClientMessage (playerid,ROT,"Dazu bist du nicht Berechtigt.");
    {
    if(GetPVarInt(playerid,"Rang") >= 9) return SendClientMessage (playerid,ROT,"Dazu brauchst du Rang 9.");
    {
    SendClientMessageToAll(0x00D7FFFF, t);
    }
    return 1;
    }
    return 1;
    }




    versuch es mal so

    Das gesammte Forum voller *Doppelzensierung hält einen vom Stress zugemüllt, da blickt man gar nimma durch.

  • Geht nicht ich habs jetzt so :


    ocmd:gov(playerid,params[])
    {
    new t[128];
    new pID;
    if(sscanf(params,"u",pID)){return SendClientMessage (playerid,ROT,"Benutz: /gov [text]");}
    format(t, sizeof(t), "(( %s: %s ))", SpielerName(playerid), params);
    SendClientMessageToAll(0x00D7FFFF, t);
    if(GetPVarInt(playerid,"Fraktion") != 1 || GetPVarInt(playerid,"Fraktion") != 2) return SendClientMessage (playerid,ROT,"Dazu bist du nicht Berechtigt.");
    if(GetPVarInt(playerid,"Rang") <= 8) return SendClientMessage (playerid,ROT,"Dazu brauchst du Rang 9.");
    SendClientMessageToAll(0x00D7FFFF, t);
    return 1;
    }


    Ich denke das liegt an if(GetPVarInt(playerid,"Fraktion") != 1 || GetPVarInt(playerid,"Fraktion") != 2) aber ich weiß nicht wie ich das anders machen könnte

  • != 1 also wenn es nicht 1 ist oder?


    ja also das || bedeutet ja oder, oder? xD


    also würde das heißen wenn er im LSPD ist sendet es die nachricht aber wenn er nicht in der Army ist auch die Fehlermeldung

  • Nope xD


    if(GetPVarInt(playerid,"Fraktion") != 1 || GetPVarInt(playerid,"Fraktion") != 2) return SendClientMessage (playerid,ROT,"Dazu bist du nicht Berechtigt.");


    Ist er nicht lspd/army returnt die nachricht

  • if(blabla == 1) return Message(Du bsit nicht 1)


    ehhr.. das heißt doch aber du bist 1 und nichts anderes , weil z.b. >= heißt du bist größer als 1 oder 1 oder ?


    //edit: naja ich habs hin bekommen :D danke dir ^^

    Einmal editiert, zuletzt von ~P4!N~ ()

  • Zitat

    format(t, sizeof(t), "(( %s: %s ))", SpielerName(playerid), params);

    params ?
    damit werden nur die Parameter definiert.


  • ocmd:gov(playerid,params[])
    {
    new t[128];
    if(sscanf(params,"s",t)){return SendClientMessage (playerid,ROT,"Benutz: /gov [text]");}
    format(t, sizeof(t), "(( %s: %s ))", SpielerName(playerid), t);
    SendClientMessageToAll(0x00D7FFFF, t);
    if(GetPVarInt(playerid,"Fraktion") != 1 || GetPVarInt(playerid,"Fraktion") != 2) return SendClientMessage (playerid,ROT,"Dazu bist du nicht Berechtigt.");
    if(GetPVarInt(playerid,"Rang") <= 8) return SendClientMessage (playerid,ROT,"Dazu brauchst du Rang 9.");
    SendClientMessageToAll(0x00D7FFFF, t);
    return 1;
    }

    kA obs so geht, aber auf jeden Fall hat was mit der SSCANF Zeile nicht gestimmt ^^

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Gaaaaaaanz einfach...
    Machs so
    ocmd:gov(playerid,params[])
    {
    new t[128];
    if(sscanf(params,"s",t)){return SendClientMessage (playerid,ROT,"Benutz: /gov [text]");}
    format(t, sizeof(t), "(( %s: %s ))", SpielerName(playerid), t);
    SendClientMessageToAll(0x00D7FFFF, t);
    if(GetPVarInt(playerid,"Fraktion") == 1 || GetPVarInt(playerid,"Fraktion") == 2)
    {
    if(GetPVarInt(playerid,"Rang") >= 9)
    {
    SendClientMessageToAll(0x00D7FFFF, t);
    }
    else
    {
    SendClientMessage (playerid,ROT,"Dazu brauchst du Rang 9.");
    }
    return 1;
    }
    else if(!isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2))
    {
    SendClientMessage (playerid,ROT,"Dazu bist du nicht Berechtigt.");
    return 1;
    }
    return 1;
    }



    Du hast da "u" gemacht ^^ also das das z.b. ne ID sein soll ^^ für nen text musst du "s" machen :D
    Und du hast gesagt das das nach dem /gov eine ID oder ein spielername sein soll xD
    Du musst dem sagen das der den text also t anzeigen soll xD


    Ach und das pID ist unnötig ^^ das brauchst du nicht da zu haben ^^