Problem mit Supportsystem

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
  • Hiho,


    ich hab ein Problem mit demk Supportsystem. Nehme ich einen Report an, kackt der Server ab (Server hat exe)



    //CMD:support
    dcmd_support(playerid,params[]) {
    new
    sGrund[128];
    if(sscanf(params, "z",sGrund)) {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"USAGE: /support [Text] - Sendet einen Report an alle Supporter");
    }
    if(PlayerInfo[playerid][support] == 1)
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Du hast bereits einen Report gesendet. Gib /cancelhelp ein um den Report zu löschen.");
    }
    if(PlayerInfo[playerid][AdminLevel] >= 1)
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Benutzte bitte /admin für fragen an Supporter.");


    }
    else
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    string[128],
    string2[128],
    string3[128],
    string4[128];
    GetPlayerName(playerid,ThePlayer,sizeof(ThePlayer));
    PlayerInfo[playerid][support] = 1;
    PlayerInfo[playerid][supporttext] = sGrund;
    new i;
    for(i=0;i<MAX_PLAYERS;i++)
    {
    if(PlayerInfo[i][AdminLevel] >= 1)
    {
    format(string,sizeof(string),"[REPORT von %s]: %s",ThePlayer,sGrund[0] ? sGrund : "<Kein Grund>");
    SendClientMessage(i,COLOR_YELLOW,string);
    format(string2,sizeof(string2),"[REPORT]: Benutzte /supporton %d um den Report zu bearbeiten.",playerid);
    SendClientMessage(i,COLOR_YELLOW,string2);
    }
    }
    format(string3,sizeof(string3),"[REPORT]: Dein Report wurde erfolgreich erstellt und in kürze bearbeitet.");
    SendClientMessage(playerid,COLOR_YELLOW,string3);
    format(string4,sizeof(string4),"[REPORT]: Gib /cancelhelp ein um den Report zu löschen.");
    SendClientMessage(playerid,COLOR_YELLOW,string4);
    }
    return 1;
    }



    //CMD:supporton
    dcmd_supporton(playerid,params[]) {
    new
    pID;
    if(sscanf(params, "d",pID)) {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"USAGE: /supporton [PlayerID] - Du bearbeitest den Report von [PlayerID].");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Spieler ist nicht Online.");
    }
    if(PlayerInfo[playerid][AdminLevel] >= 1)
    {
    if(PlayerInfo[pID][support] == 1)
    {
    if(PlayerInfo[pID][supporton] == 0)
    {
    new ThePlayer[128], PlayerName[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT]: Du bearbeitest nun den Report von %s (ID %d).", ThePlayer, pID); //621
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT]: Mit /whisp %d kannst du auf den Report antworten.", pID);//622
    SendClientMessage(pID,COLOR_YELLOW,"[SUPPORT]: Dein Report wird nun von %s (ID %d) Bearbeitet.", PlayerName, playerid);//623
    PlayerInfo[pID][supporton] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Der Report ist bereits in Bearbeitung.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Von diesen User ist kein Report vorhanden.");
    }
    }
    else
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Du bist kein Moderator.");
    }
    return 1;
    }


    1. CMD /support
    2. CMD /supporton (Fehlerbefehl)


    Pawno gibt folgene Meldungen aus:

    Zitat

    C:\server-samp\gamemodes\test.pwn(621) : warning 202: number of arguments does not match definition
    C:\server-samp\gamemodes\test.pwn(621) : warning 202: number of arguments does not match definition
    C:\server-samp\gamemodes\test.pwn(622) : warning 202: number of arguments does not match definition
    C:\server-samp\gamemodes\test.pwn(623) : warning 202: number of arguments does not match definition
    C:\server-samp\gamemodes\test.pwn(623) : warning 202: number of arguments does not match definition

    kann jemand einen hinweiß geben wieso der Server abstürzt wenn ich einen Report annehme?

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Das heißt bei den entsprechenden Zeilen sind entweder zuviele oder zu wenig Angaben gemacht worden :pinch:
    /edit

    new i; // Wieso deklariest du i!?
    for(i=0;i<MAX_PLAYERS;i++)
    {
    if(PlayerInfo[i][AdminLevel] >= 1)
    {
    format(string,sizeof(string),"[REPORT von %s]: %s",ThePlayer,sGrund[0] ? sGrund : "<Kein Grund>");
    SendClientMessage(i,COLOR_YELLOW,string);
    format(string2,sizeof(string2),"[REPORT]: Benutzte /supporton %d um den Report zu bearbeiten.",playerid);
    SendClientMessage(i,COLOR_YELLOW,string2);
    }
    }
    format(string3,sizeof(string3),"[REPORT]: Dein Report wurde erfolgreich erstellt und in kürze bearbeitet.");
    SendClientMessage(playerid,COLOR_YELLOW,string3);
    format(string4,sizeof(string4),"[REPORT]: Gib /cancelhelp ein um den Report zu löschen.");
    SendClientMessage(playerid,COLOR_YELLOW,string4);
    }

    Resourcenfressend und so :thumbup:, eher so? ^^
    for(i=0;i<MAX_PLAYERS;i++)
    {
    if(PlayerInfo[i][AdminLevel] >= 1)
    {
    format(string,sizeof(string),"[REPORT von %s]: %s",ThePlayer,sGrund[0] ? sGrund : "<Kein Grund>");
    SendClientMessage(i,COLOR_YELLOW,string);
    format(string2,sizeof(string2),"[REPORT]: Benutzte /supporton %d um den Report zu bearbeiten.",playerid);
    SendClientMessage(i,COLOR_YELLOW,string2);
    }
    }
    SendClientMessage(playerid,COLOR_YELLOW,"[REPORT]: Dein Report wurde erfolgreich erstellt und in kürze bearbeitet.");
    SendClientMessage(playerid,COLOR_YELLOW,"[REPORT]: Gib /cancelhelp ein um den Report zu löschen.");
    }
    Das heißt du kannst dir string3 und string4 sparen, die kosten nur wertvolle Resourcen.

    Einmal editiert, zuletzt von ]hp[ ()

  • das ist ja nichtmal das problem, wenn ich mit /supporton den Report annehmen will, gibt es einen Servercrash.


    Ich bau das aber mal mit ein :D

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT]: Du bearbeitest nun den Report von %s (ID %d).", ThePlayer, pID); //621
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT]: Mit /whisp %d kannst du auf den Report antworten.", pID);//622
    SendClientMessage(pID,COLOR_YELLOW,"[SUPPORT]: Dein Report wird nun von %s (ID %d) Bearbeitet.", PlayerName, playerid);//623

    Das geht nicht mit der ID dahinter, das müsstest du in einen string packen damits geht, daher komme auch die Warnungen ;) das müsste dann so aussehen damits keine Warnungen gibt
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT]: Du bearbeitest nun den Report von %s (ID %d)."); //621
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT]: Mit /whisp %d kannst du auf den Report antworten.");//622
    SendClientMessage(pID,COLOR_YELLOW,"[SUPPORT]: Dein Report wird nun von %s (ID %d) Bearbeitet.");//623

    Ansonsten musst du mit strings arbeiten aber ich denke deine Admins werden auch die Befehle einigermaßen kennen daher wird da das mit /whisp wohl kaum nötig sein denke ich.