Grade Fraktions Chat mit Rängen erstellt.

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
  • Guten Tag,


    Ich habe grade ein Fraktions Chat für die Grove Street mit Rängen erstellt.
    Als erstes habe ich sie oben #defined.



    #define fraktrang1 "Anfänger"
    #define fraktrang2 "Laufbursche"
    #define fraktrang3 "Autopolierer"
    #define fraktrang4 "Homie"
    #define fraktrang5 "Unterboss"
    #define fraktrang6 "Boss"


    Dann über ocmd:


    ocmd:f(playerid, params[])
    {
    new Text[250];
    if(!isPlayerInFrakt(playerid,2))return SendClientMessage(playerid,Grau,"Du bist kein Grove Street Member");
    if(sscanf(params, "s", Text))return SendClientMessage(playerid,Grau, "Nutze: /f [Text]");
    if(GetPVarInt(playerid,"Fraktionsrang") == 1)
    {
    format(Text, sizeof (Text), "*Anfänger %s: %s*", SpielerName(playerid), Text);
    }
    else if(GetPVarInt(playerid,"Fraktionsrang") == 2)
    {
    format(Text, sizeof (Text), "*Laufbursche %s: %s*", SpielerName(playerid), Text);
    }
    else if(GetPVarInt(playerid,"Fraktionsrang") == 3)
    {
    format(Text, sizeof (Text), "*Autopolierer %s: %s*", SpielerName(playerid), Text);
    }
    else if(GetPVarInt(playerid,"Fraktionsrang") == 4)
    {
    format(Text, sizeof (Text), "*Homie %s: %s*", SpielerName(playerid), Text);
    }
    else if(GetPVarInt(playerid,"Fraktionsrang") == 5)
    {
    format(Text, sizeof (Text), "*Unterboss %s: %s*", SpielerName(playerid), Text);
    }
    else if(GetPVarInt(playerid,"Fraktionsrang") == 6)
    {
    format(Text, sizeof (Text), "*Boss %s: %s*", SpielerName(playerid), Text);
    }
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if(GetPVarInt(playerid,"Fraktionsrang") == 1 || GetPVarInt(playerid,"Fraktionsrang") == 2 || GetPVarInt(playerid,"Fraktionsrang") == 3 || GetPVarInt(playerid,"Fraktionsrang") == 1 || GetPVarInt(playerid,"Fraktionsrang") == 4 || GetPVarInt(playerid,"Fraktionsrang") == 5 || GetPVarInt(playerid,"Fraktionsrang") == 6)
    {
    SendClientMessage(i, Blau, Text);
    }
    }
    return 1;
    }


    Dann kommen Warnings :s


    C:\Users\Alex\Desktop\Testserver\gamemodes\Selfmade.pwn(52) : warning 201: redefinition of constant/macro (symbol "fraktrang1")
    C:\Users\Alex\Desktop\Testserver\gamemodes\Selfmade.pwn(53) : warning 201: redefinition of constant/macro (symbol "fraktrang2")
    C:\Users\Alex\Desktop\Testserver\gamemodes\Selfmade.pwn(54) : warning 201: redefinition of constant/macro (symbol "fraktrang3")
    C:\Users\Alex\Desktop\Testserver\gamemodes\Selfmade.pwn(55) : warning 201: redefinition of constant/macro (symbol "fraktrang4")
    C:\Users\Alex\Desktop\Testserver\gamemodes\Selfmade.pwn(56) : warning 201: redefinition of constant/macro (symbol "fraktrang5")
    C:\Users\Alex\Desktop\Testserver\gamemodes\Selfmade.pwn(57) : warning 201: redefinition of constant/macro (symbol "fraktrang6")


    Warum?



    Gruß

  • Na und wenn ich keine Warnings haben will?!


    Gruß

  • Na das: #define fraktrang1 "Anfänger"
    #define fraktrang2 "Laufbursche"
    #define fraktrang3 "Autopolierer"
    #define fraktrang4 "Homie"
    #define fraktrang5 "Unterboss"
    #define fraktrang6 "Boss"

  • Aber meinen /d Chat bei Cops habe ich die auch #define und da gehts....

  • ja aber,


    Du benutzt das hier ja nicht
    #define fraktrang1 "Anfänger"
    #define fraktrang2 "Laufbursche"
    #define fraktrang3 "Autopolierer"
    #define fraktrang4 "Homie"
    #define fraktrang5 "Unterboss"
    #define fraktrang6 "Boss"


    Deswegen, mach das mal raus, und compille wieder,

    Stahlbau Azubi deswegen kaum Aktiv

  • Gut jetzt habe ich ein /f Chat via ocmd.


    Kann man noch mehr /f Chats via. ocmd machen für andere Gangs?


    Weil ocmd:f ja verwendet wird..


    Gruß

  • Beispiel wie du es machen kannst :


    ocmd:f(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_ROT,"/f [text]");
    format(text,sizeof(text),"%s %s: %s",GetPlayerRangName(playerid),SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(//Fraktionsabfrage
    {
    SendClientMessage(i,COLOR_F,text);
    }
    }
    }
    return 1;
    }


    stock GetPlayerRangName(playerid)
    {
    new rangname[64];
    if(//Fraktionsabfrage
    {
    switch(//Rank Abfrage)
    {
    case 0: {rangname="test rank6";}
    case 1: {rangname="test rank5";}
    case 2: {rangname="test rank4";}
    case 3: {rangname="test rank1";}
    case 4: {rangname="test rank";}
    case 5: {rangname="test rank2";}
    case 6: {rangname="chef";}
    }}
    return rangname;
    }


    System Verstanden ?

  • Wenn du was definiert hast musste es auch benutzen.
    In deinem Fall:



    //Oben
    #define gsfraktrang1 "Anfänger"
    #define gsfraktrang2 "Laufbursche"
    #define gsfraktrang3 "Autopolierer"
    #define gsfraktrang4 "Homie"
    #define gsfraktrang5 "Unterboss"
    #define gsfraktrang6 "Boss"


    //Musst die Ränge für jede Fraktion definieren.


    ocmd:f(playerid,params[])
    {
    new FRank[64];
    new text[128];
    if(!isPlayerInFrakt(playerid,1)))return SendClientMessage(playerid,rot,"Du bist kein Mitglied einer Gang!");//Überprüft ob der Spieler Mitglied einer Gang ist(Evtl. Abfrage ändern
    if(sscanf(params,"s",text))return SendClientMessage(playerid,rot,"Benutze: /f [Text]");
    switch(GetPVarInt(playerid,"Fraktion"))//Durch deine Abfrage ersetzen
    {
    case 1:
    {
    switch(GetPVarInt(playerid,"Rang"))//Durch deine Abfrage ersetzen
    {
    case 1:{FRank=gsfraktrang1;}
    case 2:{FRank=gsfraktrang1;}}
    case 3:{FRank=gsfraktrang1;}}
    case 4:{FRank=gsfraktrang1;}}
    case 5:{FRank=gsfraktrang1;}}
    case 6:{FRank=gsfraktrang1;}}
    }
    }
    format(text,sizeof(text),"** %s %s: %s **",FRank,SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion") == GetPVarInt(playerid,"Fraktion"))//Überprüft welche Spieler in der Fraktion sind wie derjeniger der /f eingibt(Evtl. Abfrage ersetzen)
    {
    SendClientMessage(i,dunkelblau,text);//Sendet die Nachricht an alle Spieler die in der Fraktion sind wie derjenige der /f eingegeben hat
    }
    }
    }
    return 1;
    }


    Ich hoffe das hilft dir :)

    Wissen gibt dir Macht, aber der Charakter verschafft dir Respekt und Anerkennung...
    Bruce Lee 1940 - 1973