GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: 3klips le 13 Mars 2008, 17:43:18
-
Voila je me demandai, comment il font?
http://www.youtube.com/v/LDanPrfIIoI
Merci de vos réponses.
-
Prend la fonction de Rotation des Objects. Pour ceux qui ne savent pas. Pawno a un petit truc très utile :happy Vous cliquer sur la fonction que vous voulez et en bas de pawno (Proche de démarrer) vous verrez les variables a mettre pour bien le configuer. ;)
J'espère que sa aidera du monde cette petite astuce si vous n'avez jamais découvrie sa... ;)
-
Une rotation de x degrés se fait instantanément, on ne voit pas la progression (contrairement au MoveObject).
Il doit sûrement utiliser un timer qui fait tourner l'objet toutes les x ms de x degrés.
Voili voilou.
-
Houa c'est sur psyco sa :D
je pence que ce serait ieux d'allez demander sur leurs forum!
il son tsympa et assez bon scripteur !!!
+
-
Bein ouai, le probleme quand je leur ai demandé in-game il m'on répondu très gentilment,
on fait sa à l'aide d'un script. :dry
Puis j'ai pas su en savoir plus. :wall
Donc voilà.
-
Essaye un timer toutes les 100 ms par exemple qui fais tourner ton objet de 10°. Ensuite tu adaptes les degrés en fonction de la vitesse ;)
-
Voici un exemple que je m'étais amusé à faire pour tester les fonctions sur le objets.
C'est tout à fait en accord avec ce qu'a dit Asphalt (même si mon timer est plus court pour éviter les mouvements sacadés).
En haut du script :
/* Le baril qui tourne */
new Baril;
forward TourneBaril ();
new Float:Ax=0.0, Float:Ay=0.0, Float:Az=0.0;
new Float:BX=0.0, Float:BY=0.0, Float:BZ=0.0;
new Float:T;
Dans OnGameModeInit :
/* Le baril qui tourne au skate park de Los Santos */
Baril = CreateObject (1225, 1912.0, -1390.0, 15.5, 0.000000, 0.000000, 0.000000);
/* On demarre un timer pour les mouvements du baril */
SetTimer ("TourneBaril", 20, true);
La fonction du timer :
/*************************
* FAIRE TOURNER LE BARIL *
*************************/
public TourneBaril ()
{
Ax += 1.0;
Ay += 1.5;
Az += 2.0;
if (Ax == 360.0) Ax = 0.0;
if (Ay == 360.0) Ay = 0.0;
if (Az == 360.0) Az = 0.0;
SetObjectRot (Baril, Ax, Ay, Az);
T += 2.0;
if (T > 360.0) T=T-360.0;
BX = 1912.0 + 2.0 * floatcos (2.0*T, degrees);
BY = -1390.0 + 2.0 * floatsin (3.0*T, degrees);
BZ = 15.5;
SetObjectPos (Baril, BX, BY, BZ);
}
NB: Cette fonction fait tourner l'objet sur tous les axes et le déplace (dans un plan parallèle au plan (XY)) le long d'un courbe définie par :
x = 2*cos(2*T)
y= 2*sin(3*T)
Un petit jeu marrant consiste à essayer de toucher le baril en moto ou en voiture (le baril explose). La difficulté réside dans le fait que le baril a un mouvement assez rapide.
NB : Le baril étant au dessus de la fosse, il faut utiliser une rampe pour pouvoir le toucher.
++
Syg
-
Ha merci bien SYG pour ce bout de code :)
-
Woow pas mal :laugh , ça donne des idées..
++