Audio Stream für Spieler

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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,


    irgendwie funktioniert das ganze mit meinem Alter nicht. (Ich gebe z.B 23.06.1997 ein und es wird dennoch returnt)
    Hier mal der Code, welchen ich geschrieben habe:
    case DIALOG_ALTER:
    {
    new DateInfo[3][20],Check = Jahr - strval(DateInfo[2]);
    getdate(Jahr,Monat,Tag);
    gettime(Stunde,Minute,Sekunde);
    split(inputtext,DateInfo,'.');
    if(strlen(inputtext) > 10)
    {


    }
    if(!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2])))
    {


    }
    if(Jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= Jahr)
    {


    }
    if(Check == Jahr)
    {


    }
    if(strval(DateInfo[1]) > Monat)
    {
    Check -= 1;
    }
    else if(strval(DateInfo[1]) == Monat && strval(DateInfo[0]) > Tag)
    {
    Check -= 1;
    }
    if(AgeOfPlayer(playerid) < 12 && AgeOfPlayer(playerid) > 60)
    {

    }
    SpielerInfo[playerid][pGeburtsdatum] = strval(inputtext);
    }
    Ich habe die Dialoge extra rausgenommen, damit man keine Informationen zum Server hat.
    Wenn ich das Datum sofort korrekt eingebe, funktioniert es. Wenn ich jedoch erst ein falsches eingebe und dann ein richtiges, funktioniert es nicht.


    Nebenbei habe ich noch ein Problem, dass er mir ausgibt, dass ich 45 bin, obwohl ich 20 bin.
    stock AgeOfPlayer(playerid)
    {
    new yearold = gettime() - SpielerInfo[playerid][pGeburtsdatum];
    return floatround(yearold/31536000);
    }


    Die E-Mail wird in einem anderen Dialog auch nicht gesetzt, die Spalte bleibt leer..
    So setzte ich die E-Mail eigentlich:
    format(SpielerInfo[playerid][pEmail],64,"%s",strval(inputtext));


    MfG,
    Cheevy

    4 Mal editiert, zuletzt von Cheevy.Shakur () aus folgendem Grund: //edit: Was hinzugefügt //edit: Was hinzugefügt

  • Erstmal danke für deine Hilfe, irgendwie haut das mit dem Alter aber nicht hin. (E-Mail geht jetzt)
    Er gibt mir nur ein komisches Zeichen aus und die Spalte Alter bleibt leer.
    case DIALOG_ALTER:
    {
    new Age = GetPlayerAge(inputtext);
    if(Age == -1)
    {
    ...
    }
    SpielerInfo[playerid][pGeburtsdatum] = Age;
    ...
    }
    Wollte also gerne das Geburtsdatum in de Spalte speichern

  • Nein, das ist nicht möglich, zumindest nicht so, dass du mit 100%'iger Sicherheit sagen kannst, dass das auch genau das Passwort ist, das eingegeben wurde, da es für mehrere Passwörter den selben MD5-Wert geben kann. Außerdem ist das Prinzip von MD5 (und anderen Verschlüsselungsalgorithmen), dass man sie nicht rückführen kann (außer durch Brute-Force).

  • Habe es so realisiert, er haut mir aber Errors raus.
    new Password = GetPVarInt(playerid, "Passwort");
    WBB_CreateUser(GetName(playerid),SpielerInfo[playerid][pEmail],Password);


    Das Passwort setzte ich bei der Registrierung unverschlüsselt in den PVar, bevor es verschlüsselt wird
    new Password = strval(inputtext);
    SetPVarInt(playerid,"Passwort",Password);

  • Das Passwort ist ein String, daher geht es nicht. strval macht einen Integer aus einem String.


    new password[32];
    GetPVarString(playerid, "Passwort", password);
    WBB_CreateUser(GetName(playerid),SpielerInfo[playerid][pEmail],password);


    SetPVarString(playerid,"Passwort",inputtext);

  • Jo, funktioniert.
    Jedoch wollte ich eine Box nun aklickbar machen, dass ganze funktioniert aber irgendwie nicht so, wie mit normalen Textdraws.
    StartTextdraw[3] = TextDrawCreate(246.000000, 395.574066, "usebox");
    TextDrawLetterSize(StartTextdraw[3], 0.000000, 1.434771);
    TextDrawTextSize(StartTextdraw[3], 120.666664, 0.000000);
    TextDrawAlignment(StartTextdraw[3], 1);
    TextDrawColor(StartTextdraw[3], 0);
    TextDrawUseBox(StartTextdraw[3], true);
    TextDrawBoxColor(StartTextdraw[3], 102);
    TextDrawSetShadow(StartTextdraw[3], 0);
    TextDrawSetOutline(StartTextdraw[3], 0);
    TextDrawFont(StartTextdraw[3], 0);
    TextDrawSetSelectable(StartTextdraw[3],true);


    Wenn ich mit der Maus die Box anklicke, passiert einfach nichts.

  • Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/PlayerTextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.