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
-
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.
-
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
-
J'ai pas trop compris, pourrais-tu détailler un peut plus s'il-te-plait ?
-
il te donne le code je ne vois pas se que tu veut de plus ???
-
J'lui explique sur msn.
-
Et puis je lui est pas vraiment donné le code mais le moyen de transmettre le message au personne de la même faction ;)
-
Oui mais de toute facon il sait ce que c'est for ( boucle ) j'lui ai expliquer
-
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
-
Merci Cristab mais sa j'ai compris, c'est le reste que j'arrives pas a faire ...
-
euh qu'elle reste ?
-
pas le /r mais le SentClientMessage, choisir la couleur d'envoi, le "[Rang] [Pseudo]dit: [Phrase]"
je sait pas comment coder sa moi :x
-
il y a de super tuto
-
Avec un format nan?
-
J'ai pas trouver de tutoriel pour la radio ...
-
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
-
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++
-
voila pour toi http://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire (http://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire)
-
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