GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Adam_Brown - 2013. Március 29. - 17:16:23

Cím: Csapatban levõ beszélgetés
Írta: Adam_Brown - 2013. Március 29. - 17:16:23
Sziasztok. Csinálok egy TDM szerót, és azt szeretném megcsinálni, hogy a csapatokon belül lehessen úgy beszélgetni, hogy az ellenség ne lássa mit ír.
Már ennyit írtam:
if(GetPlayerTeam(TEAM_GROOVE))
    {
    new string[150];
    new jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosnev, MAX_PLAYER_NAME);
format(string, sizeof(string), \"%s mondja: %s\", jatekosnev, text);
return 1;
    }

 
Aki megmondja megy a +
Cím: Csapatban levõ beszélgetés
Írta: TengeriMalac - 2013. Március 29. - 22:46:05
if(GetPlayerTeam(playerid) == TEAM_GROOVE)
Cím: Csapatban levõ beszélgetés
Írta: BackUP - 2013. Március 30. - 13:29:07
ez így el sem küldi.
Nagyon egyszerû a megoldás.
 
public SendGroove(color, string[])
{
              for(new i = 0; i < MAX_PLAYERS; i++) // Egyértelmû for ciklus
{
if(IsPlayerConnected(i)) // megnézzük csatlakozva van e a játékos
{
   if(GetPlayerTeam(i) == TEAM_GROOVE) // ugye itt megnézzük, hogy a csatlakozottak közül ki van a \'groove\' csapatban.
   {
      SendClientMessage(i, color, string); // Aki benne van, annak elküldjök az üzenetet.
   }
}
}

 
parancshoz példa:
 
CMD:csapat(playerid, params[])
{
             new uzenet[100];
             new str[70];
             new nev[40];
             if(GetPlayerTeam(playerid) != TEAM_GROOVE) return SendClientMessage(playerid, Piros, \"- Nem vagy a Groove csapat tagja!\");
             if(sscanf(params,\"s[100]\",uzenet)) return SendClientMessage(playerid, Piros, \"Használd így: /csapat <üzeneted>\");
             GetPlayerName(playerid,nev,sizeof(nev));
             format(str,sizeof(str),\"[Csapat]%s: %s\",nev,uzenet);
             SendGroove(Citrom, str); // Elküldjük a csapatnak az üzenetet.
             return 1;
}