/f(raktion)´s Chat.. Problem -.-

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
  • ocmd:f(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Grün,"/f [Chat-Text]");
    format(text,sizeof(text),"[Fraktions Chat] %s: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(playerid,2))
    {
    SendClientMessage(i,Lila,text);
    }
    if(isPlayerInFrakt(playerid,1))
    {
    SendClientMessage(i,Blau,text);
    }
    if(isPlayerInFrakt(playerid,3))
    {
    SendClientMessage(i,Grün,text);
    }
    }
    }
    return 1;
    }



    Fehler:
    Zivilisten (Fraktion 0) können alle Chats mit lesen... X(
    Warum und wie kann ich dies beheben?


    MfG HellFire

  • machs doch besser so





    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,hier die var wo fraktionsid der playerid abgespeichert wird oder das pv kp womit du speicherst ?!))
    {
    SendClientMessage(i,Lila,text);
    }
    }
    }




    ist viel simpler

  • if(isPlayerInFrakt(i,GetPVarInt(i,"Fraktion") == 1))
    {
    SendClientMessage(i,Blau,text);
    }


    meinst so?

    nein !


    so

    ocmd:f(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Grün,"/f [Chat-Text]");
    format(text,sizeof(text),"[Fraktions Chat] %s: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,Blau,text);
    }
    }
    }
    return 1;
    }

  • ja mit der for schleife sehen alle spieler die connected sind die in der fraktion sind wo du bist deine geschriebene message, wo liegt das prob ?!

  • Wenn ich in Fraktion 1 bin , sehen alle dann nur den Fraktion 1 Chat?
    Wenn ich in Fraktion 2 bin, sehen alle dann nur den Fraktion 2 Chat?
    Wenn ich in Fraktion 0 bin (Zivilist), die sollen dann keinen chat benutzen können.


    Aber wenn das so ist, wär ic hdir sehr dankbar :) // habs noch nicht getestet

  • nur die in deiner fraktion sind sehen die message die du geschrieben hast @ du musst am anfang des befehls abfragen wenn er in keine frakt ist das dort kommt du bist in keiner fraktion :D





    hier:


    if(isPlayerInFrakt(playerid,0))return SendClientMessage(playerid,DEINEFARBE,"in keiner frakt o.O");

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Die Sache von Fernandez funktioniert an für sich schon, fehlt nur ein kleiner Teil:

    ocmd:f(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Grün,"/f [Chat-Text]");
    format(text,sizeof(text),"[Fraktions Chat] %s: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(playerid,"Fraktion")==GetPVarInt(i,"Fraktion"))//Der Spieler wird wohl immer in seiner eigenen Fraktion sein, also Fragen wir ab, ob er in derselben ist, wie der Sender der Nachricht.
    {
    SendClientMessage(i,Blau,text);
    }
    }
    }
    return 1;
    }


    Ich weiß halt nicht, wie eure IsPlayerInFraktion - Abfrage definiert ist.
    So könnte es klappen, muss aber nicht.
    EDIT: Ähm wir senden zweimal den TEXT ?!?
    Schaut euch nochmal die oberen Zeilen an, dann findet ihr auch den Fehler.


    http://wiki.sa-mp.com/wiki/OnPlayerPrivmsg
    Wiki hilft weiter ;)


    (also der code stimmt jetzt wahrscheinlich von mir nicht wirklich, wie bereits im vorfeld schon erwähnt.)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • was du dir da fabriziert hast habe ich keine ahnung, es muss funken -.- vill. falscher pvar name ?




    EDIT: FACE das das gleich wie bei mir mit der abfrage nur umgedreht :D

  • Ich hatte halt den Fehler in der IsPlayerInFrak Funktion vermutet ;)
    Vermute ich nebenbei immernoch.
    Außerdem sieht das hier komisch aus:
    format(text,sizeof(text),"[Fraktions Chat] %s: %s",SpielerName(playerid),text);
    und das :
    SendClientMessage(i,Blau,text);


    Was bemerkt? :D



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • haha yop er :D


    mach oben im cmd das


    new string[128];



    format(string,sizeof(string),"[Fraktions Chat] %s: %s",SpielerName(playerid),text);



    und in der schliefe


    SendClientMessage(i,Blau,string);




    habe ich selbst nicht drauf geachtet :D

  • ja dagehört text hin @ nein nicht zu string