Unsauberer Code

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 Community,


    Wollte mal fragen, ob man meinen Code sparender machen kann und ob eine Abfrage sinnvoll ist, die makriere ich gleich.


    if(strcmp(cmd,"/spawn",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,Admincmd,"/spawn [ID]");
    return 1;
    }
    new para1;
    para1 = ReturnUser(tmp);
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    OnPlayerSpawn(para1);
    }
    }
    }
    else
    {
    return 1;
    }
    }
    return 1;
    }


    Ist

    else
    {
    return 1;
    }


    sinnvoll?


    //EDIT sry für den Falsch Eingerückten Pwn Code

  • Das ist vom

    if(SpielerInfo[playerid][pAdmin] >= 1)
    {


    //Dann kommt der andere Bla
    else
    {
    //dann eig. eine nachricht " du bist kein admin"
    //habs aber nur mit return 1; ersetzt
    }

  • Es geht und Funktioniert auch alles, bloß kommt mir der so komisch rüber.. Deswegen ja meine Frage.. >.>

  • also ich persönlich würde es so schreiben:


    if(strcmp(cmd,"/spawn",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,Admincmd,"/spawn [ID]");
    new para1 = ReturnUser(tmp);
    if(SpielerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,Admincmd,"Du bist kein Admin");
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID) OnPlayerSpawn(para1);
    }
    }
    return 1;
    }

  • Genau das hab ich gesucht :) Wusste nicht wie ichs schreiben sollte. Danke :)

  • Das ist einfach nur geschmacks sache. Und die IsPlayerConnected abfrage am anfang kannst du eigentlich weg lassen. Ich würds so machen:


    if(strcmp(cmd,"/spawn",true) == 0)
    {
    if(SpielerInfo[playerid][pAdmin] < 1) return; //Nachricht ausgeben
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,Admincmd,"/spawn [ID]");
    new para1 = ReturnUser(tmp);
    if(!IsPlayerConnected(para1) || para1 == INVALID_PLAYER_ID) return; //Nachricht ausgeben
    OnPlayerSpawn(para1);
    return true;
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • So, da ich grade im Sparrausch bin, wie mach ich das hier ->
    *ich kapier das nicht so wirklich .. Würde mir das wer schnell erklären?


    if(strcmp(cmd, "/kick", true) == 0)
    {
    if (SpielerInfo[playerid][pAdmin] == 0)
    {
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,Admincmd,"FEHLER: /kick [ID] [Grund] ");
    return 1;
    }
    giveplayerid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,Admincmd,"/kick [ID] [Grund] ");
    return 1;
    }
    format(string,sizeof(string),"Du hast %s gekickt",SpielerName(giveplayerid));
    SendClientMessage(playerid,MC,string);
    format(string,sizeof(string),"Du wurdest von einem Admin gekickt, Grund: %s",tmp);
    SendClientMessage(giveplayerid,MC,string);
    format(string,sizeof(string),"AdmCmd: %s wurde vom Admin %s gekickt, Grund: %s",SpielerName(giveplayerid),SpielerName(playerid),tmp);
    ADMChat(string,Admincmd);
    Kick(giveplayerid);
    }



    und


    if(strcmp(cmd, "/ban", true) == 0)
    {
    if(SpielerInfo[playerid][pAdmin] <= 2)
    {
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,Admincmd,"/ban [ID] [Grund]");
    return 1;
    }
    giveplayerid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,Admincmd,"/ban [ID] [Grund]");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    format(string,sizeof(string),"Du hast %s gebannt",SpielerName(giveplayerid));
    SendClientMessage(playerid,MC,string);
    format(string,sizeof(string),"Du wurdest von einem Admin %s gebannt, Grund: %s",SpielerName(playerid),tmp);
    SendClientMessage(giveplayerid,MC,string);
    format(string,sizeof(string),"AdmCmd: %s wurde vom Admin %s gebannt, Grund: %s",SpielerName(giveplayerid),SpielerName(playerid),tmp);
    ADMChat(string,Admincmd);
    Ban(giveplayerid);
    }

  • oder so haste IsPlayerConnected... in einer zeile


    if(strcmp(cmd,"/spawn",true) == 0)
    {


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,Admincmd,"/spawn [ID]");
    new para1 = ReturnUser(tmp);
    if(SpielerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,Admincmd,"Du bist kein Admin");
    if(!IsPlayerConnected(para1) && !IsPlayerConnected(playerid)) return 1;
    if(para1 != INVALID_PLAYER_ID) OnPlayerSpawn(para1);
    return 1;
    }



    //edit
    if(strcmp(cmd, "/kick", true) == 0)
    {
    if (SpielerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid,AdminCmd,"Du bist kein Admin");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,Admincmd,"FEHLER: /kick [ID] [Grund] ");
    giveplayerid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,Admincmd,"/kick [ID] [Grund] ");
    format(string,sizeof(string),"Du hast %s gekickt",SpielerName(giveplayerid));
    SendClientMessage(playerid,MC,string);
    format(string,sizeof(string),"Du wurdest von einem Admin gekickt, Grund: %s",tmp);
    SendClientMessage(giveplayerid,MC,string);
    format(string,sizeof(string),"AdmCmd: %s wurde vom Admin %s gekickt, Grund: %s",SpielerName(giveplayerid),SpielerName(playerid),tmp);
    ADMChat(string,Admincmd);
    return Kick(giveplayerid);
    }

  • Bin ja kein Noob in Pawn, nur mit der Abfrage ->


    if(SpielerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid,Admincmd,"");


    komm ich nicht klar und mit den > oder < oder >= <= was das auch bedeuten soll ..

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen