• 08 Juillet 2025, 08:45:59


Auteur Sujet: Plaque d'immatriculation  (Lu 2666 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne MacTavish

  • *
  • Nouveau
  • Messages: 2
    • Voir le profil
Plaque d'immatriculation
« le: 02 Juillet 2010, 17:14:24 »
Salut,
j'utilise l'include gveh de MrFredo et je souhaite y intégrer un système de plaque d'immatriculation.
J'ai donc ajouté ces lignes à une commande de l'include:

new plaque = SF0000 + random(SF0000);
VehiculeInfo[NbVeh][Plaque] = plaque;

Mais il ne reconnait pas SF0000, pourtant je veux pas qu'il reconnaisse quoique ce soit, juste qu'il fasse une plaque au hasard a partir de SF0000. Pouvez vous m'aidé ? merci :)

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #1 le: 02 Juillet 2010, 17:36:19 »
J'ai pas de réponse pour toi mais ta plaque d'immatriculation s'afficherais comment IG ?!

Hors ligne steve76

  • *
  • Tueur en série
  • Messages: 153
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #2 le: 02 Juillet 2010, 17:39:05 »
Moi je pense tous simplement que l'on ne peut pas additionner des chiffres et des lettres et aussi faire un random avec des chiffres et des lettres mais je ne suis pas sur.

Hors ligne MacTavish

  • *
  • Nouveau
  • Messages: 2
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #3 le: 02 Juillet 2010, 17:40:27 »
Eh bien dans ce cas si je ne peux pas faire de random avec chiffres et lettres, je fais comment ? Il y a un autre moyen ?

Pour l'affiché IG, si le joueur sera proche du véhicule, alors il pourrait faire /voirplaque et cela afficherais la plaque du véhicule ;)

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #4 le: 02 Juillet 2010, 17:59:46 »
Salut :)

Tu met sa en haut de ton script
new CaracImma[36][] = {"1","2","3","4","5","6","7","8","9","0","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};


puis la ou tu assigne ta plaque d'immatriculation :

la on choisis une '' case '' au hasard dans le tableau CaracImma
new Symb1 = random(sizeof(CaracImma)),
Symb2 = random(sizeof(CaracImma)),
Symb3 = random(sizeof(CaracImma)),
Symb4 = random(sizeof(CaracImma)),
Symb5 = random(sizeof(CaracImma));

Puis il nous faut l'enregistrer donc :

new string[64];
format(string, 64,"%s%s%s%s%s",CaracImma[Symb1],CaracImma[Symb2],CaracImma[Symb3],CaracImma[Symb4],CaracImma[Symb5]
VehiculeInfo[NbVeh][Plaque] = strval(string);


Voila, je suis pas tres sur de  cette ligne '' VehiculeInfo[NbVeh][Plaque] = strval(string); ".
Si tu as un soucis de save, je t'expliquerais comment régler sa.



Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #5 le: 02 Juillet 2010, 23:54:23 »
Je pense que ce qu'il veut c'est que le nombre après "SF" soit choisi aléatoirement sur 4 chiffres.

Il suffit de faire ça :
format (VehiculeInfo[NbVeh][Plaque], sizeof VehiculeInfo[NbVeh][Plaque], "SF%04d", random (10000));
Mais si tu veux effectivement des lettres, il faudra que tu utilises la solution de chneubeul.

NB : La fonction SetVehicleNumberPlate ne fonctionne plus sous SAMP 0.3

++
Syg
Courtesy of GtaManiac

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #6 le: 03 Juillet 2010, 00:17:36 »
Comment sa gzsume ?

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #7 le: 03 Juillet 2010, 00:20:29 »
ben %04d sa écris le nombre que tu veux avec des 0 sur 4 chiffres donc par exemple :

%04d avec 64 va s'écrire 0064

Au faite syg, j'avais pas vu le truc SF, désolé ^^

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #8 le: 03 Juillet 2010, 00:28:06 »
Je sais pas trop mais je pense que :

%2d n'est pas valide il vaut choisir 4 nombres donc par exemple

%12d donnerais avec 2 > 112
%23d          //            > 2223

Mais je sais pas du tout, c'est comme %.1f pour afficher des floats et dans des scripts php j'ai déjà vu %.2f Oo
il faudrait faire un tuto sur tout sa, grapiller des infos partout
« Modifié: 03 Juillet 2010, 00:31:48 par chneubeul »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #9 le: 03 Juillet 2010, 00:34:17 »
Ce format vient tout droit du C (ou plus précisément de la fonction printf car le C ne contient pas de format).

Il est très facile de trouver des pages entières d'explications sur l'utilisation du % en C.

Le % ne coupe jamais un nombre.
Donc %1 pour afficher 12 affichera 12 quand même.
Par contre, %5s pour afficher "Bonjour" affichera "Bonjo"

Je vais quand même expliquer le %04d (sachant que c'est la même chose avec les %f).
%04d
% -> indique que ce qui suit est un format
0 -> ce 0 qui suit immédiatement le % indique qu'il faut afficher les 0 non significatifs
4 -> indique la taille mini en caractères du nombre à afficher
d -> Indique que la variable est de type entier

Pour les %f, il est aussi possible de spécifier le nombre de chiffre après la virgule : %02.2f
Ici, le 0 indique qu'il faut afficher les 0 non significatifs,
le premier 2 indique le nombre de chiffre avant la virgule (attention, en C il faut donner le nombre total de caractère, point y compris),
le point indique l'emplacement de la virgule (point décimal),
le deuxième 2 indique le nombre de chiffres après la virgule,
le f indique que la variable à afficher est de type Float.

Le mieux reste de faire des essais dans un gamemode vide :
#include <a_samp>

main ()
{
new Float:F = 1.236;
printf ("Float : %02.2f", F);

new D = 42;
printf ("Entier = %04d", D);
}

public OnGameModeInit ()
{
return 1;
}

++
Syg
Courtesy of GtaManiac

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Plaque d'immatriculation
« Réponse #10 le: 03 Juillet 2010, 00:40:54 »
Merci beaucoup Syg, donc enfaite nimporte quel % est descriptible grâce à des '' codes " les lettres et chiffres suffit d'apprendre sa et c'est bon quoi ? Existe-t-il de plus grand % avec plus de paramètre ?

J'ai fait les tests et

j'obtiens : F = 1.23 et D = 0042 :)