/m Kein Text mit Leerzeichen

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
  • if(strcmp(strget(cmdtext,0), "/m", true) == 0)
    {
    if(pInfo[playerid][gTeam] == SAPD || pInfo[playerid][gLeader] == SAPD)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_RED, "Benutzte: /m [TEXT]");
    {
    new string[128];
    new sendername[256];
    new Float:x,Float:y,Float:z;
    new text[256];
    text = strget(cmdtext,1);
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "[Officer %s: %s]", sendername, text);
    GetPlayerPos(playerid, x, y, z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i,60.0,x,y,z))
    {
    SendClientMessage(i,COLOR_YELLOW,string);
    }
    }
    }
    }else{
    SendClientMessage(playerid,COLOR_RED,"Du musst Polizist sein!");
    }
    return 1;
    }


    Das geht wunderbar leider kommt wenn ich so ein text zum beispiel schreibe:


    Bitte Fahren sie rechts ran!


    nur Bitte ausgegeben. Kann mir jemand Helfen?

    2 Mal editiert, zuletzt von GooMan ()

  • Hmm... wenn du willst, kannst du es so machen, dass wenn du /m schreibst, sich ein Dialog öffnet, wo man Text eintippen kann. Und dieser wird bei OnDialogResponse mit "inputtext" definiert.

    mfg RedDragon 8)


    Was ist GFKD?


    Ein revolutionärer Clan, dessen Eröffnung kurz bevorsteht.
    Mehr Informationen folgen bald.

  • Liegt daran,dass du nicht weisst was du da benutzt.Es gibt da verschiedene Wege,entweder du schaust dir dieses Tutorial an oder du entfernst diese Zeilen

    new text[256];
    text = strget(cmdtext,1);

    und änderst diese
    format(string, sizeof(string), "[Officer %s: %s]", sendername, text);
    in
    format(string, sizeof(string), "[Officer %s: %s]", sendername, cmdtext[3]);


    Bei Lust und Laune kannst du auch folgendes ändern.
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_RED, "Benutzte: /m [TEXT]");
    in
    if(!strlen(cmdtext[2])) return SendClientMessage(playerid, COLOR_RED, "Benutzte: /m [TEXT]");


    //Edit : Mh,komische Formatierung :\
    //Edit 2 : Achja,falls du nicht verstanden hast wieso Ich es so und nicht Anders geändert habe, Schau dir die Grundlagen an :whistling: . In der Tutorial Sektion findest du dazu genug.

  • Hi


    Das liegt daran dass das was du benutzt für CMD´s is, wo man mehrere sachen eingibt. z.B. SetCarColor Farbe1 Farbe2. Der trennt immer beim leerzeichen. Du brauchst ne funktion die das nicht macht. So eine ist z.B. bei nem PM cmd dabei. Hier is aber auch eine, die du verwenden kannst:


    stock bigstrtok(const string[], &idx)
    {
    new length = strlen(string);
    while ((idx < length) && (string[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = string[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    return result;
    }


    Verwendung:
    new Nachricht[200];
    Nachricht = bigstrtok(cmdtext, idx);



    MFG, Robdeflop®
    MFG, Robdeflop®