Beiträge von Jeffry

    Ich nehme an so:
    stock CheckRegister(playerid)
    {
    if(PlayerInfo[playerid][pSex] == 0)
    {
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_ROT, "~--------------------------------------------------------------------------------------~");
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_ROT, "Server: Bitte vervollständige deine Regestration!");
    ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_LIST, ""SERVER_COLORHTML"["SERVER_TAG"] - Regestration [2/4]", ""HTML_WEIS"- Bitte wähle dein Geschlecht - \n"HTML_HELLBLAU"Männlich \n"HTML_PINK"Weiblich", "Weiter", "Abbruch");
    }
    else if(PlayerInfo[playerid][pAge] == 0)
    {
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_ROT, "~--------------------------------------------------------------------------------------~");
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_ROT, "Server: Bitte vervollständige deine Regestration!");
    ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVER_COLORHTML"["SERVER_TAG"] - Regestration [3/4]", ""HTML_WEIS"Bitte gebe hier dein "HTML_ROT"Geburtsdatum "HTML_WEIS"im Format "HTML_GELB"TT.MM.JJJJ"HTML_WEIS" an:", "Weiter", "Abbruch");
    }
    else if(PlayerInfo[playerid][pEmail] == 0)
    {
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_ROT, "~--------------------------------------------------------------------------------------~");
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_WEIS, "");
    SendClientMessage(playerid, COLOR_ROT, "Server: Bitte vervollständige deine Regestration!");
    ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, ""SERVER_COLORHTML"["SERVER_NAME"] - Regestration [4/4]", ""HTML_WEIS"Bitte gebe hier eine gültige EMail-Adresse im Format "HTML_GELB"besipiel@"SERVER_DOMAIN""HTML_WEIS" ein:", "Weiter", "Abbruch");
    }
    return 1;
    }

    Am sinnvollsten ist es, gar keine Schleife zu nutzen, da sich die Zahl ohnehin nur an zwei Stellen ändern kann:


    Unter den Includes:
    new countOnlinePlayers;


    OnPlayerConnect:
    if(!IsPlayerNPC(playerid)) countOnlinePlayers++;


    OnPlayerDisconnect:
    if(!IsPlayerNPC(playerid)) countOnlinePlayers--;


    Ausgabe:
    printf("Es sind %d Spieler online.", countOnlinePlayers);

    if(PlayerInfo[playerid][pEMail][0] == '0')
    {
    SendClientClear(playerid), SendClientMessage(playerid, COLOR_ROT, "Server: Bitte vervollständige deine Regestration!");
    ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, ""SERVER_COLORHTML"["SERVER_NAME"] - Regestration [4/4]", ""HTML_WEIS"Bitte gebe hier eine gültige EMail-Adresse im Format "HTML_GELB"support@"SERVER_DOMAIN""HTML_WEIS" ein:", "Weiter", "Abbruch");
    return 1;
    }

    Dann entferne das obige wieder.
    Versuche die sscanf Include an erste Stelle der ganzen Includes zu setzen, es scheint als tritt ein Konflikt mit einer anderen Include auf.


    Falls das auch nicht geht, nutze die Version mit dem split anstatt sscanf, oder finde heraus, in welcher Include ebenfalls ein Hook auf OnNPCModeInit angewendet wird und entferne diese. Eventuell kann der Hook auch bearbeitet werden, sodass er mit sscanf kompatibel ist. Poste den eventuell, falls du ihn findest (Suche nach OnNPCModeInit, etwas mit ein paar #define's)


    new str[145];
    format(str, sizeof(str), "Du hast am %s Geburtstag, damit bist Du %d Jahre alt! Sehr schön :)", inputtext, age);
    SendClientMessage(playerid, 0xFF0000FF, str);

    Siehe hier:
    GetPlayerAge


    new age = GetPlayerAge(inputtext);
    if(age == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Ungültiges Geburtsdatum.");




    So habe ich es versucht, auch die Zahlen printen lassen aber es ist immer nur 0...

    Nutzt du das Plugin?



    Habe mal was versucht, ich weiß sscanf wäre besser aber hier bekomme ich Werte und nicht ständig 0,

    format(query, sizeof(query), "SELECT * FROM tabelle WHERE IP = '%i.%i.%i.'", zahl[0], zahl[1], zahl[2]);
    zu:
    format(query, sizeof(query), "SELECT * FROM tabelle WHERE IP = '%i.%i.%i.'", strval(zahl[0]), strval(zahl[1]), strval(zahl[2]));
    Da die Zahlen hier Strings sind (split-bedingt). Oder %i zu %s.

    Du gibst dem Timer über SetTimerEx eine ID mit und machst dann über die ID einen Switch, über den du die entsprechende Nachricht dann ausgibst. So kannst du immer das gleiche Callback mit einer anderen ID aufrufen, und damit immer unterschiedliche Nachrichten ausgeben.