Problem mit GameText

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
  • Tag Leute,
    ich wollte mir heute ein Command erstellen, womit ich die Spieler vorwarnen kann, das gleich ein GMX sein wird.
    Der CMD sieht so aus:
    dcmd_agmx(playerid,params[])
    {
    if(strlen(params))
    {
    if(admin_eingeloggt[playerid]==1)
    {
    new grund=strval(params);
    new ausgabe[100];
    format(ausgabe,sizeof(ausgabe),"~r~Warnung!~n~ Der Server wird gleich aus folgendem Grund restartet:~n~~y~ %s",grund);
    GameTextForAll(ausgabe,15000,4);
    }
    else
    {
    SendClientMessage(playerid,RED,"Du bist nicht als Admin eingeloggt!");
    }
    }
    else
    {
    SendClientMessage(playerid,RED,"Usage: \"/agmx <Grund>\"");
    }
    return 1;
    }


    Unter OnPlayerCommandText:
    dcmd(agmx,4,cmdtext);


    Das Problem ist allerdings, das er den Grund einfach nicht anzeigt :-x


    Ich hoffe ihr könnt mir helfen.

    2 Mal editiert, zuletzt von Nicorotom ()

  • if(strcmp(strget(cmdtext,true),"/gmx",true))
    {
    new reason=strval(strget(cmdtext,1));
    new ausgabe[128];
    if(admin_eingeloggt[playerid]==1)
    {
    format(ausgabe,sizeof(ausgabe),"~w~Warnung!~n~~b~Server Neustart~n~~w~Grund: ~b~%s",reason);
    GameTextForAll(ausgabe,15000,4);
    }
    else
    {
    SendClientMessage(playerid,RED,"Du bist nicht als Admin eingeloggt!");
    }
    return 1;
    }

  • Er hat bei GameTextForAll hat er anstadt 1 eine 4 gemacht

  • if(strcmp(strget(cmdtext,0),"/gmx",true))//false steht für 0 ; true steht für alles andere
    {
    new ausgabe[128];
    if(admin_eingeloggt[playerid]==1)
    {
    format(ausgabe,sizeof(ausgabe),"~w~Warnung!~n~~b~Server Neustart~n~~w~Grund: ~b~%s",cmdtext[5]);
    GameTextForAll(ausgabe,15000,4);
    }
    else
    {
    SendClientMessage(playerid,RED,"Du bist nicht als Admin eingeloggt!");
    }
    return 1;
    }
    Müsste so gehen

  • // Bei den Defines
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    public OnPlayerCommandText(playerid,cmdtext[]) {
    dcmd(gmx,3,cmdtext);
    return 0;
    }
    //Anywhere in your Script
    dcmd_gmx(playerid,params[]) {
    if(!strlen(params)) {
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /gmx [text]");
    }
    else {
    //What should happen?
    printf("/gmx : %s",params); //Debug msg
    }
    //Example for a Command like /announce [msg]
    return 1;
    }

    LG cinema


  • Hab nun mal nen neuen Code:
    dcmd_agmx(playerid,params[])
    {
    new grund[100];
    new ausgabe[100];
    if(sscanf(params,"s",grund))
    {
    if(admin_eingeloggt[playerid]==1)
    {
    format(ausgabe,sizeof(ausgabe),"~r~Warnung!~n~ Der Server wird gleich aus folgendem Grund restartet:~n~~y~ %s",grund);
    GameTextForAll(ausgabe,15000,4);
    }
    else
    {
    SendClientMessage(playerid,RED,"Du bist nicht als Admin eingeloggt!");
    }
    }
    else
    {
    SendClientMessage(playerid,RED,"Usage: /agmx <Grund>");
    }
    return 1;
    }


    Nun kann ich nur /agmx eingeben.
    Wenn ich einen Grund eingeben will dann sagt er Usage: /agmx <Grund>


    Problem behoben ;)
    Hatte bei sscanf das falsche eingefügt.
    Musste die SendClientMessage bei sscanf machen und die Funktion dann beim else sscanf ;)


    ~CLOSED~

    Einmal editiert, zuletzt von Nicorotom ()