Frakchat Hilfe

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
  • Nabend Community!
    Ich bin gerade dabei ein Frakchat zu erstellen.
    Ich bräuchte nur ein kleinen Anstupser..
    Und zwar:


    Ich möchte das wenn man /pdchat eingibt das dann die Spielervariable "new PDChat[MAX_PLAYERS]; " aktiviert wird.
    So soll es nicht aussehen /pdchat [Text], sondern man soll dann intern schreiben können ohne ein Befehl einzugeben.


    Ja ich weiß, bisschen komisch erklärt aber hoffe jedoch ihr habs verstanden was ich möchte. ^^
    Wie wäre das Möglich.
    Ich zitiere: Möchte nur ein Anstupser.

  • Er meint soweit ich es verstanden habe.
    Man gibt beispielsweise /pdchat ein dann kann der Spieler im Normalen Chat mit seiner Fraktion schreiben.
    gibt er wieder /pdchat ein deaktiviert er das ganze, Richtig?

  • Er meint soweit ich es verstanden habe.
    Man gibt beispielsweise /pdchat ein dann kann der Spieler im Normalen Chat mit seiner Fraktion schreiben.
    gibt er wieder /pdchat ein deaktiviert er das ganze, Richtig?

    Richtig.

  • Du musst eigentlich nur bei "OnPlayerText" abfragen ob deine Variable halt = 1 ist, und dann mit einem String das zu jedem der
    Fraktion senden.(das halt mit Schleife)

    Zitat von Elon Musk

    If you're trying to create a company, it's like baking a cake. You have to have all the ingredients in the right proportion.

  • Würde das so klappen?
    Habe niemanden zum Testen obs fehlerfrei klappt darum frage ich nochmal nach.



    ocmd:pdchat(playerid,params[])
    {
    if(sInfo[playerid][Fraktion] == 1)
    {
    if(PDChat[playerid] == 1)
    {
    PDChat[playerid]=0;
    return 1;
    }
    else if(PDChat[playerid] == 0)
    {
    PDChat[playerid]=1;
    return 1;
    }
    }
    return 1;
    }




    public OnPlayerText(playerid, text[])
    {
    if(PDChat[playerid] == 1)
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(sInfo[playerid][Fraktion] == 1)
    {
    new string[200],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"%s funkt: %s",name,text);
    scm(i,c_pd,string);
    return 1;
    }
    }
    }
    return 1;
    }


    Klappt alles, außer das der "Normale" Chat angezeigt wird.
    also:


    encrusted. funkt: Hey
    encrusted.: Hey

  • if(sInfo[playerid][Fraktion] == 1)
    {
    new string[200],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"%s funkt: %s",name,text);
    scm(i,c_pd,string);
    return 1;
    }
    zu
    if(sInfo[i][Fraktion] == 1) //hier i
    {
    new string[200],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"%s funkt: %s",name,text);
    scm(i,c_pd,string);
    }
    return 0;


    Die null sagt hier, dass keine Chat Nachricht gesendet werden soll.
    Außerdem muss sie aus der schleife raus, sonst zeigt es deinen funkspruch nur für eine Person an.


    Und in der schleife musst du natürlich abfragen, ob i in der Fraktion ist, damit er die Nachricht bekommt, sonst bekommt sie jeder, da playerid ja zwangsläufig drinnen ist.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()