[Hilfe] Regierungsnachricht

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
    ich hab ein Prob


    #define SFPD 1
    #define Cobra 2
    #define ARMY 5


    dcmd(r, 1,cmdtext);


    dcmd_r(playerid,params[])
    {
    new text[256];
    if(sscanf(params, "s",text))
    {
    return SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /rn [Text]");
    }
    if(gTeam[playerid] == SFPD || gTeam[playerid] == Cobra || gTeam[playerid] == ARMY)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du gehörst nicht der Regierung an!");
    }
    else
    {
    SendClientMessageToAll(COLOR_GREEN, "|-_-|Regierungsnachricht|-_-|");
    new name[133];
    new string[156];
    GetPlayerName(playerid,name,sizeof name);
    format(string,sizeof string,"%s: %s",name,text);
    SendClientMessageToAll(COLOR_GREEN,string);
    }
    return 1;
    }


    Und jetzt das Prob


    Wenn ich SFPD, Cobra oder Army bin steht auch du gehörst nicht den Staat an
    und bei jedem anderen auch!

  • if(gTeam[playerid] == SFPD || gTeam[playerid] == Cobra || gTeam[playerid] == ARMY)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du gehörst nicht der Regierung an!");
    }
    if(... wenn der Spieler SFPD, Cobra Army ist: return SendClientMessage(playerid,COLOR_RED,"Du gehörst nicht der Regierung an!");DAs ist der Fehler, mach einfach:
     if(gTeam[playerid] != SFPD || gTeam[playerid] != Cobra || gTeam[playerid]!= ARMY)
    also == zu != (ist nicht) So solltes lappen

    Einmal editiert, zuletzt von Bendley ()

  • auch wenn das vllt nichts bringt, aber ich habe bei mehreren teams in einer if abfrage nicht:


    if(gTeam[playerid] == SFPD || gTeam[playerid] == Cobra || gTeam[playerid] == ARMY)


    sondern:


    if((gTeam[playerid] == SFPD) || (gTeam[playerid] == Cobra) || gTeam[playerid] == ARMY))


    vllt ist das auch der fehler


    außerdem haste dcmd(r,1,cmdtext);


    und auch
    dcmd_r aber:


    return SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /rn [Text]");


  • [..]
    DAs ist der Fehler, mach einfach:
    if(gTeam[playerid] != SFPD || gTeam[playerid] != Cobra || gTeam[playerid]!= ARMY)
    also == zu != (ist nicht) So solltes lappen

    Das ist aber auch fail xD.


    Wenn er NICHT im SFPD ist ODER wenn er NICHT Cobra ist ODER wenn er NICHT in der Army ist.


    D.h. man muss in allen 3 sein..^^


    dcmd_r(playerid,params[])
    {
    new text[256];
    if(sscanf(params, "s",text))
    {
    return SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /rn [Text]");
    }
    if(gTeam[playerid] == SFPD || gTeam[playerid] == Cobra || gTeam[playerid] == ARMY)
    {
    SendClientMessageToAll(COLOR_GREEN, "|-_-|Regierungsnachricht|-_-|");
    new name[133];
    new string[156];
    GetPlayerName(playerid,name,sizeof name);
    format(string,sizeof string,"%s: %s",name,text);
    SendClientMessageToAll(COLOR_GREEN,string);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_GREEN,"...");
    }
    return 1;
    }


    So schon versucht?