Server schmiert ab, bei Abfrage aus Helpsystem.

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 Brotfische,


    Hab nun wieder angefangen an meinem Truckerscript weiter zu arbeiten, jedoch scheitere ich an einem simplen Helpsystem.
    Folgendes:


    gebe ich InGame /help 2 bauer ein, erhalte ich in blau den gewünschten Text "Helpsystem wird aus Datenbank geladen"


    Danach beendet sich der Server einfach so. Weder ein Mysql Befehlö wird ausgeführt oder sonst noch etwas.Mein Derzeiter Code:


    ocmd:help2(playerid,params[])


    {


    new text[32];


    if(sscanf(params, "s[64]", text)) return SendClientMessage(playerid, COLOR_RED, "BENUTZUNG: /help2 [Text]");


    /*


    ShowPlayerDialog(playerid,10,DIALOG_STYLE_LIST,"Help","Trucker Commands\nPolice Commands\nGeneral Commands\nHouse","Select","Cancel");


    */


    SendClientMessage(playerid, COLOR_BLUE, "Helpsystem wird aus Datenbank geladen.");


    SetTimerEx("Helpsystem", 4000, 0, "is[64]", playerid, text);


    return 1;


    }



    Meine 2 Callbacks:


    forward Helpsystem(playerid, text[]);


    public Helpsystem(playerid, text[])


    {


    if(mysql_ping(1) == 0)


    {


    SendClientMessage(playerid, COLOR_RED, "Konnte Helpsystem nicht abrufen, bitte versuche es später erneut.");


    return 1;


    }


    else


    {


    new query[128];


    format(query,sizeof query,"SELECT * FROM `helpsystem` WHERE `name` LIKE '%s'",text);


    mysql_function_query(sqlcon, query, true, "ReturnHelp", "is[64]", playerid, text);


    return 1;


    }


    }







    forward ReturnHelp(playerid, text[]);


    public ReturnHelp(playerid, text[])


    {


    new rows, lines;


    cache_get_data(rows, lines);


    if(!rows)


    {


    new string[128];


    format(string, sizeof string, "[Helpsystem]Konnte keinen Eintrag mit dem Namen '%s' finden.", text);


    SendClientMessage(playerid, COLOR_RED, string);


    }


    else


    {


    if(rows > 1)


    {


    new data[64], string[128];


    for(new i; i<5; i++)


    {


    cache_get_field_content(i, "name", data);


    format(string, sizeof string, "%s\n%s", string, data);


    }


    ShowPlayerDialog(playerid, DIALOG_RETURNHELP, DIALOG_STYLE_LIST, "Helpsystem - Auswahl", string, "Auswählen", "Abbrechen");


    }


    }


    }




    Ich weiß einfach nicht weiter.



    Domi,



    @BlackAce:
    Sharpadox:

    Zitat von Sharpadox

    Echt fantastisch, dieses "Google" ^^



  • Mal in der Log nach geschaut ob sscanf ein Problem hat ?


    Du hast text mit 32 Zeichen definiert.
    Nutzt aber bei Sscanf immer 64.
    Zeile 7 & 17


    Habs grad komischerwei´ße selbst hinbekommen (Danke ans Wiki :) )


    Fehler lag an
    mysql_function_query(sqlcon, query, true, "ReturnHelp", "is[64]", playerid, text);



    Muss natürlich nur
    mysql_function_query(sqlcon, query, true, "ReturnHelp");


    heißen :)



    Jedoch habe ich ein neues Problem:


    Ich arbeite bei der Abfrage mit LIKE um ähnliche namen heraus zu finden.
    Jedoch unformatiert mir format das %s in ein %s.


    format(query,sizeof query,"SELECT * FROM `helpsystem` WHERE `name` LIKE '%%s%'",text);


    Muss ich die 2 % irgendwie speziell escapen?

    Zitat von Sharpadox

    Echt fantastisch, dieses "Google" ^^



  • Laut wiki:
    format(query,sizeof query,"SELECT * FROM `helpsystem` WHERE `name` LIKE '%%%s%%'",text);
    > http://wiki.sa-mp.com/wiki/Format


    // Edit:
    %% Inserts the literal '%'


    Okey, Danke :love:


    Jedoch regt mich folgendes noch immer auf:


    mysql_function_query(sqlcon, query, true, "ReturnHelp", "is", playerid, text);


    Der Server crasht einfach.


    server_log:


    [18:13:19] [debug] Server crashed while executing trucking.amx
    [18:13:19] [debug] AMX backtrace:
    [18:13:19] [debug] #0 native mysql_function_query () [10008f00] from mysql.DLL
    [18:13:19] [debug] #1 0001c9d8 in public Helpsystem (0x00000000, 0x00053614, 0x00000000, 0x00000000, 0x00000000, 0x00000000) from trucking.amx
    [18:13:19] [debug] Native backtrace:
    [18:13:19] [debug] #0 0040335f in ?? () from samp-server.exe
    [18:13:19] [debug] #1 1000ad58 in ?? () from plugins\mysql.DLL
    [18:13:19] [debug] #2 100090ed in ?? () from plugins\mysql.DLL
    [18:13:19] [debug] #3 004010b6 in ?? () from samp-server.exe
    [18:13:19] [debug] #4 57a09db7 in ?? () from plugins\crashdetect.DLL
    [18:13:19] [debug] #5 57a158ca in ?? () from plugins\crashdetect.DLL
    [18:13:19] [debug] #6 57a1774f in ?? () from plugins\crashdetect.DLL
    [18:13:19] [debug] #7 57a10834 in ?? () from plugins\crashdetect.DLL
    [18:13:19] [debug] #8 57a1591a in ?? () from plugins\crashdetect.DLL
    [18:13:19] [debug] #9 57a59f0d in ?? () from plugins\streamer.DLL
    [18:13:19] [debug] #10 0047e408 in ?? () from samp-server.exe
    [18:13:19] [debug] #11 002bedf0 in ?? ()
    [18:13:19] [debug] #12 002b12a0 in ?? ()
    [18:13:19] [debug] #13 002bedd0 in ?? ()
    [18:13:19] [debug] #14 002bedb0 in ?? ()

    Zitat von Sharpadox

    Echt fantastisch, dieses "Google" ^^