/news [TEXT] -> wird nicht angezeigt

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
  • Hallo Leute,


    wenn jetzt jemand news schreiben will, steht da nur:
    Newsreprter Irgendjmd: (KEIN Text :( )
    Was ist da falsch?:
    if(!strcmp(strget(cmdtext, 0), "/n", true)){
    new meldung = strval(strget(cmdtext,1));
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,WEIS,"Benutzung: /n(ews) [TEXT]");
    return 1;
    }
    new string[256];
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid,player, sizeof player);
    format(string,sizeof string,"Newsreprter %s: %s",player,meldung);
    SendClientMessageToAll(NEWS,string);
    return 1;
    }

  • Ändere mal diese Zeile in meine um:
    new meldung = strget(cmdtext,1);

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Ohne Array funktionierts nicht :)

    new meldung[100] = strget(cmdtext,1);

    Fallls es jemals abhackt (was ich nicht glaube, da kaum einer mehr als 99 Zeichen für News benötigt) einfach das in der eckigen Klammer erhöhen (aber nicht zu hoch ;))


    Viel Spaß ^^

  • Probier es mal so:


    Das ganz unten in dein Script.


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    in deinem cmd machst du das:


    new text[128],idx;
    text = strtok(cmdtext,idx);


    if(strcmp(........
    {
    new tmp[128];
    tmp = strtok(cmdtext,idx);
    SendClientMessage(playerd,0xFFFFFFFF,tmp);
    return 1;
    }

  • Omg das ist ja mal völig neu für mich.
    annst du mir das mal bitte iin meinen Code einbauen?
    if(!strcmp(strget(cmdtext, 0), "/n", true))
    {
    if(gTeam[playerid] == Team_News && gRang[playerid] >= 92)
    {
    new meldung = strget(cmdtext,1);
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,WEIS,"Benutzung: /n(ews) [TEXT]");
    return 1;
    }
    new string[256];
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid,player, sizeof player);
    format(string,sizeof string,"Newsreprter %s: %s",player,meldung);
    SendClientMessageToAll(NEWS,string);
    return 1;
    }
    else if(gTeam[playerid] != Team_News)
    {
    SendClientMessage(playerid,KERFOLG,"Du bist ein Newsreporter oder hast nicht Rang 2 erreicht");
    return 1;
    }
    }

  • Ganz unten im Script:


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Hier der Befehl:


    if(!strcmp(strget(cmdtext, 0), "/n", true))
    {
    if(gTeam[playerid] == Team_News && gRang[playerid] >= 92)
    {
    new idx;
    new tmp[128] = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,WEIS,"Benutzung: /n(ews) [TEXT]");
    return 1;
    }
    new string[256];
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid,player, sizeof player);
    format(string,sizeof string,"Newsreporter %s: %s",player,tmp);
    SendClientMessageToAll(NEWS,string);
    return 1;
    }
    else if(gTeam[playerid] != Team_News)
    {
    SendClientMessage(playerid,KERFOLG,"Du bist kein Newsreporter oder hast nicht Rang 2 erreicht");
    return 1;
    }
    }