Befehl (SendClientMessageToAll)

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
  • Sieht nach nem Godfather aus.
    Such dir einen Befehl mit Text-Parameter z.B. /report Dort kopierste dir den Teil raus wo er das was der Spieler eingegeben hat (tmp müsste das lauten) raus und dann bauste den einfach um.

  • Also ich bin jetzt soweit, aber wie muss ich das jetzt schreiben das der Leader ein individuellen Text verfassen kann?


    if(strcmp(cmd, "/fwgov", true) == 0
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
    return 1;
    }
    SendClientMessageToAll(COLOR_WHITE, "|___________ Feuerwehr Zentrale ___________|");
    if(PlayerInfo[playerid][pLeader] == 22)
    {





    Edit:


    Also ich bin jetzt soweit das der Befehl halbwegs funktioniert, allerdings wen ich jetzt ingame eingebe /fwgov kommt ja die Beschreibung also "Benutze /fwgov [Text] so wen ich jetzt ingame eingebe /fwgov Test kommt trotzdem wieder die Beschreibung!


    so sieht es bis jetzt aus


    if(strcmp(cmd, "/fwgov", true) == 0)
    {
    if(IsPlayerConnected(playerid))

    tmp = strtok(cmdtext, idx);
    if(!strval(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
    return 1;
    }
    if(PlayerInfo[playerid][pLeader] == 22)
    {
    SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
    new stringfw[256];
    format(stringfw, sizeof(stringfw), "%s", strval(tmp));
    SendClientMessageToAll(COLOR_WHITE, stringfw);
    }
    return 1;
    }

  • Wen ich jetzt denn Befehl benutze sieht das ganze so aus:






    //Der Code:


    if(strcmp(cmd, "/fwgov", true) == 0)
    {
    if(IsPlayerConnected(playerid))

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
    return 1;
    }
    if(PlayerInfo[playerid][pLeader] == 22)
    {
    SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
    new stringfw[256];
    format(stringfw, sizeof(stringfw), "%s", strval(tmp));
    SendClientMessageToAll(COLOR_WHITE, stringfw);
    }
    return 1;
    }


  • Das musst du bei format auch machen.



    Hab ich jetzt gemacht aber wen ich jetzte:


    /fwgov Test kommt nur "est"


    und bei:


    /fwgov Das ist ein test kommt nur "as"


    sprich es erscheint immer nur das erste Wort und das aber ohne denn ersten Buchstaben :pinch:




    /code


    if(strcmp(cmd, "/fwgov", true) == 0)
    {
    if(IsPlayerConnected(playerid))

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
    return 1;
    }
    if(PlayerInfo[playerid][pLeader] == 22)
    {
    SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
    new stringfw[256];
    format(stringfw, sizeof(stringfw), "%s", strlen(tmp));
    SendClientMessageToAll(COLOR_WHITE, stringfw);
    }
    return 1;
    }

  • Wieso fügst du "strlen(tmp)" bei format ein?
    Du willst doch den eingegebenen Text ausgegeben haben und nicht die Länge. Zumal es bei der Länge dann auch %i sein müsste.


    Und wofür ist die Abfrage, ob der Spieler auf dem Server ist (IsPlayerConnected) ?
    Um den Befehl einzugeben, muss er sich auch auf dem Server befinden. ;)


    if(strcmp(cmd, "/fwgov", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
    return 1;
    }
    if(PlayerInfo[playerid][pLeader] == 22)
    {
    SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
    new stringfw[256];
    format(stringfw, sizeof(stringfw), "%s", tmp);
    SendClientMessageToAll(COLOR_WHITE, stringfw);
    }
    return 1;
    }




  • /edit: Also jetzt schreibt er schonmal ein ganzes Wort^^ aber wen ich ein Satz schreibe erscheint trotzdem nur das erste Wort :huh:


    Sprich ich schreibe /fwgov Hallo User und erscheinen tut "Hallo" also immer nur das erste Wort egal was ich schreibe



    /edit kann mir keiner helfen?