Frage/Problem

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
  • Hey. Ich habe eine Frage und ein Problem bei meinem Script.


    Frage:
    Wie geht es, das 2 Befehle 1 Sache ausführt?
    Also das ich mit /exit UND /l die Arena verlassen kann?


    if (strcmp("/exit",cmdtext, true, 10) == 0) || if (strcmp("/l",cmdtext, true, 10) == 0)


    ging doch irgendwie so, oder?



    Problem:
    Bei meinem Login/register system, wenn ich ein falschen Passwort eingebe, spawne ich trotzdem, obwohl die Message erscheint, das mein Passwort falsch eingegeben wurde. Dann erscheint ein weiterer Dialog, bei dem man die Chance hat, sein PW nochmal einzugeben.
    Wie mache ich das also, das wenn ich ein falsches PW eingebe, das ich nicht spawne, mir aber trotzdem der Dialog wieder angezeigt wird?


    public OnPlayerRequestClass(playerid, classid)
    {
    SetSpawnInfo(playerid,0,0,-50.1974,-288.3651,5.4297,178.9876,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Das eingegebene Passwort ist falsch.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Benutzername: %s . \nGeben sie ihr Passwort ein:.","OK","Abbrechen");
    return 1;
    }
    }

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr

  • Zu der Frage mit den 2 Befehlen:


    Direkt Unter: public OnPlayerCommandText(playerid, cmdtext[]) folgendes:


    new cmd[256];
    cmd = strtok(cmdtext, idx);


    und folgendes am besten nach ganz untem im Script:


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Jetzt kannst du das so anwenden:
    if(strcmp(cmd, "/exit", true) == 0 || strcmp(cmd, "/l", true) == 0)


    Das Problem mit dem Spawn hab ich dir ja Gestern schon gemacht


    Gruß