Beiträge von Kaliber

    Mal so nebenbei, dein Code ist ziemlich...umständlich geschrieben, das was du eigentlich machst ist mehr oder weniger ein Codeschnipsel und lässt sich auch in knapp 50 Zeilen...zeigen...


    Hier mal ein Vorschlag: http://pastebin.com/M92ydF4k


    Mal nur so als Vergleich, beide Codes machen das selbe...


    Deine Zeilen: 317


    Meine Zeilen: 54


    ...ja ich weiß vieles liegt an den unnötigen Callbacks und 5 Zeilen an den Kommentaren, trotzdem...würde das noch einen großen Unterschied machen.


    Ich will hier keine Kritik äußern und blöd rummeckern, ich wollte nur mal zeigen, dass man das hätte auch anders schreiben können.
    Mein Code soll dich nur mal zum Nachdenken anregen und vielleicht lernst du daraus noch etwas...


    PS: Die Include sscanf2 wird gar nicht genutzt...


    mfg. :thumbup:

    Schreib es so:


    new const ChangeDrawText[6][] = {
    {"~w~TEAMSPEAK: ~y~"},
    {"~w~FORUM: ~r~"},
    {"~w~CONTROL PANEL: ~y~"},
    {"~w~SUPPORT: ~g~/REPORT"},
    {"~w~HILFE: ~b~/HILFE"},
    {"~w~HOSTING: ~g~www.Stephanexe.de"}
    };


    mfg. :thumbup:

    Also, da es hier um ein "Pawn-Script" geht denke ich mal, bist du hier in der falschen Sektion...


    und das er "automatisch" irgendwohin fährt, geht nicht, aber du könntest den Spieler von einem Bot fahren lassen...


    Das hatte ich mal geschrieben gehabt: [ FILTERSCRIPT ] [Bot] Taxi System V. 1x


    Ist zwar verdammt lange her, aber vielleicht hilft es dir ja ;)


    mfg. :thumbup:

    Danke alter ! kannst du mir das mit -1 und buffer noch erklären?


    Der Buffer, weil du in Pawn nicht direkt "Keinen" in eine Funktion schreiben kannst..das würde in Java, PHP oder sonst wo gehen, aber hier leider nicht...


    und die -1, weil der Array bei 0 anfängt, deine Fraktionen bzw Ränge aber bei 1 ;)


    mfg. :thumbup:

    Hier, habe dir das alles mal überarbeitet, schreibe es so:


    new const Jobname[7][] = {"Arbeitslos","Busfahrer","Bauarbeiter","Trucker","Mechaniker","Drogendealer","Waffendealer"};
    new const Adminrang[6][] = {"Keinen","Supporter","Moderator","Super Moderator","Administrator","Serverleitung"};
    new const Frakname[7][] = {"Zivilist","Police Department","Les Hombres","Medic","Negro Famoso","West Coast Crimes","Bundeswehr"};
    new const RangNamen[6][][] = {
    {"Praktikant","Polizei-Anwärter","Wachmeister","Kommisar Anwärter","Polizei Kommissar","Polizeioberkommissar","Polizeihauptkommissar","Erster Polizeihauptkommissar","Polizeirat","Polizeidirektor","Polizeipräsident"},
    {"Knecht","Homow","Dumb Hoe","Hoe","Soulja","Blood Runner","Blood Pusher","DaTruth","OG","Big OG","LeHombre"},
    {"Praktikant","Sanitäter-Anwärter","Sanitäter","Rettungssanitäter","Artzt-Anwärter","Artzt","Fachartzt","Chirug","Oberarzt","Leitender Oberarzt","Chefarzt"},
    {"Praktikant","Betrüger","Schmuggler","Dealer","Geldwäscher","Informant","Mafioso","Capo","Pate","Rechte Hand","Der Boss"},
    {"Black Jack","Niggah","Bro","Madafuq","Gangsta","Homie","Lil OG","OG","Senior OG","King OG","Maddog"},
    {"Praktikant","Gefreiter","Unteroffizier","Feldwebel","Hauptfeldwebel","Leutnant","Ober-Leutnant","Major","Oberst","Brigade-General","General"}
    };


    ocmd:getstatus(playerid,params[])
    {
    new pid,buffer[]="Keinen";
    if(sscanf(params,"u",pid)) return SendClientMessage(playerid,GRÜN,"Benutze: /getstatus");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,DUNKELROT,"Ungültige ID!");
    new string[128],spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spielername,MAX_PLAYER_NAME);
    format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminrang: %s] [Fraktion: %s] [Payday %i/60 Min]",
    spielername,GetPlayerScore(pid),Adminrang[GetPVarInt(pid,"Adminlevel")],Frakname[GetPVarInt(pid,"Fraktion")],GetPVarInt(pid,"Paytime"));
    SendClientMessage(playerid,WEIß,string);
    format(string,sizeof(string),"----------------------------------------%s----------------------------------------",spielername);
    SendClientMessage(playerid,DUNKELROT,string);
    format(string,sizeof(string),"[Skin ID: %i] [Fraktionsrang: %s] [Job: %s]",GetPlayerSkin(pid),(!GetPVarInt(pid,"Fraktion")) ? buffer : RangNamen[GetPVarInt(pid,"Fraktion")-1][GetPVarInt(pid,"Fraktionsrang")-1],Jobname[GetPVarInt(pid,"Job")]);
    SendClientMessage(playerid,WEIß,string);
    SendClientMessage(playerid,DUNKELROT,"--------------------------------------------------------------------------------------");
    format(string,sizeof(string),"~Adminbefehl~ (( %s checkt den Status von %s . ))",SpielerName(playerid),spielername);
    return SendAdminMessage(PNGELB,string);
    }


    mfg. :thumbup:

    Mach es so:


    //Anstatt oben defines mach einen konstanten Array
    new const Jobname[7][] = {"Arbeitslos","Busfahrer","Bauarbeiter","Trucker","Mechaniker","Drogendealer","Waffendealer"};


    ocmd:setjob(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,ROT,"Du bist nicht befugt diesen Befehl zu benutzen.");
    new pID, jobid,str[128];
    if(sscanf(params,"ui",pID,jobid))return SendClientMessage(playerid,GRÜN,"/setjob [spieler] [Jobid]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Ein Spieler mit dieser id ist nicht online!");
    if(jobid<1||jobid>6)return SendClientMessage(playerid,ROT,"Bitte gültige Jobid angeben.");
    SetPVarInt(pID,"Job",jobid),SpielerSpeichern(pID);
    format(str,sizeof(str),"Dir wurde der Job %s von %s zugeteilt",Jobname[jobid],SpielerName(playerid));
    SendClientMessage(playerid,WEIß,str);
    format(str,sizeof(str),"Du hast %s den Job %s zugeteilt",SpielerName(pID),Jobname[jobid]);
    SendClientMessage(pID,WEIß,str);
    format(str,sizeof(str),"~Adminbefehl~ (( %s hat %s den Job %s gemacht. ))",SpielerName(playerid),SpielerName(pID),Jobname[jobid]);
    SendAdminMessage(PNGELB,str);
    return 1;
    }


    mfg. :thumbup: