/news befehl für Reporter Problem [Hilfe]

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
  • Hi ich hatte in zusammen arbeit mit 1-2 anderen Leuten aus dem Forum einen Befehl erstellt um die Reporter News berrichten zu lassen, doch leider steht mir dort ein kleines Problem im Weg.


    Wenn ich jetzt den Befehl /news Hallo eingebe kommt als Nachrricht "[Newsreporter] Bob: /news Hallo".
    Also es kommt immer an erster stelle noch der Befehl /news und dann erst die Nachrricht, doch ich weiss leider nicht wo das Problem steckt, ich schick euch mal den Befehl:


    if(!strcmp(strget(cmdtext,0),"/news")) // Der Befehl
    {
    if(gTeam[playerid] == TEAM_COP)
    {
    new name1[MAX_PLAYER_NAME];
    new nachricht[256],string[256];
    GetPlayerName(playerid,name1,sizeof(name1));
    if(sscanf(cmdtext,"s",nachricht))return SendClientMessage(playerid, COLOR_TOMATO,"/news [TEXT]");
    format(string,sizeof(string),"[Newsreporter]%s:%s",name1,nachricht);
    SendClientMessageToAll(COLOR_ORANGE, string);
    }
    return 1;
    }


    Leider konnt ich aus anderen Threads nicht schlüssig werden, bzw herrausfinden wo der Fehler steckt und nun bitte ich um euere Hilfe :)


    LG
    Bob

  • ich denke mal hier: if(sscanf(cmdtext,"s",nachricht))return SendClientMessage(playerid, COLOR_TOMATO,"/news [TEXT]");
      Mach mal das /news weg und guck ob das funktioniert


    Zitat

    Die Moderation hat ja schon alle Hände voll zu tun mit den Leuten,
    die ihren geistigen Dünnschiss in Beiträge fassen,
    aber eine Shoutbox in so einem Forum - NEIN !

  • Versuch des mal.. ansonsten machste des einfach mit ocmd:


    ocmd:news(playerid,params[])
    {
    if(gTeam[playerid]== TEAM_COP)
    {
    new sendername[MAX_PLAYER_NAME], string[180];
    if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_TOMATO,"Benutzte: /news [Text]");
    GetPlayerName(playerid,sendername, sizeof(sendername));
    format(string, sizeof(string), "[News Reporter]%s: %s.", sendername, string);
    SendClientMessageToAll(COLOR_ORANGE, string);
    printf("[News Reporter]%s: %s ))",sendername, string);
    }else{
    SendClientMessage(playerid,COLOR_TOMATO,"Du bist kein News Reporter");
    }
    return 1;
    }


    Hab den OCMD so aus meinem Script raus und halt an dein gTeam angepasst :D

    //Edit: Oberen Befehl ergänzt :D
    //Edit: Oberen Befehl entfernt (buggy)

  • if(!strcmp(strget(cmdtext,0),"/news")) // Der Befehl
    {
    if(gTeam[playerid]== TEAM_COP)
    {
    new sendername[MAX_PLAYER_NAME], string[180];
    if(sscanf(cmdtext,"s",string))return SendClientMessage(playerid, COLOR_TOMATO,"/news [TEXT]");
    GetPlayerName(playerid,sendername, sizeof(sendername));
    format(string, sizeof(string), "[News Reporter]%s: %s.", sendername, string);
    SendClientMessageToAll(COLOR_ORANGE, string);
    printf("[News Reporter]%s: %s ))",sendername, string);
    }else{
    SendClientMessage(playerid,COLOR_TOMATO,"Du bist kein News Reporter");
    }
    return 1;
    }


    habs jetzt so gemacht, hab nur "params" durch cmdtext ausgetauscht weil er params irgendwie nich kennt dneke liegt am ocmd^^, und trotzdem wenn ich den befehl eingebe steht erst "[Newsreporter] Bob: /text Hallo" ich weiss nich warum.


    und wenn ich es mit ocmd mache wie du oben gepostet hast steht dort.


    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(5672) : warning 203: symbol is never used: "news"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    und es funktioniert auch nicht, unr nirgends in meinem Script taucht news schonmal auf hab ich schon geschaut, was könnt ich machen?


    LG
    Bob

  • Probier erstmal mit strcmp aus ;)

    if(strcmp(cmd,"/news",true)==0)
    {
    if(gTeam[playerid] == TEAM_COP)
    {
    new name1[MAX_PLAYER_NAME];
    new nachricht[128],string[128];
    GetPlayerName(playerid,name1,sizeof(name1));
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_TOMATO,"/news [TEXT]");
    format(string,sizeof(string),"[Newsreporter]%s:%s",name1,nachricht);
    SendClientMessageToAll(COLOR_ORANGE, string);
    return 1;
    }
    else{}
    return 1;
    }


    Achja merk dir,
    im OnPlayerCommandText Callback brauchste nie einen 256 Zahlen String.
    Mfg

  • C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2958) : error 017: undefined symbol "cmd"
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2965) : error 017: undefined symbol "tmp"
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2965) : error 017: undefined symbol "idx"
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2966) : error 017: undefined symbol "tmp"


    :/ ich werd noch verrückt^^ kannst du mir das ma schicken? damit ich das einfügen kann.


    LG
    Bob

  • Gut habs so


    if(!strcmp(strget(cmdtext,0),"/news",true)==0)
    {
    if(gTeam[playerid] == TEAM_COP)
    {
    new cmd[128], idx, tmp[128];
    new name1[MAX_PLAYER_NAME];
    new nachricht[128],string[128];
    GetPlayerName(playerid,name1,sizeof(name1));
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_TOMATO,"/news [TEXT]");
    format(string,sizeof(string),"[Newsreporter]%s:%s",name1,nachricht);
    SendClientMessageToAll(COLOR_ORANGE, string);
    return 1;
    }
    else{}
    return 1;
    }


    Nurnoch 1 Error und nen paar warnings:


    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2800) : warning 213: tag mismatch
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2808) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2804) : warning 204: symbol is assigned a value that is never used: "cmd"
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2804 -- 2815) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    wo sollte ich "cmd = strtok(cmdtext, idx);" hintun?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Gut habe die beiden befehle die du gepostet hast unter den anderen news aufgereiht.


    Befehl sieht wie folgt aus:


    if(!strcmp(strget(cmdtext,0),"/news",true)==0)
    {
    if(gTeam[playerid] == TEAM_COP)
    {
    new cmd[128], idx, tmp[128]; // hab ich nun gelöscht da oben eingefügt
    new name1[MAX_PLAYER_NAME];
    new nachricht[128],string[128];
    GetPlayerName(playerid,name1,sizeof(name1));
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_TOMATO,"/news [TEXT]");
    format(string,sizeof(string),"[Newsreporter]%s:%s",name1,nachricht);
    SendClientMessageToAll(COLOR_ORANGE, string);
    return 1;
    }
    else{}
    return 1;
    }


    und bekomme 2 Errors


    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(1394) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2802) : warning 213: tag mismatch
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2809) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Patrick\Desktop\San Andreas Server\gamemodes\Patricksreallife.pwn(2816) : warning 225: unreachable code


    LG
    BoB