aduty raus gehen

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 mache ich das , dass es bei nochmal /aduty eingabe , die Person offduty geht.



    ocmd:aduty(playerid,params[]) //Admin Duty
    {
    new Text3D:ADuty[MAX_PLAYER_NAME],adminduty[128];
    new Float:X, Float:Y, Float:Z;
    if(!isPlayerAnAdmin(playerid,6)) return SendClientMessage(playerid,ROT,"Fehler: Deine Rechte reichen nicht aus!");
    {
    if(adminduty[playerid] == 0)
    {

    GetPlayerPos (playerid, X, Y, Z);
    ADuty[playerid] = Create3DTextLabel("Admindienst",ROT,X,Y,Z,50.0,0,0);
    format(adminduty,sizeof(adminduty),"*** %s ist im Admin Dienst Grund: %s",SpielerName(playerid));
    SendClientMessageToAll(ROT,adminduty);
    Attach3DTextLabelToPlayer(ADuty[playerid], playerid, 0.0, 0.0, 0.75);
    adminduty[playerid] = 1;
    }
    else
    {
    adminduty[playerid] = 0;
    Delete3DTextLabel(ADuty[playerid]);
    format(adminduty,sizeof(adminduty),"**** %s ist Nicht Mehr im Admin Dienst",SpielerName(playerid));
    SendClientMessageToAll(ROT,adminduty);
    }


    }
    return 1;
    }

  • Versuch so:ocmd:aduty(playerid,params[]) //Admin Duty
    {
    new Text3D:ADuty[MAX_PLAYER_NAME],adminduty[128];
    new Float:X, Float:Y, Float:Z;
    if(!isPlayerAnAdmin(playerid,6)) return SendClientMessage(playerid,ROT,"Fehler: Deine Rechte reichen nicht aus!");
    {
    if(adminduty[playerid] == 0)
    {
    new string[128];
    GetPlayerPos (playerid, X, Y, Z);
    ADuty[playerid] = Create3DTextLabel("Admindienst",ROT,X,Y,Z,50.0,0,0);
    format(string,sizeof(string),"*** %s ist im Admin Dienst Grund: %s",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    Attach3DTextLabelToPlayer(ADuty[playerid], playerid, 0.0, 0.0, 0.75);
    adminduty[playerid] = 1;
    }
    else if(ADuty[playerid] == 1)
    {
    adminduty[playerid] = 0;
    Delete3DTextLabel(ADuty[playerid]);
    format(string,sizeof(string),"**** %s ist Nicht Mehr im Admin Dienst",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    SetPlayerColor(playerid, COLOR_WHITE);
    }


    }
    return 1;
    }

  • ocmd:aduty(playerid,params[]) //Admin Duty
    {
    new Text3D:ADuty[MAX_PLAYER_NAME],adminduty[128];
    new Float:X, Float:Y, Float:Z;
    if(!isPlayerAnAdmin(playerid,6)) return SendClientMessage(playerid,ROT,"Fehler: Deine Rechte reichen nicht aus!");
    if(adminduty[playerid] == 0)
    {
    new string[128];
    GetPlayerPos (playerid, X, Y, Z);
    ADuty[playerid] = Create3DTextLabel("Admindienst",ROT,X,Y,Z,50.0,0,0);
    format(string,sizeof(string),"*** %s ist im Admin Dienst Grund: %s",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    Attach3DTextLabelToPlayer(ADuty[playerid], playerid, 0.0, 0.0, 0.75);
    adminduty[playerid] = 1;
    }
    //else if(ADuty[playerid] == 1) //fällt euch was auf?
    else
    {
    adminduty[playerid] = 0;
    Delete3DTextLabel(ADuty[playerid]);
    format(string,sizeof(string),"**** %s ist Nicht Mehr im Admin Dienst",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    SetPlayerColor(playerid, COLOR_WHITE);
    }
    return 1;
    }

  • ocmd:aduty(playerid,params[]) //Admin Duty
    {
    new Text3D:ADuty[MAX_PLAYER_NAME],adminduty[128],string[128];
    new Float:X, Float:Y, Float:Z;
    if(!isPlayerAnAdmin(playerid,6)) return SendClientMessage(playerid,ROT,"Fehler: Deine Rechte reichen nicht aus!");
    if(adminduty[playerid] == 0)
    {
    GetPlayerPos (playerid, X, Y, Z);
    ADuty[playerid] = Create3DTextLabel("Admindienst",ROT,X,Y,Z,50.0,0,0);
    format(string,sizeof(string),"*** %s ist im Admin Dienst Grund: %s",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    Attach3DTextLabelToPlayer(ADuty[playerid], playerid, 0.0, 0.0, 0.75);
    adminduty[playerid] = 1;
    }
    else if(ADuty[playerid] == 1)
    {
    adminduty[playerid] = 0;
    Delete3DTextLabel(ADuty[playerid]);
    format(string,sizeof(string),"**** %s ist Nicht Mehr im Admin Dienst",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    SetPlayerColor(playerid, COLOR_WHITE);
    }
    return 1;
    }

  • Ist auch noch nicht aufgefallen,dass ihr mal adminduty und mal ADuty verwendet :-O? Sowieso, den Fehler habt ihr bisher alle übersehen.


    Wie soll das auch funktionieren.
    Du deklarierst die Variable NICHT Global, da liegt der Fehler.


    ocmd:aduty(playerid,params[]) //Admin Duty
    {
    new Text3D:ADuty[MAX_PLAYER_NAME],adminduty[128],string[128]; // <-- adminduty hier ist TOTAL falsch ( Du verwendest es sowieso mehrfach für unterschiedliche Zwecke,komisch ).ADuty übrigens auch

    Du musst adminduty als Globale Variable für jeden Spieler erstellen.
    new adminduty[MAX_PLAYERS];
    Dann kannst es im Befehl so wie du es möchtest verwenden.


    ocmd:aduty(playerid,params[]) //Admin Duty
    {
    if(adminduty[playerid] == 0 ) {
    // Geht OnDuty
    adminduty[playerid] = 1;
    }
    else {
    // OffDuty
    adminduty[playerid] = 0;
    }
    return 1;
    }

  • so ?
    ocmd:aduty(playerid,params[]) //Admin Duty
    {


    new Text3D:ADuty[MAX_PLAYERS],adminduty[128],string[128];
    new Float:X, Float:Y, Float:Z;
    if(!isPlayerAnAdmin(playerid,6)) return SendClientMessage(playerid,ROT,"Fehler: Deine Rechte reichen nicht aus!");
    if(adminduty[playerid] == 0)
    {
    GetPlayerPos (playerid, X, Y, Z);
    ADuty[playerid] = Create3DTextLabel("Admindienst",ROT,X,Y,Z,50.0,0,0);
    format(string,sizeof(string),"*** %s ist im Admin Dienst Grund: %s",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    Attach3DTextLabelToPlayer(ADuty[playerid], playerid, 0.0, 0.0, 0.75);
    adminduty[playerid] = 1;
    }
    else
    {
    adminduty[playerid] = 0;
    Delete3DTextLabel(ADuty[playerid]);
    format(string,sizeof(string),"**** %s ist Nicht Mehr im Admin Dienst",SpielerName(playerid));
    SendClientMessageToAll(ROT, string);
    SetPlayerColor(playerid, WEIß);
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Nein.
    Ich hab alles im Post erwähnt.
    Du hast nichts von dem gemacht,was ich geschrieben habe. Ich seh nicht mal auf den ersten Blick, ob du überhaupt irgendwas geändert hast.


    new /* Text3D:ADuty[MAX_PLAYERS],adminduty[128] , */ string[128];
    ADuty und adminduty ( adminduty sollte immernoch MAX_PLAYERS als größe haben,nicht 128 ) sind immernoch nicht Global, da du sie in der Funktion deklarierst. Mit "static" würde es zwar funktionieren,aber das lassen wir lieber mal.
    Weisst du denn wenigstens wie du eine Variable Global deklarierst ? Du schreibst die Variable einfach nicht in irgendeine Funktion hinnein. Am besten in den Kopf deines Scriptes ( bevor irgendwas mit main() oder On<Irgendwas> kommt ) .

  • Was ist hier an den Label falsch oder sehe ich das ebenfals nicht ?!
    ocmd:newcar(playerid,params[])
    {
    new Float:vehx,Float:vehy,Float:vehz;
    new vehid,cc1,cc2,string[128],Text3D:vehicle;
    if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, ROT,"INFO: /newcar [CAR-ID] [COLOR 1] [COLOR 2]");
    if(isPlayerAnAdmin(playerid,1))
    {
    GetVehiclePos(vehid,vehx,vehy,vehz);
    format(string,sizeof(string),"Admincar von %S",playerid);
    vehicle = Create3DTextLabel(string,ROT,vehx,vehy,vehz,50.0,0,0);
    Attach3DTextLabelToVehicle(vehicle,vehid, 0.0, 0.0, 0.75);


    new name[MAX_PLAYER_NAME];
    GetPlayerPos(playerid,vehx,vehy,vehz);
    new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
    GetPlayerName(playerid,name, sizeof(name));
    format(string,sizeof(string),"T:%s",name);
    SetVehicleNumberPlate(carid,string);
    PutPlayerInVehicle(playerid, carid, 0);
    format(string,sizeof(string),"Du hast ein Admincar gespawnt!");
    SendClientMessage(playerid,BLAU,string);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
    }
    return 1;
    }