• 07 Juin 2026, 07:16:52


Auteur Sujet: barierre  (Lu 2565 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne yah00078

  • *
  • Tueur en série
  • Messages: 163
    • Voir le profil
    • Radio locale F2xradio
barierre
« le: 12 Novembre 2007, 20:22:24 »
Bonjour a tous, j'ai un script ki permet de fermer et d'ouvrir des barierre.
Les barierre (id 968) sont ouvrete et kan ej tpae un commande sa donen un deplacement pour aller ds une otre position MAIS il y a un probleme. je ne peut entrer que  4 valeur (ex: 0.0 , 0.0 , 0.0 , 0.0 ,) ce qui ne permet pas de prendre en compte la rotation qui permet d'afficher la bariere en mode fermer ( il faudrais une valeur de plus mai ssi j ela met sa me met un warning disant que j'ai mi trop de valeurs.). voila le probleme.

MERCI de votre aide :)
Quand on veux , on peut !

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : barierre
« Réponse #1 le: 12 Novembre 2007, 21:17:03 »
Bah c'est que tu peu pas.... :-\
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne yah00078

  • *
  • Tueur en série
  • Messages: 163
    • Voir le profil
    • Radio locale F2xradio
Re : barierre
« Réponse #2 le: 12 Novembre 2007, 21:34:06 »
sisi puiska j'ai vu un systeme presque pareil qui le fesait :)
Quand on veux , on peut !

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : barierre
« Réponse #3 le: 12 Novembre 2007, 21:41:06 »
Moi aussi sa m'intereserait de savoir comment faire pour prendre en compte la rotation d'un objet avec moveobject

Car j'aimerai faire une porte qui s'ouvre comme une veritable porte

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : barierre
« Réponse #4 le: 12 Novembre 2007, 22:08:17 »
La fonction MoveObject ne permet pas de faire effectuer des rotations à un objet.
Pour les rotations, il faut se tourner vers un timer en utilisant les fonctions GetObjectRot et SetObjectRot.
Je n'ai jamais fait l'expérience mais avec un timer assez court et quelques notions de trigonométrie, vous devriez réussir à vous débrouiller.

Information utiles :
Get/SetObjectRot admettent comme paramètres un object id et trois valeurs Float (en sortie pour Get et en entrée pour Set).
Ces 3 valeurs correspondent respectivement aux angles de rotation sur les axes X (Ouest->Est), Y (Nord->Sud) et Z (Bas->Haut).

Pour ceux qui ont déjà fait de la trigo dans l'espace, les règles classiques s'appliquent pour déterminer le sens de rotation (règle des 3 doigts de la main droite, règle du tire bouchon) en prenant en compte que l'axe des Y est inversé.

Pour ceux qui n'y comprennent pas encore grand chose, le seul axe intéressant est l'axe Z. Il correspond à la rotation dans le plan (XY), c'est à dire le sol. C'est la même chose que l'angle d'un joueur ou d'un véhicule mais pour un objet.
C'est donc celui-ci qu'il faut utilisé pour simuler l'ouverture d'une porte par rotation.

Bon courage et si vous galèrez trop, faîte le savoir, j'essaierais de faire quelque chose

++
Syg
Courtesy of GtaManiac

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : barierre
« Réponse #5 le: 12 Novembre 2007, 23:05:06 »
Merci de ces information je vais eseyer je te dit quoi encore merci

Hors ligne yah00078

  • *
  • Tueur en série
  • Messages: 163
    • Voir le profil
    • Radio locale F2xradio
Re : barierre
« Réponse #6 le: 13 Novembre 2007, 20:40:46 »
Sa marche merci :) a tous
Quand on veux , on peut !

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : barierre
« Réponse #7 le: 14 Novembre 2007, 01:20:32 »
oui sa marche mais malheureusement sa fait passer d'une position a l'autre directement contrairement au moveobject

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : barierre
« Réponse #8 le: 14 Novembre 2007, 02:26:29 »
La porte s'ouvre d'un coup car tu changes l'angle en une fois.
Quand je disais qu'il faut utiliser un timer c'est pour augmener ou diminuer l'angle d'une valeur assez petite pour simuler un déplacement.
Exemple :
Un porte qui s'ouvre équivaut à un déplacement de 90 ° (angle droit)
Donc je lance un timer de 100 ms qui effectue une rotation de 2 ° à chaque fois par rapport à la dernière position de l'objet (c'est à dire que le porte "tourne" de 2° toutes les 100 ms).
Au bout de 4.5 secondes (100 * 90/2 = 4500 ms = 4.5 s), ma porte est ouverte et j'arrête le timer.
Si je veux que le porte aille plus vite, j'ai deux solutions :
1 - Je diminue la valeur de mon timer => gourmand en ressources mais plus fluide et plus joli
2 - J'augmente l'angle à chaque itération (4° au lieu de 2° par exemple) => risque de saccades mais soulage le serveur, le client et la bande passante.

Voilà, j'espère qu'avec ça vous aurez compris ce que je voulais dire.

++
Syg
Courtesy of GtaManiac

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : barierre
« Réponse #9 le: 14 Novembre 2007, 03:26:09 »
A oui j'avait pas penser a sa merci je vais tester voir si sa donne bien ^^

++
Fred