• 07 Mai 2025, 08:43:19


Auteur Sujet: SendClientMessageToAll  (Lu 2146 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne triton

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
SendClientMessageToAll
« le: 22 Janvier 2008, 13:39:33 »
Bonjour, j'aimerais savoir s'il est possible de personnaliser les SendClientMessageToAll selon une variable.C'est à dire que tous les joueurs ayant la variable == 0 recevraient par exemple salut et ceux ayant la variable == 1  recevraient hello.Jusqu'à aujourd'hui je n'utilisais que des SendClientMessage, donc c'était facile en fesant
        if (variable [playerid]== 0){
SendClientMessage(playerid,COLOR_BLUE, "salut");}
if (variable [playerid]== 1){
SendClientMessage(playerid,COLOR_BLUE, "hello");}
mais avec les SendClientMessageToAll je ne sais plus.Merci

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #1 le: 22 Janvier 2008, 13:48:12 »
Je ne comprend pas trés bien le problème que tu as ! ( si s'en est un )

Possible que tu réexlique ?

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne triton

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #2 le: 22 Janvier 2008, 14:07:13 »
Je voudrais tout simplement qu'en envoyant un SendClientMessageToAll les joueurs ayant la variable == 0 recoivent bonjour et ceux ayant la variable ==1 hello

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #3 le: 22 Janvier 2008, 14:15:01 »
Mais comment tu veut definir qu'un joueur est 1 ou 0 ??

Haa oui j'ai compris !

    if (Variable[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR, "** Bonjour **");
    return 1;
    }

    if (Variable[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR, "** hello **");
    return 1;
    }

Comme ca !

NV.

« Modifié: 22 Janvier 2008, 14:18:33 par NatiVe »


Tu vois avant? Bah j'étais là encore avant!

Hors ligne triton

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #4 le: 22 Janvier 2008, 14:24:46 »
Ce sont eux au départ qui choisissent leur langue.S'il tapent /english la variable prend la valeur 1.C'est pour cela que quand un joueur est recherché un message sera envoyé en disant "native est recherché" avec la variable == 0 ou "native is wanted" avec la variable == 1.

Edit : Oui mais la ce n'est que pour un joueur alors que moi je veux écrire le message pour tout le monde avec un SendClientMessageToAll.
« Modifié: 22 Janvier 2008, 14:27:51 par triton »

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #5 le: 22 Janvier 2008, 14:27:06 »
A ba sa change pas, tu met SendClientMessageToAll a la place de SendClientMessage ! tout simplement

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne triton

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #6 le: 22 Janvier 2008, 14:32:41 »
Mais le message sera envoyé à tout le monde selon la langue tu playerid.Je veux quil soit envoyé à tous les joueur et selon leur langue.

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #7 le: 22 Janvier 2008, 14:59:58 »
Si tu veut faire ca a toute les phrase que diras le player ce n'est pas possible !

Pour un message a la connection je vais esseyer de chercher car je n'est encore jamais fait ca !

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #8 le: 22 Janvier 2008, 15:43:18 »
c'est très simple, d'abort tu mets
Code: (cpp) [Sélectionner]
new Variable [MAX_PLAYERS]; en haut de ton script en dessus de main

Après dans OnPlayerConnect tu mets le language par défaut que tu veux avec ta variable, donc sa donne sa
Code: (cpp) [Sélectionner]
Variable[playerid] = 0; //le 0 c'est pour la langue française par exemple
Ensuite tu fais la commande pour sélectioner le language, voila un exemple :
Code: (cpp) [Sélectionner]
if(strcmp(cmdtext,"/english", true)==0){
Variable[playerid] = 1; //le 1 c'est pour la langue anglaise
return 1;
}
Tu fais pareil pour le français mais en changeant quelques trucs ;)

Pour la fin tu vas utiliser tes variables, par exemple quand je joueur entre dans un véhicule
Code: (cpp) [Sélectionner]
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if (Variable[playerid] == 0)
{
SendClientMessage(playerid, COLOR, "** Bonjour **");
return 1;
}
else if (Variable[playerid] == 1)
{
SendClientMessage(playerid, COLOR, "** hello **");
return 1;
}
return 1;
}
Je sais pas si les codes sont faux, je ne les ai pas testés, donc dit moi si il y a des erreurs ;)
++
R@f

Hors ligne triton

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #9 le: 22 Janvier 2008, 16:14:07 »
Merci et comment je fais pour envoyer un SendClientMessageToAll different pour les 2 variables?
Si c'était pour un seul joueur ça ferait ça
        if (variable [playerid]== 0){
SendClientMessage(COLOR_GREEN, "bienvenue");}
if (variable [playerid]== 1){
SendClientMessage(COLOR_GREEN, "welcome");}
mais pour plusieurs ...
        if (variable [...]== 0){
SendClientMessageToAll(COLOR_GREEN, "toto est recherché");}
if (variable [...]== 1){
SendClientMessageToAll(COLOR_GREEN, "toto is wanted");}
Merci
« Modifié: 22 Janvier 2008, 16:18:15 par triton »

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #10 le: 22 Janvier 2008, 16:39:55 »
j'ai enfin compris ce que tu voulais  :D
Tu veux faire un SendClientMessage pour le joueur ayant la variable correspondante à celle qu'il a choisie
Voila la soution :
Code: (cpp) [Sélectionner]
SendClientMessageToEnglishPlayers(color, text[]) {
    for(new i = 0; i < MAX_PLAYERS; i ++) {
        if(IsPlayerConnected(i)) {
                if      (Variable(i) == 1) { //1 c'est pour l'anglais ;)
                SendClientMessage(i, color, text);
            }
        }
    }
}
tu fais de même pour pour la variable 0  ;)
++
R@f

Hors ligne triton

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : SendClientMessageToAll
« Réponse #11 le: 22 Janvier 2008, 21:46:20 »
Merci  :)