Geschreiebenen Text in einem String ausgeben?!?

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
  • Wieso geht das hier nicht? Der Text wird nicht angezeigt!



    if(!strcmp(strget(cmdtext, 0),"/asay")) {
    if(!IsPlayerAdmin(playerid)) {
    SendClientMessage(playerid,rot," You are not an Admin!");
    } else {
    new text = strval(strget(cmdtext, 1));
    new name[32];
    new string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, 256, "***[AdM]%s: %s ***", name, text);
    SendClientMessageToAll(TÜRKIS,string);
    }
    return 1;
    }

  • Ich würde ma das was bei if steht mit dem tauschen was bei else steht:


    if(!strcmp(strget(cmdtext, 0),"/asay")) {
    new text = strval(strget(cmdtext, 1));
    new name[32];
    new string[256];
    if(!IsPlayerAdmin(playerid)) {
    GetPlayerName(playerid, name, sizeof(name));
    format(string, 256, "***[AdM]%s: %s ***", name, text);
    SendClientMessageToAll(TÜRKIS,string);
    }
    else if;
    {
    SendClientMessage(playerid,rot," You are not an Admin!");
    return 1;
    }



    EDIT: Sorry ist 100 pro falsch bin n noob :S

  • Warum postest du dann einen falschen Code,wenn du selbst sagst du bist ein Noob und das ist 100% falsch?
    Versteh ich absolut nicht,und dein else If Statement ist ja mal total Fehl am Platz :\.


    Bevor noch ein Genie kommt und falsch posten will,hier
    if(!strcmp(strget(cmdtext, 0),"/asay")) {
    if(!IsPlayerAdmin(playerid)) {
    SendClientMessage(playerid,rot," You are not an Admin!");
    } else {
    new
    name[MAX_PLAYER_NAME],
    string[128];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, 128, "***[AdM]%s: %s ***", name,cmdtext[6]);
    SendClientMessageToAll(TÜRKIS,string);
    }
    return 1;
    }

    Einmal editiert, zuletzt von Goldkiller ()

  • aaarrghhh ich hasse es!!! entweder schließt jemand den thread, wnen ich antworten will, oder internet kackt ab, oder browser kackt ab, oder der text ist von einer auf die andere sekunde weg und ich lande wieder am anfang von deinem thread -.-
    so, jetzt der 5te versuch was zu posten^^
    if(strcmp(cmdtext, "/asay", true)==0) {
    if(IsPlayerAdmin(playerid)) {
    new name[32], string[256];
    GetPlayerName(playerid,name,32);
    format(string, 256,"*** [AdM]%s: %s***", name, cmdtext[6]);
    SendClientMessageToAll(farbe, string); }
    else { SendClientMessage(playerid,farbe,"Nix für dich"); }
    return 1;
    }
    //EDIT: Goldkiller ist mir mit seinem link zuvorgekommen

    Einmal editiert, zuletzt von KeksOfDeath ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Du hast schon recht monti mit diesem code hier:
    if(!strcmp(strget(cmdtext, 0),"/asay")) {
    if(!IsPlayerAdmin(playerid)) {
    SendClientMessage(playerid,rot," You are not an Admin!");
    } else {
    new text = strval(strget(cmdtext, 1));
    new name[32];
    new string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, 256, "***[AdM]%s: %s ***", name, text);
    SendClientMessageToAll(TÜRKIS,string);
    }
    return 1;
    }


    Nur das Problem hier ist strget(cmdtext,1) die funktion ist nämlich so ausgerichtet, dass sie nur das wort nach dem /asay nimmt oder halt bis zum nächsten Abstand. Du könntest statt strget(cmdtext,1) strtok(strget(cmdtext,0),idx) nehmen. Nur hier ist noch etwas ergänzen.


    Unter OnPlayerCommandText gehört:
    new idx;


    Achja und hier noch strtok, den du irgendwo über OnPlayerCommandText hinkopieren musst:


    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;
    }

  • Ich habe im Moment keine Zeit zu scripten wegen Schule und wenn ich scripte kann ich nie aufhören gehe immer dann so um 1:30 schlafen, deswegen scripte ich nicht mehr häufig sonder nur wenn ich wirklich Zeit und Lust habe. Das heißt wenn ich am Wochenende Lust habe scripte ich, aber an einem neuen gamemode weil den alten hats i-wie total verbockt, macht immer nach paar sekunden gmx automatisch... und sonst noch i-welche bugs...

  • Ich versteh nicht wieso ihr überhaupt diese Strget braucht.Es funktioniert auch wunderbar ohne,Strtok brauch man ebenso nicht.
    if (strcmp("/asay", cmdtext, true,5)==0)
    if(!IsPlayerAdmin(playerid)) {
    SendClientMessage(playerid,rot," You are not an Admin!");
    if(!strlen(cmdtext[6])) {
    SendClientMessage(playerid,rot,"/asay [TEXT]");
    }
    else {
    new
    name[MAX_PLAYER_NAME],
    string[128];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, 128, "***[AdM]%s: %s ***", name,cmdtext[6]);
    SendClientMessageToAll(TÜRKIS,string);
    }
    return 1;
    }