Beiträge von Jeffry

    Weil du hier keinen aktiven cache hast, entsprechend bleibt das 0.
    SpielerInfo[playerid][Skin] = cache_get_field_content_int(0,"Skin",dbhandle);


    Du musst auch das wie beim Login und den anderen machen.


    query[128];
    format(query,sizeof(query),"SELECT skin FROM user WHERE username='%s'",name); //Anpassen
    mysql_function_query(dbhandle,query,true,"OnPlayerSkinTextdraw","i",playerid);
    Und dann eben bei einem neu erstellten public OnPlayerSkinTextdraw das Skin-Textdraw setzen. Gleich wie beim Registrieren oder beim Login.

    1.) Ach ja, anderes Plugin. Hast aber das richtige gepostet.


    Du musst es nach diesem Prinzip machen:
    else if(clickedid == Textdraw2) //Textdraw2 = Register Textdraw?? Wenn nicht, ändern.
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnPlayerDataLoaded2","i",playerid);
    }
    }


    //___________________________________
    public OnPlayerDataLoaded2(playerid)
    {
    if(cache_num_rows() != 0)
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist Regestriert! Um hier spielen zu können, musst du dich Einloggen!");
    return 1;
    }
    else
    {
    //Hier der Register Dialog.
    return 1;
    }
    }


    2.) Lass dir da mal mit
    print(query);
    das query mit dem MD5 ausgeben, und vergleiche das was da drin steht, mit dem was in der Datenbank steht. Wie sieht das aus?

    1.) Poste den Teil mit "if(dialogid == DIALOG_REGISTER)" und das callback das das mysql_tquery aufruft.


    2.) Beim Login? Was heißt nicht richtig? Kannst du dich anmelden, wenn ja/nein, wann ja wann nein?


    3.) Das liegt daran, dass deine ID auf AUTO_INCREMENT gestellt ist. Das zählt einfach immer weiter hoch. Das ist auch gut so, da so eine individuelle ID garantiert ist. Accounts muss man eigentlich nicht löschen. Es gibt zwar Möglichkeiten, den leeren Raum zu finden, bzw es erst gar nicht zu löschen, sondern zum Überschreiben vorzumerken, aber das würde ich dir nicht raten. Eine neue ID für ein neues Account ist gut so, ich wüsste nicht warum es die Lücken füllen sollte, das gibt es in keinem mir bekannten Account-System (sowieso muss man eigentlich keine Accounts löschen).

    1.)
    //printf("There are %d players with the same name.", NumRows);
    return 1;

    Schreib ein "//" vor das return, der print ist unnötig.
    EDIT: Oder lösche einfach beides, dann hast es auch los.


    2.)
    Mach das
    SpawnPlayer(playerid);
    da weg.
    Das gehört in "OnPasswordResponse", wenn das Passwort richtig ist.

    Bei mir klappt es ohne Probleme. (Du drückst nicht F10, oder?)


    Lass dir mal die ID des erstellten 3D Labels ausgeben:
    new Text3D:label = Create3DTextLabel(Text, 0xFF0000FF, X, Y, Z + 1, 25, 0, 1);
    printf("Die ID des Labels ist: %d", _:label);


    Welche ID steht im Server Log, wenn du das Schild erstellst?

    In dem Wirr-Warr habe ich deine Callbacks durcheinander gebracht, sorry.
    So muss es sein:
    else if(clickedid == Textdraw3)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnPlayerDataLoaded","i",playerid); //Habe nur hier das Callback zu "OnPlayerDataLoaded" geändert!
    }
    }


    //___________________________________
    public OnPlayerDataLoaded(playerid)
    {
    if(cache_num_rows() == 0)
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist nicht Regestriert! Um hier spielen zu können, musst du dich Regestrieren!");
    return 1;
    }
    else //Falls doch
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    return 1;
    }
    }


    Wegen dem Passwort:
    Poste bitte den Code, den du bei "if(dialogid == DIALOG_LOGIN)" hast.

    Wie bekommt man das /d dort weg?


    Spoiler anzeigen
    if(strcmp("/departments", cmdtext, true, 12) == 0 || strcmp("/d", cmdtext, true, 2) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new sendername[32], string[144], result[128], idx;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(result, sizeof(result), cmdtext[strlen(strtok(cmdtext, idx)) + 1]);
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_HGRAD, "Benutze: (/d)epartments [Text]");
    return 1;
    }
    if(sSpieler[playerid][fMitglied] == 1 || sSpieler[playerid][Leader] == 1)
    {
    if(sSpieler[playerid][Rang] == 15) { format(string, sizeof(string), "** Chief of Police %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 14) { format(string, sizeof(string), "** Assistant Chief %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 13) { format(string, sizeof(string), "** Deputy Chief %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 12) { format(string, sizeof(string), "** Commander %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 11) { format(string, sizeof(string), "** Captain %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** Lieutenant %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** Sergeant II %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** Sergeant I %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** Detective III %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** Detective II %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** Detective I %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** Police Officer II %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** Police Officer I %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** Traffic Officer %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** Cadet %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Suspendiert %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 2 || sSpieler[playerid][Leader] == 2)
    {
    if(sSpieler[playerid][Rang] == 15) { format(string, sizeof(string), "** S.W.A.T. Chief %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 14) { format(string, sizeof(string), "** S.W.A.T. Assistant Chief %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 13) { format(string, sizeof(string), "** S.W.A.T. Deputy Chief %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 12) { format(string, sizeof(string), "** S.W.A.T. Commander %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 11) { format(string, sizeof(string), "** S.W.A.T. Captain %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** S.W.A.T. Elite Officer %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** S.W.A.T. Special Officer %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** S.W.A.T. Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** S.W.A.T. Officer IIII %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** S.W.A.T. Officer III %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** S.W.A.T. Officer II %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** S.W.A.T. Officer I %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** S.W.A.T. Trainee %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** S.W.A.T. Recruit %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** S.W.A.T. Cadet %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Suspendiert %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 3 || sSpieler[playerid][Leader] == 3)
    {
    if(sSpieler[playerid][Rang] == 15) { format(string, sizeof(string), "** Director %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 14) { format(string, sizeof(string), "** Assistant Director %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 13) { format(string, sizeof(string), "** Deouty Director %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 12) { format(string, sizeof(string), "** Unit Chief %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 11) { format(string, sizeof(string), "** Resident Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** Elite Agent in Charge %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** Special Agent in Charge %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** Assistant Special Agent in Charge %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** Supervisory Special Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** Special Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** Prof. Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** Prof. Assistant Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** New Agent %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** New Agent in Trainee %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 4 || sSpieler[playerid][Leader] == 4)
    {
    if(sSpieler[playerid][Rang] == 15) { format(string, sizeof(string), "** General of the Army %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 14) { format(string, sizeof(string), "** General %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 13) { format(string, sizeof(string), "** Lieutenant General %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 12) { format(string, sizeof(string), "** Major General %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 11) { format(string, sizeof(string), "** Brigadier General %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** Colonel %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** Lieutenant Colonel %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** Major %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** Captain of the Army %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** First Lieutenant %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** Second Lieutenant %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** Chief Warrant Officer %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** Warrant Officer %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** Private First Class %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 5 || sSpieler[playerid][Leader] == 5)
    {
    if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** Zolldirector %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** Assistant Zolldirector %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** Deputy Zolldirector %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** Leitender Zollausbilder %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** Zollausbilder %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** Zollbeamter II %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** Zollbeamter I %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** Zollbeamter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** Lehrling des Zolls %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** Praktikant des Zolls %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 6 || sSpieler[playerid][Leader] == 6)
    {
    if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** Ordnungsamtleiter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** Stellv. Ordnungsamtleiter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** Ordnungsamt Vorstand %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** Stellv. Ordnungsamt Vorstand %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** Ordnungsamt Beobachter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** Ordnungsamt Geselle %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** Ordnungshüter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** Politesse %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** Ordnungsamt Lehrling %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** Ordnungsamt Praktikant %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 7 || sSpieler[playerid][Leader] == 7)
    {
    if(sSpieler[playerid][Rang] == 15) { format(string, sizeof(string), "** Firepresident %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 14) { format(string, sizeof(string), "** Assistant Firepresident %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 13) { format(string, sizeof(string), "** Deputy Firepresident %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 12) { format(string, sizeof(string), "** Major Firefighter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 11) { format(string, sizeof(string), "** Brigadier Firefighter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** Firefighter Captain %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** Firefighter Colonel %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** Firefighter Lieutenant %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** Firefighter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** Assistant Firefighter %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** Chefarzt %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** Oberarzt %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** Arzt %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** Notarzt %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** Rettungssanitäter %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else if(sSpieler[playerid][fMitglied] == 8 || sSpieler[playerid][Leader] == 8)
    {
    if(sSpieler[playerid][Rang] == 15) { format(string, sizeof(string), "** U.S. President %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 14) { format(string, sizeof(string), "** U.S. Vice President %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 13) { format(string, sizeof(string), "** U.S. Kanzler %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 12) { format(string, sizeof(string), "** U.S. Vice Kanzler %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 11) { format(string, sizeof(string), "** U.S. Bundesminister %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 10) { format(string, sizeof(string), "** U.S. Landesminister L.V. %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 9) { format(string, sizeof(string), "** U.S. Landesminister S.F. %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 8) { format(string, sizeof(string), "** U.S. Landesminister L.S. %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 7) { format(string, sizeof(string), "** U.S. Außenminister %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 6) { format(string, sizeof(string), "** U.S. Innenminister %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 5) { format(string, sizeof(string), "** U.S. Verteidigungsminister %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 4) { format(string, sizeof(string), "** U.S. Finanzminister %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 3) { format(string, sizeof(string), "** U.S. Gesundheitsminister %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 2) { format(string, sizeof(string), "** U.S. Staatsanwalt %s: %s, over. **", sendername, result); }
    else if(sSpieler[playerid][Rang] == 1) { format(string, sizeof(string), "** U.S. Abgeordneter %s: %s, over. **", sendername, result); }
    else
    {
    format(string, sizeof(string), "** Private %s: %s, over. **", sendername, result);
    }
    DepartmentLeaderMessage(playerid, COLOR_ALLDEPT, string);
    DepartmentMemberMessage(playerid, COLOR_ALLDEPT, string);
    printf("%s", string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_HGRAD, "Du hast nicht die Befugnis.");
    return 1;
    }
    }
    return 1;
    }


    Das hier ganz unten in den Gamemode:
    stock strtok(const string[], &index) //©Jeffry
    {
    new result[20], length = strlen(string), i = index;
    while ((i < length) && (string[i] == ' ')) i++;
    strmid(result,string,i,((index = strfind(string, " ", false, i)) == -1) ? (index = length) : (index) , 20);
    index++;
    return result;
    }



    Was habe ich gemacht? Ich habe den Code, der strtok sein sollte, entfernt und mit meiner externen Funktion ersetzt.
    Die format-Zeile übergibt dann den String ab nach der Leerstelle nach "/d" an "result".


    Anschaulich:
    cmdtext = "/d Hallo"
    cmdtext[strlen(strtok(cmdtext, idx)) + 1]
    cmdtext[strlen(strtok("/d Hallo", 0)) + 1]
    cmdtext[strlen("/d") + 1]
    cmdtext[2 + 1]
    cmdtext[3]


    format(result, sizeof(result), cmdtext[3]); //=> Ab Zeichen 3 (0,1,2,3,...) wird begonnen, also das erste Zeichen von "result" ist "H".
    //=> result = "Hallo"

    Hallo ich habe eine kleine Frage wenn ich ein /skin Befehl machen will und sag ich mal 3 Gangs das gleiche interior haben und ich abfrage ob der Spieler inRangeofpoint ist geht das dann ? Das sag ich mal Spieler x ist groove und gibt dort /skin ein kommt dann der Groove Dialog oder kann es passieren das z.b ballas an der gleichen Stelle den /skin Befehl machen müssen aber in einer anderen virtuellen Welt ist das dann auch der ballas Dialog kommt ?


    if(IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))
    {
    switch(GetPlayerVirtualWorld(playerid))
    {
    case 1:
    {
    //Virtual World 1 = Groove
    }
    case 2:
    {
    //Virtual World 2 = Ballas
    }
    }
    }

    Manyula:
    Hast du SetPlayerMarkerForPlayer noch irgendwo anders im Code verwendet? Zum Beispiel, dass da ein Timer läuft, der das wieder zurücksetzt?


    Und hast du bei OnPlayerUpdate ganz unten ein "return 1"? Oder hast du irgendwo in OnPlayerUpdate ein "return 0"?



    Ich kann mir das Problem nicht erklären, da der Code einwandfrei aufgerufen wird, nur die Funktion hat keine Wirkung.

    new tanktimer=0;
    public sekunde()
    {
    tanktimer++;
    if(tanktimer==5)
    {
    tanktimer=0;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    new vID = GetPlayerVehicleID(i);
    new Float:damage;
    new string[164];
    GetVehicleHealth(vID,damage);
    format(string,sizeof(string),"Zustand: %i",floatround(damage));
    PlayerTextDrawSetString(i,Tacho_Zustand,string);
    format(string,sizeof(string),"Tank: %il",Tank[vID]);
    PlayerTextDrawSetString(i,Tacho_fuel[i],string);
    if(GetVehicleEngine(vID)!=0)
    {
    Tank[vID]--;
    if(Tank[vID]<1)
    {
    stopEngine(vID);
    SendClientMessage(i,rot,"WARNING: Fuel Empty!");
    }
    }
    }
    }
    }
    return 1;
    }


    Es lag an der falsch verschachtelten Schleife. So sollte es klappen.

    Naja, eigentlich habe ich gesagt du sollst nicht alles posten, aber gut.
    Du sagst, der Tacho wird für ID 1 nicht mehr angezeigt?


    Dann ändere den Stock bitte zu:
    stock ShowTachoForPlayer(playerid)
    {
    printf("ShowTachoForPlayer für ID %d aufgerufen.", playerid);
    for(new i=0; i<10; i++) printf(" %d -> ID: %d", i, _:pTextSpeedo[playerid][i]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][0]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][1]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][2]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][3]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][4]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][5]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][6]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][7]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][8]);
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][9]);
    return 1;
    }


    Was wird geprintet, wenn dir der Tacho angezeigt werden soll?
    Teste es bitte mit ID 0 und ID 1 und poste beide Logs.

    Du sollst den Code posten, von dem Textdraw das du andrückst und von dem das den Dialog eigentlich zeigen soll. Du hast nur letzteres gemacht.


    Außerdem steht doch bei Textdraw3 einloggen, was also passt denn nicht?
    Kannst du mal versuchen dich klarer auszudrücken?

    forward respawnL(playerid, car);
    public respawnL(playerid, car)
    {
    SetVehicleToRespawn(car);
    SendClientMessage(playerid,COLOR_RED,"Da du ausgestiegen bist hast du die Linie automatisch abgebrochen!");
    DisablePlayerCheckpoint(playerid);
    Gas[car] = 100;
    return 1;
    }


    for(new h = 0; h < sizeof(buscars); h++)
    {
    if(vehicleid == buscars[h])
    {
    SetTimerEx("respawnL", 60000, 0, "dd", playerid, vehicleid);
    break;
    }
    }


    So muss es sein.


    Warum? Wenn du aussteigst gibt GetPlayerVehicleID 0 zurück, und nicht die ID des Busses.

    Auch hier musst du nach dem Prinzip der Cache-Nutzung vorgehen:
    else if(clickedid == Textdraw3)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnPlayerDataLoaded","i",playerid);
    }
    }


    //___________________________________
    public OnPlayerDataLoaded(playerid)
    {
    if(cache_num_rows() == 0)
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist nicht Regestriert! Um hier spielen zu können, musst du dich Regestrieren!");
    return 1;
    }
    else //Falls doch
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    return 1;
    }
    //printf("There are %d players with the same name.", NumRows);
    return 1;
    }

    ocmd:setleader(playerid,params[])
    {
    new pID, level;
    new string[128],fname[40];
    new oname[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof aname);
    GetPlayerName(pID,oname,sizeof oname);
    if(IsPlayerConnected(playerid))
    {
    if(sSpieler[playerid][Adminlevel] >= 1337)
    {
    if(sscanf(params,"ud",pID,level)) return SendClientMessage(playerid,COLOR_HGRAD,"Benutze: /setleader [playerid] [Fraktion]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_HGRAD,"Dieser Spieler ist nicht online.");
    SendClientMessage(playerid,COLOR_HGRAD,"Benutze: /setleader [playerid] [Fraktion]");
    if(level < 0 || level > 18)
    {
    return SendClientMessage(playerid,COLOR_HGRAD,"Es gibt nur 15 Fraktionen.");
    }
    sSpieler[pID][Leader] = level;
    sSpieler[pID][Rang] = 15;
    if(level == 0)
    {
    SetPlayerSkin(pID,79);
    sSpieler[pID][Skin] = 79;
    fname = "Zivilist";
    }
    else if(level == 1)
    {
    SetPlayerSkin(pID,283);
    sSpieler[pID][Skin] = 283;
    fname = "S.A.P.D.";
    }
    else if(level == 2)
    {
    SetPlayerSkin(pID,285);
    sSpieler[pID][Skin] = 285;
    fname = "S.W.A.T.";
    }
    else if(level == 3)
    {
    SetPlayerSkin(pID,165);
    sSpieler[pID][Skin] = 165;
    fname = "F.B.I.";
    }
    else if(level == 4)
    {
    SetPlayerSkin(pID,287);
    sSpieler[pID][Skin] = 287;
    fname = "U.S. Army";
    }
    else if(level == 5)
    {
    SetPlayerSkin(pID,188);
    sSpieler[pID][Skin] = 188;
    fname = "Zoll";
    }
    else if(level == 6)
    {
    SetPlayerSkin(pID,227);
    sSpieler[pID][Skin] = 227;
    fname = "Ordnungsamt";
    }
    else if(level == 7)
    {
    SetPlayerSkin(pID,279);
    sSpieler[pID][Skin] = 279;
    fname = "S.A.F.D.";
    }
    else if(level == 8)
    {
    SetPlayerSkin(pID,295);
    sSpieler[pID][Skin] = 295;
    fname = "U.S. Regierung";
    }
    else if(level == 9)
    {
    SetPlayerSkin(pID,187);
    sSpieler[pID][Skin] = 187;
    fname = "S.A.N.Z.";
    }
    else if(level == 10)
    {
    SetPlayerSkin(pID,240);
    sSpieler[pID][Skin] = 240;
    fname = "Fahrschule";
    }
    else if(level == 11)
    {
    SetPlayerSkin(pID,107);
    sSpieler[pID][Skin] = 107;
    fname = "Grove Street";
    }
    else if(level == 12)
    {
    SetPlayerSkin(pID,108);
    sSpieler[pID][Skin] = 108;
    fname = "Los Santos Vagos";
    }
    else if(level == 13)
    {
    SetPlayerSkin(pID,248);
    sSpieler[pID][Skin] = 248;
    fname = "Las Venturas Biker";
    }
    else if(level == 14)
    {
    SetPlayerSkin(pID,120);
    sSpieler[pID][Skin] = 120;
    fname = "Triaden";
    }
    else if(level == 15)
    {
    SetPlayerSkin(pID,177);
    sSpieler[pID][Skin] = 177;
    fname = "BloodZ";
    }
    else if(level == 16)
    {
    SetPlayerSkin(pID,174);
    sSpieler[pID][Skin] = 174;
    fname = "Aztecas";
    }
    else if(level == 17)
    {
    SetPlayerSkin(pID,104);
    sSpieler[pID][Skin] = 104;
    fname = "Ballas";
    }
    else if(level == 18)
    {
    SetPlayerSkin(pID,294);
    sSpieler[pID][Skin] = 294;
    fname = "Hitman";
    }
    format(string,sizeof string,"Du hast %s zum Leader der Fraktion %s (FraktionsID: %d) ernannt.",oname,fname,level);
    SendClientMessage(playerid,COLOR_HGRAD,string);
    format(string,sizeof string,"%s hat dich zum Leader der Fraktion %s (FraktionsID: %d) ernannt.",aname,fname,level);
    SendClientMessage(pID,COLOR_YELLOW,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_HGRAD,"Du hast keine Berechtigung.");
    }
    }
    return 1;
    }


    Wenn du es so schreibst fällt es dir viel leichter solche Fehler selbst zu finden, eine Anweisung pro Zeile. Es war eine Klammer-Zu zu wenig vorhanden.



    Oder in deinem Style:

    Spoiler anzeigen
    ocmd:setleader(playerid,params[])
    {
    new pID, level;
    new string[128],fname[40];
    new oname[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof aname);
    GetPlayerName(pID,oname,sizeof oname);
    if(IsPlayerConnected(playerid))
    {
    if(sSpieler[playerid][Adminlevel] >= 1337)
    {
    if(sscanf(params,"ud",pID,level)) return SendClientMessage(playerid,COLOR_HGRAD,"Benutze: /setleader [playerid] [Fraktion]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_HGRAD,"Dieser Spieler ist nicht online.");
    if(level < 0 || level > 18) return SendClientMessage(playerid,COLOR_HGRAD,"Es gibt nur 15 Fraktionen.");
    sSpieler[pID][Leader] = level;
    sSpieler[pID][Rang] = 15;
    if(level == 0) { SetPlayerSkin(pID,79); sSpieler[pID][Skin] = 79; fname = "Zivilist"; }
    else if(level == 1) { SetPlayerSkin(pID,283); sSpieler[pID][Skin] = 283; fname = "S.A.P.D."; }
    else if(level == 2) { SetPlayerSkin(pID,285); sSpieler[pID][Skin] = 285; fname = "S.W.A.T."; }
    else if(level == 3) { SetPlayerSkin(pID,165); sSpieler[pID][Skin] = 165; fname = "F.B.I."; }
    else if(level == 4) { SetPlayerSkin(pID,287); sSpieler[pID][Skin] = 287; fname = "U.S. Army"; }
    else if(level == 5) { SetPlayerSkin(pID,188); sSpieler[pID][Skin] = 188; fname = "Zoll"; }
    else if(level == 6) { SetPlayerSkin(pID,227); sSpieler[pID][Skin] = 227; fname = "Ordnungsamt"; }
    else if(level == 7) { SetPlayerSkin(pID,279); sSpieler[pID][Skin] = 279; fname = "S.A.F.D."; }
    else if(level == 8) { SetPlayerSkin(pID,295); sSpieler[pID][Skin] = 295; fname = "U.S. Regierung"; }
    else if(level == 9) { SetPlayerSkin(pID,187); sSpieler[pID][Skin] = 187; fname = "S.A.N.Z."; }
    else if(level == 10) { SetPlayerSkin(pID,240); sSpieler[pID][Skin] = 240; fname = "Fahrschule"; }
    else if(level == 11) { SetPlayerSkin(pID,107); sSpieler[pID][Skin] = 107; fname = "Grove Street"; }
    else if(level == 12) { SetPlayerSkin(pID,108); sSpieler[pID][Skin] = 108; fname = "Los Santos Vagos"; }
    else if(level == 13) { SetPlayerSkin(pID,248); sSpieler[pID][Skin] = 248; fname = "Las Venturas Biker"; }
    else if(level == 14) { SetPlayerSkin(pID,120); sSpieler[pID][Skin] = 120; fname = "Triaden"; }
    else if(level == 15) { SetPlayerSkin(pID,177); sSpieler[pID][Skin] = 177; fname = "BloodZ"; }
    else if(level == 16) { SetPlayerSkin(pID,174); sSpieler[pID][Skin] = 174; fname = "Aztecas"; }
    else if(level == 17) { SetPlayerSkin(pID,104); sSpieler[pID][Skin] = 104; fname = "Ballas"; }
    else if(level == 18) { SetPlayerSkin(pID,294); sSpieler[pID][Skin] = 294; fname = "Hitman"; }
    format(string,sizeof string,"Du hast %s zum Leader der Fraktion %s (FraktionsID: %d) ernannt.",oname,fname,level);
    SendClientMessage(playerid,COLOR_HGRAD,string);
    format(string,sizeof string,"%s hat dich zum Leader der Fraktion %s (FraktionsID: %d) ernannt.",aname,fname,level);
    SendClientMessage(pID,COLOR_YELLOW,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_HGRAD,"Du hast keine Berechtigung.");
    }
    }
    return 1;
    }

    Das finde ich aber nicht so übersichtlich.