• 05 Juillet 2025, 17:51:48


Auteur Sujet: Aide compteur et pickup  (Lu 2623 fois)

0 Membres et 1 Invité sur ce sujet

vincentdu90

  • Invité
Aide compteur et pickup
« le: 29 Novembre 2008, 14:56:18 »
Bonjour a tous,
Je voudrais savoir comment on fais pour faire un compteur car je voudrais l'utiliser pour un truc que je voudrais faire .
Juste un compteur simple avec Km (et essence).

Je voudrais aussi savoir quand un joueur prend un pickup sa lui donne de l'essence ou des armes ect...

Merci d'avance.
« Modifié: 29 Novembre 2008, 15:43:37 par vincentdu90 »

Hors ligne momo77190

  • *
  • Tueur en série
  • Messages: 184
    • Voir le profil
    • GTABOMB
Re : Aide compteur et pickup
« Réponse #1 le: 29 Novembre 2008, 16:19:02 »
Salut pour le compteur tu as le compteur a raf
http://www.gtaonline.fr/forums/index.php/topic,1832.0.html

vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #2 le: 29 Novembre 2008, 16:21:21 »
Oui je sais mais voila je l'ai dit moi je veut pas le nom est tout et moi je veut faire un truc different donc faut que je comprenne le fonctionnement .
Donc ça serait sympa de m'aider .

vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #3 le: 30 Novembre 2008, 19:01:03 »
Un petit up !! (je sais pas si c'est autoriser)

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Aide compteur et pickup
« Réponse #4 le: 30 Novembre 2008, 19:49:49 »
sur le forum samp il y en a un tout simple juste les mph et le fuel ;) tu t'en inspire et tu le modifie pour toi
PS: si je le retrouve je te donne le lien

EDIT:  http://forum.sa-mp.com/index.php?topic=77552.0 <====speedo KM/h
« Modifié: 30 Novembre 2008, 19:55:11 par cristab »
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Aide compteur et pickup
« Réponse #5 le: 30 Novembre 2008, 19:53:17 »
Salut,

le script de r@f n,est pas si compliqué, avec un peu d'effort, on comprend que cette ligne:
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
sert à savoir la distance parcourue pas le joueur depuis 1 seconde (dans ce cas),

ensuite on fait les bon calculs afin de convertir ce nombre (une distance divisé par un temps = une vitesse) en km/h ou mph..
le nom du véhicule, c'est un peu facultatif mais bon, c'est juste le VehiclesName[VModel-400], VehiclesName étant l'array qui est placé en haut du script...

puis l'altitude, c'est toit qui voit, tu supprime ou tu el remplace tout simplement par la valeur de l'essence de ton script d'essence

en espérant que tu comprenne quelque chose à ça...

++Sim++






vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #6 le: 30 Novembre 2008, 20:02:10 »
Mais que je comprenne bien la vitesse c'est les nouvelles coordonnées X,Y,Z - les anciennes

EDIT:Tu pourrait m'expliquer un peu plus en details le codes ça serait gentil . :-[
« Modifié: 01 Décembre 2008, 19:09:05 par vincentdu90 »

vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #7 le: 02 Décembre 2008, 15:59:00 »
Up !
S'il vous plaît vous pouvez m'aider .Je suis désolé

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Aide compteur et pickup
« Réponse #8 le: 02 Décembre 2008, 23:09:25 »
Salut,

