Login 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,
    hab wieder ein Problem:
    Ich wollte mein Login/Register system über klickbare Textdraws machen, jdeoch wenn man auf einloggen /registrieren kilckt passiert nix.
    Hier der Code:
    LoginRegisterClick = TextDrawCreate(283.0000,343.0000, "Einloggen/Registrieren");
    TextDrawBackgroundColor(LoginRegisterClick, 255);
    TextDrawFont(LoginRegisterClick, 1);
    TextDrawLetterSize(LoginRegisterClick, 0.400000, 1.000000);
    TextDrawColor(LoginRegisterClick, -1);
    TextDrawSetOutline(LoginRegisterClick, 0);
    TextDrawSetProportional(LoginRegisterClick, 1);
    TextDrawSetShadow(LoginRegisterClick, 1);
    TextDrawSetSelectable(LoginRegisterClick, 1);


    if(clickedid == LoginRegisterClick)
    {
    if(textdrawlogin == false)
    {
    SetTimerEx("ShowLoginOrRegisterDialog",100,0,"i",playerid);
    }
    else
    {
    SetTimerEx("ShowLoginOrRegisterDialog",100,0,"i",playerid);
    }
    }


    public ShowLoginOrRegisterDialog(playerid)
    {
    new query[128];
    SetPlayerName(playerid,Spieler[playerid][pName]);
    SpamChat(playerid,0);// 0 = nur für einen spieler wird der chat kontrolliert 100 zeilen voll gespamt,bei 1 = für alle spieler
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_account_main WHERE Name = '%s'",SpielerName(playerid));
    mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_ACCOUNT_CHECK,playerid,MySqlConnection);
    return 1;
    }


    kann mir jmd helfen?


    MfG

  • Beitrag von DJ Deagle ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize 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.

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


    Funktioniert nicht, wenn ich das einfüge stürtzt der server ab.
    Aber ich habe neben dem einloggen/registrier textdraw noch ein Info-Textdraw, welches funktioniert wenn man darauf klickt. Dies ist jedoch nicht anders geschrieben als das einloggen/registrier-Textdraw

  • Kannst du bitte den Code von dem Textdraw posten, wie es ist, wenn der Server abstürzt?


    LoginRegisterClick = TextDrawCreate(283.0000,343.0000, "Einloggen/Registrieren");
    TextDrawBackgroundColor(LoginRegisterClick, 255);
    TextDrawFont(LoginRegisterClick, 1);
    TextDrawLetterSize(LoginRegisterClick, 0.400000, 1.000000);
    TextDrawColor(LoginRegisterClick, -1);
    TextDrawSetOutline(LoginRegisterClick, 0);
    TextDrawSetProportional(LoginRegisterClick, 1);
    TextDrawSetShadow(LoginRegisterClick, 1);
    TextDrawSetSelectable(LoginRegisterClick, 1);
    TextDrawTextSize(LoginRegisterClick,347.0000,367.0000);


    wenn ich dann auf das Textdraw klicke, stürzt der server ab

  • TextDrawTextSize(LoginRegisterClick,347.0000,15.0000);
    Machs erst mal so.


    Wenn du drauf drückst?
    Dann poste den Code der ausgeführt wird, wenn du drauf drückst. Falls du hast, auch den Server Log vom crashdetect, was wäre gut.

  • Stürzt immer noch ab


    Dann poste den Code der ausgeführt wird, wenn du drauf drückst. Falls du hast, auch den Server Log vom crashdetect, was wäre gut.


    ok hier:
    [13:53:43] Loading plugin: crashdetect.so
    [13:53:43] CrashDetect v4.15.1 is OK.
    [13:53:43] Loaded.
    [13:53:43] Loaded 5 plugins.


    [13:53:43]
    [13:53:43] Ban list
    [13:53:43] --------
    [13:53:43] Loaded: samp.ban
    [13:53:43]
    [13:53:43]
    [13:53:43] Filterscripts
    [13:53:43] ---------------
    [13:53:43] Loaded 0 filterscripts.


    [13:53:43] Server-Info: Die Verbindung zur Mysql-Datenbank wurde erfolgreich hergestellt!
    [13:53:43] --------------------------------
    [13:53:43] Laden ...
    [13:53:43] Spieler dürfen server nun beitreten!
    [13:53:43] Dieses Script steht unter Datenschutz und darf
    [13:53:43] nur von dem Besitzer benutzt/verwendet oder mit Erlaubnis werden.
    [13:53:43] © Copyright by Taylor_Swift aka. Edward_Murphy
    [13:53:43] Number of vehicle models: 83
    [13:54:22] [connection] 212.60.181.29:55125 requests connection cookie.
    [13:54:23] Incoming connection: 212.60.181.29:55125 id: 0
    [13:54:23] [join] TheOneBehindYou1 has joined the server (0:212.60.181.29)
    [13:54:28] [nick] TheOneBehindYou1 nick changed to EINLOGGER_1
    [13:54:39] [nick] EINLOGGER_1 nick changed to TheOneBehindYou1
    [13:54:39] [debug] Server crashed while executing syntroprp.amx
    [13:54:39] [debug] AMX backtrace:
    [13:54:39] [debug] #0 native mysql_function_query () from mysql.so
    [13:54:39] [debug] #1 000fdec4 in public ShowLoginOrRegisterDialog () from syntroprp.amx
    [13:54:39] [debug] Native backtrace:
    [13:54:39] [debug] #0 b6782e8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
    [13:54:39] [debug] #1 b677bbcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
    [13:54:39] [debug] #2 b677cdbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
    [13:54:39] [debug] #3 b677d226 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
    [13:54:39] [debug] #4 b6782adc in ?? () from plugins/crashdetect.so
    [13:54:39] [debug] #5 b7789600 in ?? ()
    [13:54:39] [debug] #6 b741fa73 in _ZN7Natives22n_mysql_query_callbackEP6tagAMXPi () from plugins/mysql.so
    [13:54:39] [debug] #7 080950b4 in ?? () from ./samp1113_5372
    [13:54:39] [debug] #8 b677e94b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
    [13:54:39] [debug] #9 b67818f8 in ?? () from plugins/crashdetect.so
    [13:54:39] [debug] #10 b6785916 in amx_Exec () from plugins/crashdetect.so
    [13:54:39] [debug] #11 b677dbe6 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
    [13:54:39] [debug] #12 b6781659 in ?? () from plugins/crashdetect.so
    [13:54:39] [debug] #13 080e9e15 in ?? () from ./samp1113_5372
    [13:54:39] [debug] #14 080aecfc in ?? () from ./samp1113_5372
    [13:54:39] [debug] #15 080a9e9a in ?? () from ./samp1113_5372
    [13:54:39] [debug] #16 b74f5e16 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
    [13:54:39] [debug] #17 0804b4e1 in ?? () from ./samp1113_5372


    (Ab dem Zeitpunkt wo crashdetect geladen wird)

  • Kannst du dein ShowLoginOrRegisterDialog bitte posten?


    jop
    public ShowLoginOrRegisterDialog(playerid)
    {
    new query[128];
    SetPlayerName(playerid,Spieler[playerid][pName]);
    SpamChat(playerid,0);// 0 = nur für einen spieler wird der chat kontrolliert 100 zeilen voll gespamt,bei 1 = für alle spieler
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_account_main WHERE Name = '%s'",SpielerName(playerid));
    mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_ACCOUNT_CHECK,playerid,MySqlConnection);
    return 1;
    }

  • unter ongamemodeinit:
    for(new gw;gw<sizeof(GangwarZones);gw++)
    {
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_gangwar WHERE GangZoneID='%d'",gw);
    mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_GANGZONE_INSERT,gw,MySqlConnection);
    }

  • Das sieht aber nicht anders aus. Wirklich komisch.
    Versuche mal das:
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_account_main WHERE Name = '%s'",SpielerName(playerid));
    zu:
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_account_main WHERE Name = '%s'",Spieler[playerid][pName]);

  • mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_ACCOUNT_CHECK,playerid,MySqlConnection);
    zu
    mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","iiis",_SQL_ACCOUNT_CHECK,playerid,MySqlConnection,query);


    Da das Problem ja noch nicht behoben wurde, und anscheinend auch keine Lösung gefunden wurde, kann man ja jetzt nur spekulieren. ;)
    Probiere es aus. Ich weiß nicht wie das ist, wenn man eine Leertaste in der Query hat, ob es dann als Integer sofort gewertet wird (bei deinem, wo "s" vor den "iii" steht. ;))

  • Besteht das Problem noch, du hast nicht mehr geantwortet.
    Falls ja, dann kann ich dir leider nicht weiterhelfen, ich wüsste keinen Grund mehr, der noch zu einem Absturz führen kann, da alles korrekt ist.
    Was du machen kannst, was leider ein etwas größerer Aufwand ist, ist das Plugin upzudaten, sprich die R39-3 zu verwenden. Dann sollte das Problem nicht mehr auftreten (zuvor ein Backup machen!).

  • Ja das Problem besteht noch, leider
    Danke für deine Hilfe trdm
    Ich kann aber mittlerweile sagen, dass das Problem in diesem Code liegt
    public ShowLoginOrRegisterDialog(playerid)
    {
    new query[128];
    SetPlayerName(playerid,Spieler[playerid][pName]);
    SpamChat(playerid,0);// 0 = nur für einen spieler wird der chat kontrolliert 100 zeilen voll gespamt,bei 1 = für alle spieler
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_account_main WHERE Name = '%s'",SpielerName(playerid));
    mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_ACCOUNT_CHECK,playerid,MySqlConnection);
    return 1;
    }


    Da ich den Timer, der diesen Code aufruft, mal auf das Info-Textdraw "gelegt" habe und der server auch hier bei abstürzt. Zu erwähnen ist, dass das Info-Textdraw zuvor funktionierte