GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: VaKoS_95 le 07 Février 2008, 21:01:02
-
Salut salut :D
J'ai un ptit problème.
Je vous donne le bout de script qui 'défaille' :
public OnPlayerText(playerid, text[])
{
new string[256];
new grouptalk[256];
new grouptalkid;
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
if (text[0] == '#')
{
if (GroupTalkers[playerid] != 0)
{
grouptalkid=GroupTalkers[playerid];
strmid(grouptalk,text,1,strlen(text));
for (new i=0;i<MAX_PLAYERS;i++)
{
if(GroupTalkers[i] == grouptalkid && IsPlayerConnected(i))
{
format(string, sizeof(string), "* (Team Discussion) %s: %s", playername,grouptalk);
SendClientMessage(i, COLOR_GROUPTALK, string);
return 0;
}
}
} else {
SendClientMessage(playerid,COLOR_SYSTEM_PW,"* # est utilisé pour les Team Discussion.");
}
}
return 0;
}
Donc quand on tape # Message, le message devrait être affiché seulement pour les participants de la TD.
Sauf que ça fait ça :
* (Team Discussion) Quelqu'un: Salut
Quelqu'un: # Salut
Comment faire pour ne pas afficher le second message (Quelqu'un: # Salut) ?
Je vous remercie d'avance.
++
-
public OnPlayerText(playerid, text[]){
new string[256];
new grouptalk[256];
new grouptalkid;
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
if (text[0] == '#')
{
if (GroupTalkers[playerid] != 0)
{
grouptalkid=GroupTalkers[playerid];
strmid(grouptalk,text,1,strlen(text));
for (new i=0;i<MAX_PLAYERS;i++)
{
if(GroupTalkers[i] == grouptalkid && IsPlayerConnected(i))
{
format(string, sizeof(string), "* (Team Discussion) %s: %s", playername,grouptalk);
SendClientMessage(i, COLOR_GROUPTALK, string);
return 0;
}
}
} else {
SendClientMessage(playerid,COLOR_SYSTEM_PW,"* # est utilisé pour les Team Discussion.");
}
return 0; /* Là ! */
}
return 1;
}
return 0 ça veut dire ne pas retourner...
-
Faudrais pas mettre un
if ( joueur dans une team ) = 1;
la commande
else if ( joueur dans une team ) = 0;
SendClientMessage (playerid, COLOR_RED, "Tu n'est pas dans cette team");
Je serai pas grandement t'aider plus...
-
il suffit juste d'utiliser un de mes codes et prendre exemple de l'admin chat du RAS ;)
Voici le code :D
SendMessageToTeam(team, color, text[]) {
for(new i = 0; i < MAX_PLAYERS; i ++) {
if(IsPlayerConnected(i)) {
team=GetPlayerTeam(i);
if(GetPlayerTeam(i) == team) {
SendClientMessage(i, color, text);
}
}
}
}
Avec quelques petites modifications tu peux faire un beau team chat avec ;)
++
R@f
-
Chalut.
J'ai pris ton bout de script.
Donc j'utilise gTeam vu que c'est un serveur de stunt.
Les teams sont pas des teams dm (Grove.. etc..) et ne se choisissent pas par class.
Ce sont les teams de stunt (comme [TB], [DW], [GSK]...).
Donc j'ai fais un truc, c'est une commande avec un mot de passe qui nous fait rentrer dans la team donc qui nous permet d'accéder au team discussion :
if(strcmp(cmdtext, "/motdepasse", true) == 0)
{
gTeam[playerid] = TEAM_TB;
SendClientMessage(playerid, COLOR_GREEN, "Correctement loggué sur le Team Discussion [TB].");
return 1;
}
Pour l'instant je vois pas d'erreur, ça compile pas de problème...
Pourtant IG, pas de message "Correctement loggué sur le Team Discussion [TB].
Comme si la commande n'existait pas quoi :/
Besoin d'aide ^_^
EDIT: C'est bon, j'ai fais un SetPlayerTeam.