/say Command mit Verschiedenen ausgaben

  • /say Command mit Verschiedenen ausgaben

    Hallo Community,

    ich habe mir ein /say Command Gebastelt der erst wie folgt Lautete:

    [pwn]if(strcmp(cmdtext,"/say",true,4)==0) {
    if(GetPlayerScore(playerid) >= 3) {
    if(!strlen(cmdtext[4])) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /say Text");
    new s[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"Admin %s: %s",name,cmdtext[4]);
    SendClientMessageToAll(COLOR_LIGHTBLUE,s); }
    else { SendClientMessage(playerid,COLOR_RED,"Nur für Admins"); }
    return 1;
    }[/pwn]

    So funktioniert das aucc alles. (Mein admin system geht nach score)

    So nun habe ich aber noch die Admin Gruppe Supporter und Helferlein eingefühgt.

    Allso Sprich Score: 3 = Admin Score: 2 = Supporter Score 1 = Helferlein

    So nun wollte ich den /say befehl so basteln das beim Admin Admin: "text" steht und beim Supporter Supporter: "Text" steht

    Und wollte das ganze so umsetzen

    [pwn]if(strcmp(cmdtext,"/say",true,4)==0)
    {
    case 0: {
    if(GetPlayerScore(playerid) >= 3)
    if(!strlen(cmdtext[4])) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /say Text");
    new s[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"Admin %s: %s",name,cmdtext[4]);
    SendClientMessageToAll(COLOR_LIGHTBLUE,s);
    return 1;
    }
    case 1: {
    if(GetPlayerScore(playerid) >= 2)
    if(!strlen(cmdtext[4])) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /say Text");
    new s[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"Supporter %s: %s",name,cmdtext[4]);
    SendClientMessageToAll(COLOR_LIGHTBLUE,s);
    return 1;
    }
    case 2: {
    if(GetPlayerScore(playerid) >= 1)
    if(!strlen(cmdtext[4])) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /say Text");
    new s[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"Helferlein %s: %s",name,cmdtext[4]);
    SendClientMessageToAll(COLOR_LIGHTBLUE,s);
    return 1;
    }
    }[/pwn]


    Doch nun bekomme ich diese errors
    [pwn]D:\Scripting\gamemodes\OWN.pwn(8944) : error 014: invalid statement; not in switch
    D:\Scripting\gamemodes\OWN.pwn(8944) : warning 215: expression has no effect
    D:\Scripting\gamemodes\OWN.pwn(8944) : error 001: expected token: ";", but found ":"
    D:\Scripting\gamemodes\OWN.pwn(8944) : error 029: invalid expression, assumed zero
    D:\Scripting\gamemodes\OWN.pwn(8944) : fatal error 107: too many error messages on one line
    [/pwn]

    Die zeile wo die errors kommen ist die zeile von case 0:



    Wäre Nett wen ihr mir helfen könntet
  • ^Mach doch einfach

    [pwn]ocmd:say(playerid,params[])
    {
    new text,pname[MAX_PLAYER_NAME],str[128];
    GetPlayerName(playerid,pname,sizeof(pname));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE,"Du musst /say [Text] eingeben");
    if(GetPlayerScore(playerid) == 0)return SendClientMessage(playerid,FARBE,"Du darfst diesen Befehl nicht nutzen.");
    if(GetPlayerScore(playerid) == 1)
    {
    format(str,sizeof(str),"Helferlein %s: %s",pname,text);
    }
    else if(GetPlayerScore(playerid) == 2)
    {
    format(str,sizeof(str),"Supporter %s: %s",pname,text);
    }
    else if(GetPlayerScore(playerid) == 3)
    {
    format(str,sizeof(str),"Admin %s: %s",pname,text);
    }
    SendClientMessageToAll(FARBE, str);
    return 1;
    }[/pwn]
    Ich hafte nicht für fehler habe es hier im Forum Quellcode gechrieben
  • Hey ho, Ohne case wäre es mir Lieber. ungerfähr so wie du das hast blood

    Nur bekomme ich
    [pwn]warning 219: local variable "str" shadows a variable at a preceding level[/pwn]

    Doch ist die Vriable garnicht 2 mal Definiert ?!


    Und.... naja wn ichd en befehl eingebe komme ich bis
    Du musst /say [Text] eingeben

    Alles was danach kommt ge nicht sprci bei /say kommt "Du musst /say [Text] eingeben"


    //edit es geht... ;D habs abgeändert ^^ Vielen Dank @ ALL

    und bei /say "text" kommt das er den Command net kennt!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Scripter-oNE ()