F Chat Farbig

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 Community,
    ich habe ein /f Chat System drinne und ich möchte das jede Fraktion ihre eigene Farbe hat.
    Damit meine ich, dass wenn z.B ein Ballas Member /f Bla bla macht, dass dann sein Name in pinkt kommt.
    Oder das gleiche bei Vagos, dass da dann sein Name gelb ist.



    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    format(stringbert,sizeof(stringbert),"(( Team Chat: {CCB596}%s{FFFFFF}: %s ))",SpielerName(playerid),stringbert2);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    SendClientMessage(i,WEISS,stringbert);
    }
    return 1;
    }


    Meine Klassenabfrage lautet:

    switch(classid)
    {
    case 0,1,2:klasse[playerid]=1; //Ballas
    case 3,4,5:klasse[playerid]=2; //GSF
    case 6,7,8:klasse[playerid]=3; // LSV
    case 9,10,11:klasse[playerid]=4; //Russische Mafia
    case 12,13,14:klasse[playerid]=5; //Aztecas
    }


    mfG,
    Ien_Levin

    :) SWAGETTI & YOLONAISE!

  • if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    SendClientMessage(i,WEISS,stringbert);


    davor machste überall für jede Fraktion eine Abfrage if(klasse[playerid]!=klasse[i]) blabla..


    und unter dein Code


    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    SendClientMessage(i,WEISS,stringbert);


    bei SendClientMessage änderst du bei jeder if(klasse[playerid]!=klasse[i]) Abfrage die Farbe

    <buqja>: brauche 3 mercs fürn 3o3

  • ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    format(stringbert,sizeof(stringbert),"(( Team Chat: {CCB596}%s{FFFFFF}: %s ))",SpielerName(playerid),stringbert2);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    if(klasse[playerid]==1) { SendClientMessage(i,FarbefurKlasse1,stringbert); }
    if(klasse[playerid]==2) { SendClientMessage(i,FarbefurKlasse2,stringbert); }
    // ..
    }
    return 1;
    }
    /Pawncode

  • Okay hat funktioniert, nur ich möchte das nur der Name in der Farbe wird.
    Wie kann ich das machen?

    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    format(stringbert,sizeof(stringbert),"(( Team Chat %s: %s ))",SpielerName(playerid),stringbert2);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    if(klasse[playerid]==1) { SendClientMessage(i,PINK,stringbert); }
    if(klasse[playerid]==2) { SendClientMessage(i,GRUEN,stringbert); }
    if(klasse[playerid]==3) { SendClientMessage(i,GELB,stringbert); }
    if(klasse[playerid]==4) { SendClientMessage(i,GRAU,stringbert); }
    if(klasse[playerid]==5) { SendClientMessage(i,HELLBLAU,stringbert); }
    }
    return 1;
    }

    :) SWAGETTI & YOLONAISE!

  • Sollte funktionieren
    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    if(klasse[playerid]==1) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF1400}%s{FFFFFF}: %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessage(i,PINK,stringbert);
    }
    return 1;
    }

  • Wenn ich das so mache:

    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    if(klasse[playerid]==1) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessage(i,PINK,stringbert);
    if(klasse[playerid]==2) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {00AD68}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessage(i,PINK,stringbert);
    if(klasse[playerid]==3) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FFFF00}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessage(i,PINK,stringbert);
    if(klasse[playerid]==4) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {CCB596}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessage(i,PINK,stringbert);
    if(klasse[playerid]==5) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {0082FF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessage(i,PINK,stringbert);
    }
    return 1;
    }


    Und InGame eitwas in /f Chat rein schreibe, schickt er mir den Text 4x hintereinander.

    :) SWAGETTI & YOLONAISE!

  • Versuch es mal so
    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    if(!IsPlayerConnected(i))continue;
    if(klasse[playerid]!=klasse[i])continue;
    if(klasse[playerid]==1) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==2) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {00AD68}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==3) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FFFF00}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==4) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {CCB596}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==5) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {0082FF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    return 1;
    }

  • Bekomme diese Errors.

    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3104) : error 017: undefined symbol "i"
    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3104) : error 024: "break" or "continue" is out of context
    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3105) : error 017: undefined symbol "i"
    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3105) : error 024: "break" or "continue" is out of context
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    :) SWAGETTI & YOLONAISE!

  • Sorry, übersehen
    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    if(klasse[playerid]==1) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==2) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {00AD68}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==3) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FFFF00}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==4) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {CCB596}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    if(klasse[playerid]==5) { format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {0082FF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2); }
    SendClientMessageToAll(PINK,stringbert);
    return 1;
    }

  • Du brauchst nur einmal Format string und fragst ab welche frak er ist und in der abfrage kommt dann SendClientMessageToAll(FARBE,string)
    Also

    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==1) { SendClientMessageToAll(PINK,stringbert); }
    if(klasse[playerid]==2) { SendClientMessageToAll(FARBE,stringbert); }


    So müsste das gehen

    Mit freundlichen Grüßen
    Skillz

  • Mach es doch selber, habe es dir doch ausfürlich erklärt.
    Du erstellst das format , mit inhalt und %s für text (siehe code im post) und dann fragst du jede klasse ab und in der abfrage Sendest du die message...
    So wie in meinem Post beschrieben...


    Selbst ist der Mann ;)

    Mit freundlichen Grüßen
    Skillz

  • Habs jetzt so gemacht:

    ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==1) { SendClientMessageToAll(PINK,stringbert); }
    if(klasse[playerid]==1) { SendClientMessageToAll(PINK,stringbert); }
    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==2) { SendClientMessageToAll(GRUEN,stringbert); }
    if(klasse[playerid]==2) { SendClientMessageToAll(GRUEN,stringbert); }
    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==3) { SendClientMessageToAll(GELB,stringbert); }
    if(klasse[playerid]==3) { SendClientMessageToAll(GELB,stringbert); }
    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==4) { SendClientMessageToAll(GRAU,stringbert); }
    if(klasse[playerid]==4) { SendClientMessageToAll(GRAU,stringbert); }
    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==5) { SendClientMessageToAll(HELLBLAU,stringbert); }
    if(klasse[playerid]==5) { SendClientMessageToAll(HELLBLAU,stringbert); }
    return 1;
    }


    Funkt alles, nur es postet den Text 2x also so:


    (( Team Chat Ien_Levin: Hallo ))
    (( Team Chat Ien_Levin: Hallo ))

    :) SWAGETTI & YOLONAISE!


  • ocmd:f(playerid,params[])
    {
    if(sscanf(params,"s",stringbert2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Benutze /f [Text]");
    format(stringbert,sizeof(stringbert),"{FFFFFF}(( Team Chat {FF24AF}%s:{FFFFFF} %s ))",SpielerName(playerid),stringbert2);if(klasse[playerid]==1) { SendClientMessageToAll(PINK,stringbert); }
    if(klasse[playerid]==1) { SendClientMessageToAll(PINK,stringbert); }
    if(klasse[playerid]==2) { SendClientMessageToAll(GRUEN,stringbert); }
    if(klasse[playerid]==3) { SendClientMessageToAll(GELB,stringbert); }
    if(klasse[playerid]==4) { SendClientMessageToAll(GRAU,stringbert); }
    if(klasse[playerid]==5) { SendClientMessageToAll(HELLBLAU,stringbert); }
    return 1;
    }


    Wenn ich das so abposte, kommt immer die Farbe Pink auch wenn ich GSF nehme :S

    :) SWAGETTI & YOLONAISE!