Hook Fehler?

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
  • Morgen zusammen


    Ich bekomme einen Serverchash durch mein OnDialogResponse hook, und bin am rätseln wiso
    Laut Chrashdetekt liegt es an der CallLocalFunction hier mal der code:
    #include <a_samp>
    #include <DT_Dialog>


    new HilfeText[][128]=
    {
    {"BlubBlubBlub"}
    };


    forward H_OnPlayerCommandText(playerid, cmdtext[]);
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/hilfe", cmdtext, true)||!strcmp("/help", cmdtext, true))
    {
    ShowPlayerDialog(playerid,diaHilfe,DIALOG_STYLE_LIST,"Hilfe","Allgemeine Hilfe\nAuto Hilfe\nJob Hilfe\nFraktions Hilfe\nAdmin Hilfe","Wählen","Abbruch");
    return CallLocalFunction("H_OnPlayerCommandText","ds",playerid, cmdtext);
    }
    return CallLocalFunction("H_OnPlayerCommandText","ds",playerid, cmdtext);
    }


    forward H_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == diaHilfe && response)
    {
    switch(listitem)
    {
    case 0:
    ShowPlayerDialog(playerid,diaAllgHilfe,DIALOG_STYLE_MSGBOX,"Allgemeine Hilfe",HilfeText[0],"Ok","Zurück");
    }
    }
    if(dialogid == diaAllgHilfe && !response)
    ShowPlayerDialog(playerid,diaHilfe,DIALOG_STYLE_LIST,"Hilfe","Allgemeine Hilfe\nAuto Hilfe\nJob Hilfe\nFraktions Hilfe\nAdmin Hilfe","Wählen","Abbruch");
    return CallLocalFunction("H_OnDialogResponse","dddds",playerid, dialogid, response, listitem, inputtext);
    }


    #if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
    #else
    #define _ALS_OnPlayerCommandText
    #endif
    #define OnPlayerCommandText H_OnPlayerCommandText


    #if defined _ALS_OnDialogResponse
    #undef OnDialogResponse
    #else
    #define _ALS_OnDialogResponse
    #endif
    #define OnDialogResponse H_OnDialogResponse
    die dialoginclude schaut so aus:

    Spoiler anzeigen
    enum
    {
    diaRegister,
    diaLogin,
    diaHelp,
    diaInfo,
    diaAFK,
    diaJobs,
    diaJobTruck,
    diaJobOkay,
    diaJobQuitSure,
    diaJobInfo,
    diaJobMecha,
    diaJobVertrag,
    diaShop,
    diaShopIGVIP,
    diaShopJV,
    diaCarBuyInfo,
    diaOamtCalls,
    diaMedicCalls,
    diaAutoverkauf,
    diaAutoverkaufplayer,
    diaShopDonate,
    diaJobMuell,
    diaAmtsgericht,
    diaAmtsgerichtcars,
    diaFirmaChange,
    diaFirmaInfo,
    diaFirmaCreate,
    diaStats,
    diaFirmaTrucker,
    diaBank,
    diaBankEin,
    diaBankAus,
    diaBankKontoMann,
    diaBiz,
    diaBizProd,
    diaBizKasse,
    diaBizEin,
    diaBizAus,
    diaMarkt,
    diaHandy,
    diaPilot,
    diaJobPilot,
    diaNavi,
    diaHilfe,
    diaAllgHilfe
    };


    Ich weiß nicht wiso der server dadurch chrasht und hoffe das einer von euch eine idee dazu hat

    All in all it's just another brick in the wall

  • das hier:
    return CallLocalFunction("H_OnDialogResponse","dddds",playerid, dialogid, response, listitem, inputtext);


    durch:
    if(!inputtext[0])return CallLocalFunction("H_OnDialogResponse","dddds",playerid, dialogid, response, listitem, " ");
    return CallLocalFunction("H_OnDialogResponse","dddds",playerid, dialogid, response, listitem, inputtext);
    ersetzen


    Erklärung: CallLocalFunction bringt den Server zum Absturz wenn ein leerer string übergeben wird, deswegen die Abfrage und das " ".

    <3

    Einmal editiert, zuletzt von D0erf|er ()