GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: dydjyz le 07 Juillet 2010, 02:13:16

Titre: Faire une Radio (/r)
Posté par: dydjyz le 07 Juillet 2010, 02:13:16
Bonjour,

je me suis lancer dans la creation de mon gamemode RP, qui avence pas mal, mais j'aurais besoin de votre aide pour faireu ne radio pour la faction 1
stats[playerid][Faction] == 1;

Je sait pas dutout comment m'y prendre et sa m'arrengerez que vous m'éclairiez.
Titre: Re : Faire une Radio (/r)
Posté par: ghm94 le 07 Juillet 2010, 03:17:39
En gros tu dois faire une commande qui prend comme paramètre un texte et qui le retransmet à tous les personnes de la même faction :
for(i=0; i<MAX_PLAYERS; i++)
{
    if(stats[i][Faction] == 1)
    {
        SendClientMessage();
    }
}

En gros c'est sa, désoler de pas donner plus de détails mais sa fait longtemps que j'ai pas toucher au Pawn faut que je m'y remette d'ailleurs  :D
Titre: Re : Faire une Radio (/r)
Posté par: dydjyz le 07 Juillet 2010, 09:58:13
J'ai pas trop compris, pourrais-tu détailler un peut plus s'il-te-plait ?
Titre: Re : Faire une Radio (/r)
Posté par: Mr_C30 le 07 Juillet 2010, 13:45:59
il te donne le code je ne vois pas se que tu veut  de plus  ???
Titre: Re : Faire une Radio (/r)
Posté par: chneubeul le 07 Juillet 2010, 14:15:36
J'lui explique sur msn.
Titre: Re : Faire une Radio (/r)
Posté par: ghm94 le 07 Juillet 2010, 16:49:15
Et puis je lui est pas vraiment donné le code mais le moyen de transmettre le message au personne de la même faction ;)
Titre: Re : Faire une Radio (/r)
Posté par: chneubeul le 07 Juillet 2010, 16:57:29
Oui mais de toute facon il sait ce que c'est for ( boucle ) j'lui ai expliquer
Titre: Re : Faire une Radio (/r)
Posté par: cristab le 07 Juillet 2010, 19:25:42
par contre il y a un truc qui m'enerve depuis quelque jour je voit souvent ceci

resolut par msn


soit vous aider via le forum soit faites pas de demande d'aide car l'erreure que vous avez pourrais servire a d'autre

Merci


for(new i=0; i<MAX_PLAYERS; i++)
{
    if(stats[i][Faction] == 1)
    {
        SendClientMessage();
    }
}
on lance une boucle

ou i au depart a une valeur de 0 que l'on augmente jusqu'a MAX_PLAYERS soit 500 donc au final i auras la valeur 500

si stats[Faction] on peu voir qu'il va le faire a tout le serveur meme les slot inoccuper donc la le mieux est de verifier si les personne sont connecter

for(new i=0; i<MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i))
    if(stats[i][Faction] == 1)
    {
        SendClientMessage();
    }
}

donc la si les joueurs connecté sont dans la faction 1 on envoie le SendClientMessage
Titre: Re : Faire une Radio (/r)
Posté par: dydjyz le 07 Juillet 2010, 22:09:15
Merci Cristab mais sa j'ai compris, c'est le reste que j'arrives pas a faire ...
Titre: Re : Faire une Radio (/r)
Posté par: cristab le 07 Juillet 2010, 22:11:38
euh qu'elle reste ?
Titre: Re : Faire une Radio (/r)
Posté par: dydjyz le 07 Juillet 2010, 22:20:31
pas le /r mais le SentClientMessage, choisir la couleur d'envoi, le "[Rang] [Pseudo]dit: [Phrase]"

je sait pas comment coder sa moi :x
Titre: Re : Faire une Radio (/r)
Posté par: cristab le 07 Juillet 2010, 22:23:00
il y a de super tuto
Titre: Re : Faire une Radio (/r)
Posté par: MK le 07 Juillet 2010, 22:23:38
Avec un format nan?
Titre: Re : Faire une Radio (/r)
Posté par: dydjyz le 07 Juillet 2010, 22:25:34
J'ai pas trouver de tutoriel pour la radio ...
Titre: Re : Faire une Radio (/r)
Posté par: cristab le 07 Juillet 2010, 22:29:59
pas forcement sur la radio met sur les commandes sur le strtok de Sim aussi prendre un exemple un peu partout est jouer avec tout sa
Titre: Re : Faire une Radio (/r)
Posté par: S!m le 08 Juillet 2010, 01:30:10
Salut,


comme Cristab le dit si bien, il existe plein de bout de codes utilisant le format (car c'est la fonction que tu doit utiliser), juste en regardant dans le topic codes/scripts utiles (http://www.gtaonline.fr/forums/index.php/topic,2149.0.html) tu devrais en trouver plusieurs.

Sinon ce que tu dois savoir, c'est que pour composer une phrase ainsi comportant un ou des élément(s) indéterminé(s) au moment de la compilation (comme par exemple, le nom d'un joueur, le texte qu'il a écrit, le nom du niveau d'un joueur (pour les RP), ...), il faut stocker la phrase dans une chaine (variable du type tableau d'une dimension).
Ensuite, il faut récupérer les éléments indéterminés et les insérer dans la chaine. Pour récupérer les éléments indéterminés, la méthode dépend de l'élément. Par contre, en ce qui concerne l'insertion dans la chaine, tu doit utiliser la fonction format.

Qu'es-ce qu'un format?

Attention, pas un format, mais bien la fonction format (eh oui :happy). La fonction format permet d'insérer des éléments qu'on lui passe en paramètre dans une chaine elle aussi passée en paramètre.

Petit exemple:
new chaine[128], name[MAX_PLAYER_NAME];
GetPlayerName(0, name, MAX_PLAYER_NAME);
format(chaine, sizeof(chaine), "Ton texte dans lequel tu insère des trucs (Le joueur %s n'a aucun lien avec cette histoire).", name);

Dans cet exemple, on commence par déclarer les chaines dont on a besoin pour récupérer le nom du joueur ayant l'ID 0 et la chaine dans laquelle le texte terminé (formaté si on peut dire...) sera sauvegardé. Par la suite, on récupère le nom du joueur avec la fonction GetPlayerName.
Et finalement, on insère le nom du joueur dans la chaine en question, le nom du joueur remplacera le %s dans le texte.

à savoir que:

 %s pour un texte
 %d, %i pour un entier
 %f pour un nombre à virgule
 %b pour un nombre binaire
 %x pour un nombre en hexadécimal

bonne chance avec ta commande

++Sim++
Titre: Re : Faire une Radio (/r)
Posté par: cristab le 08 Juillet 2010, 13:24:39
voila pour toi http://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire (http://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire)
Titre: Re : Re : Faire une Radio (/r)
Posté par: Ssk le 08 Juillet 2010, 20:08:17
Qu'est-ce qu'un nombre binaire s'il te plait sim ?

Le binaire, c'est un système de chiffre à base 2, nous on utilise un système à base 10

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ( Base 10 )
0, 1 ( Base 2 (Binaire) )
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ( Base 16 (Hexadécimal) )

Donc le binaire c'est soit 1 soit 0