pour la vitesse, le script ne fait que prendre la position précédente du joueur (SavePlayerPos[playerid][LastPos....];) et sa nouvelle position (GetPlayerPos(playerid,x,y,z);)
puis il calcule la distance entre les deux positions, (en usant de la même technique que pour la norme d'un vecteur dans les réel^3, semblable au théorème de pythagore avec les triangle rectanlges, mais avec trois données...)

par la suite il multiplie cette donnée par une certaine valeur (d'ailleurs je comprend pas pourquoi faire deux calculs, alors qu'on pourrait convertir directement, et les distances sont-elles en mètres ou en pieds??)
bref par la distance parcourue en une seconde, on extrapole pour une heure et on met en kilomètres ou en milles...

++Sim++





vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #9 le: 03 Décembre 2008, 12:51:45 »
Ok merci je comprend un peu mieux , mais c'est quoi floatpower , floatabs, floatsub ?
Des variables qui conntiennent la coordonnées x,y,z ?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Aide compteur et pickup
« Réponse #10 le: 03 Décembre 2008, 15:14:55 »
Salut,

floatpower: la variable au carré, tu pourrais juste la multiplier par elle même également...
floatabs: la valeur absolue de la variable (si la variable est négative, elle devient positive, sinon elle ne change pas)
floatsub: soustraction de deux float et plus....

edit:
tant qu'à y être...
floatsqroot: la racine carré du float en question


++Sim++
« Modifié: 03 Décembre 2008, 15:16:45 par Sim »





vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #11 le: 03 Décembre 2008, 15:34:38 »
Donc

distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));


Sa voudrais dire qu'on la racine au carrée de ça

(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
Et la dedans on fait a chaque fois dans ce bout de code on fait pour chaque coodonnées la variable au carré de la valeur absolue c'est a dire x y ou z puis on soustrait .?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Aide compteur et pickup
« Réponse #12 le: 03 Décembre 2008, 15:46:09 »
Salut,

en réalité, la soustraction sert à savoir la variation dans l'un des sens (par exemple en x),

ensuite, comme dans la formule de pythagore, A²+B² = C², que l'on peut facilement modifier pour avoir C = racinecarrée(A²+B²) et qui est toujours valide en 3 dimensions.. c = racinecarrée(A²+B²+C²)

donc, floatsqroot(A²+B²+C²) qui devient floatsqroot(floatpower(A)+floatpower(B)+floatpower(C))
maintenant, A, B,C correspondant à la variation en X, Y et Z, sachant que la variation (positive où négative, c'est sans importance puisque que ce nombre sera au carré) on peut en arrivé à la ligne suivante:

floatsqroot(floatpower(floatsub(x,SavePlayerPos[i][LastX]))+floatpower(floatsub(y,SavePlayerPos[i][LastY]))+floatpower(floatsub(z,SavePlayerPos[i][LastZ])))ou encore:
floatsqroot(floatpower(x-SavePlayerPos[i][LastX])+floatpower(y-SavePlayerPos[i][LastY])+floatpower(z-SavePlayerPos[i][LastZ]))
++Sim++





vincentdu90

  • Invité
Re : Aide compteur et pickup
« Réponse #13 le: 03 Décembre 2008, 15:56:31 »
Ok bon je vais prendre le deuxieme modele plus facile .
Et ensuite on le divise ?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Aide compteur et pickup
« Réponse #14 le: 03 Décembre 2008, 16:07:35 »
Salut,

ensuite, on convertis, mais l'ennui, c'est que je ne sais pas si les mesures des positions sont données en mètres (ce qui voudrais dire que la carte fait environ 5000m de large...) ou en pied, je vais regarder ce qui est le plus vraisemblable avec mon fast-move et je revien, mais comme là je suis en cours....ca va attendre à ce soir, donc demain matin pour toi.

si les mesures sont en mètres, il faut divisé par 1000 pour convertir en kilomètres, puis vu que la distance est parcourue en une seconde, il faut multiplié par 3600, qui est le nombre de secondes contunes adns une heure... mais comme le speedo de r@f ne correspond pas du tout à cela... je ne sais pas trop...

EDIT: je vien de regarder le script de r@f multiplie par 5000 (pourquoi???) puis, pour en km/h, il divise par 1000, en gros, je crois qu'il ne s'agit que d'une imprécision

bref, il te faudrait multiplier par 3600 puis divisé par 1000, pour en km/h, ce que tu peut simplifer en une simple multiplication par 3,6

++Sim++
« Modifié: 03 Décembre 2008, 16:16:31 par Sim »