• 09 Juin 2024, 12:12:42


Auteur Sujet: [INC] Format message  (Lu 6593 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
[INC] Format message
« le: 19 Décembre 2008, 03:54:10 »
Je m'ennuiait cette nuit alor j'ai decider de faire une petite include sympa

Ce code peux certainement être ameliorer mais bon j'me suis pas prit trop la tête j'ai tester en vitesse et sa marchait donc :p

ps: quelqu'un pourrait la tester sous linux car j'suis pas sur mais il me semble que d'apres wiki la fonction "getarg" n'est utilisable que sur windows mais j'suis pas sur :s

Edit :

L'include a été ameliorer elle prend desormait en charge les %.3f ect (Un GRAND merci a SIM pour sa :) )
Et cette mise a jour ajoute aussi 2 nouvelle fonction :

- GameTextFormatForPlayer
- GameTextFormatForAll


Description

Cette include permet d'envoyer un message formater a un joueur ou a tout les joueur

/!\ Cette include est a tésté correctement avant toute utilisation


Les fonction

Code: (pawn) [Sélectionner]
native SendClientFormatMessage(playerid, color, msg[], {Float,_}:...); // Envoi un message formater a un joueur
native SendClientFormatMessageToAll(color, msg[], {Float,_}:...); // Envoi un message formater a tout les joueur
native GameTextFormatForPlayer(playerid, msg[], time, style, {Float,_}:...); // Envoi un GameText formater a un joueur
native GameTextFormatForAll(msg[], time, style, {Float,_}:...); // Envoi un GameText formater a tout les joueur

Instalation

- Placer l'include dans votre dossier /pawno/include
- Ajouter a votre GM #include <formatmsg>

Utilisation

Exemple:
Code: (pawn) [Sélectionner]
SendClientFormatMessage(playerid,COLOR_WHITE,"%s a recu %d$",playername,money);

Telechargement

Lien Pastbin: ICI




En esperant que sa vous sera util et que quelqu'un pourra le tester sous linux :s

Si vous trouver des bug n'hesiter pas a me le dire j'essairai de corriger



Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : [INC] Format message
« Réponse #1 le: 19 Décembre 2008, 04:36:00 »
native SendClientFormatMessage(playerid, color, msg[], {Float,_}:...); // Envoi un message formater a 1 joueur
native SendClientFormatMessageToAll(color, msg[], {Float,_}:...); // Envoi un message formater a tout les joueur

Hep hep hep !!

Ils sont ou les droits d'auteur la ?  :laugh

GG Bravo :D

NV. 8)



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


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [INC] Format message
« Réponse #3 le: 19 Décembre 2008, 07:56:22 »
Moi je dit GG comme ca on se casse plus la tete avec les format



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne inbox

  • *
  • Tueur en série
  • Messages: 214
    • Voir le profil
    • Blog sur Gta
Re : [INC] Format message
« Réponse #4 le: 19 Décembre 2008, 11:00:09 »
Bonjour,

Très bonne idée
je voulais le faire aussi mais comme je ne savait pas le faire j'ai annuler lol

Merci a toi Heureusement que les pros sont là :p

Cordialement,
signature hors-normes (image trop grande)

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [INC] Format message
« Réponse #5 le: 19 Décembre 2008, 11:26:37 »
Testé sous windows, ça fonctionne. GG

Trois petites remarques quand même mais qio n'empêche pas tes fonctions de fonctionner correctement :
1) Les public devant les déclarations des fonctions sont inutiles.
Il vaut mieux les enlever ainsi que les lignes
forward SendClientFormatMessage(playerid, color, msg[], {Float,_}:...);
forward SendClientFormatMessageToAll(color, msg[], {Float,_}:...);

2) La chaine de destination est un peu petite (128), il vaudrait mieux mettre 255 (ou 512 pour être tranquille) :
new dest[255];
3) Puisque le fonction SendClientMessage renvoi une valeur, il serait bien que tes fonctions la renvoie aussi.
Donc transformer la dernière ligne
SendClientMessage(playerid,color,dest);en
return SendClientMessage(playerid,color,dest);
NB : Les modifications dont je parle ont été testées et fonctionnent.

Sinon, il est certainement possible d'optimiser un peu ton code (notamment au niveau de la boucle) mais vu que ce n'est pas le genre de fonction qui est utilisée très souvent, ça n'en vaut pas forcément la peine.

++
Syg
Courtesy of GtaManiac

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [INC] Format message
« Réponse #6 le: 19 Décembre 2008, 14:45:57 »
Je vais faire les modif que tu me conseille tout de suite Syg et je vais aussi mettre un lien pour telecharger l'include

Pour la boucle pourrait tu me dire comment je peux l'optimiser comme sa , sa fera un code bien propre :)


Edit: Modif faite


Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [INC] Format message
« Réponse #7 le: 19 Décembre 2008, 16:27:14 »
En fait, je n'avais pas regardé dans le détail ce que tu fais pour construire la chaine finale.
J'avais vu une boucle for qui parcourt tous les caractères de la chaîne initiale et je m'étais dit, sans approfondir, qu'un while serait plus judicieux à la place. Mais je raisonnais comme si j'étais en C qui permet l'utilisation de pointeur.
Ce que tu as fais est plus simple à comprendre et à mettre en œuvre en PAWN donc, ne change rien.
De plus, comme je disais, c'est du gagne petit car les quelques millisecondes qu'on pourrait éventuellement gagner sont négligeables vu qu'on utilise pas la fonctions des dizaines de fois par seconde.

++
Syg
Courtesy of GtaManiac

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [INC] Format message
« Réponse #8 le: 19 Décembre 2008, 16:30:19 »
D'acc :p

Enfet au depart j'pensait que une t'elle fonction ne serait pas posible en pawn donc au depart j'avait l'idee de faire un plugin en c mais apres j'ai reflechi et j'ai trouver une facon de faire en pawn :p

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [INC] Format message
« Réponse #9 le: 19 Décembre 2008, 16:54:45 »
Salut,

GG mister-fred,

dit, je pourrais t'emprunter ton code afin de l'ajouter à mon include langues?? en mettant les crédits bien sûr ^^

++Sim++






Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : [INC] Format message
« Réponse #11 le: 19 Décembre 2008, 18:01:16 »
Respect, vraiment pas mal !

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [INC] Format message
« Réponse #12 le: 20 Décembre 2008, 21:13:03 »
Boujour,

Mister-fred, je tien à te signaler un bug dans la partie du case 's'

alors après quelques vaines tentative (entre autres pour identifier le problème) j,en suis arriver a ceci (qui fonctionne): PasteBin

++Sim++





Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [INC] Format message
« Réponse #13 le: 20 Décembre 2008, 22:41:19 »
mmm bizard car j'avait pas eu de probleme lors de mes petit test enfin j'ai corriger et j'en ai profiter pour ajouter les GameTextFormatToPlayer et GameTextFormatToAll ;)


J'editerai mon premier post dans 2 minute avec la MAJ ;)