GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: vincentdu90 le 20 Novembre 2012, 11:07:07

Titre: Une limitation au SetPlayerVelocity ?
Posté par: vincentdu90 le 20 Novembre 2012, 11:07:07
Bonjour/Bonsoir,

    Je sais que des topics existent déjà à ce sujet mais je ne crois pas que la solution ait été vraiment résolue.
Donc en fait mon but est de faire sauter le personnage plus haut que la normal du jeu et pour ça j'ai utilisé SetPlayerVelocity
Je procède donc comme ceci :

Code: (pawn) [Sélectionner]

SetPlayerVelocity(playerid,X*3,Y*3,Z*3);

(Ceci n'est bien sûr qu'une partie du code)
Où les valeurs utilisés sont récupérer par le GetPlayerVelocity.

Cela augmente bien la hauteur du saut et même sa portée mais si on essaye de multiplier la vélocité en Z par un nombre plus grand le joueur ne sautera pas plus haut. Cependant si on augmente la vélocité en X et Y la porté du saut sera bien augmenté.

Donc j'aimerai savoir, s'il vous plaît, si la vélocité en Z ne serait pas comme "bridée". Ou alors est-ce que j'utilise mal la fonction?

Merci d'avance.  :)
Titre: Re : Une limitation au SetPlayerVelocity ?
Posté par: Malak le 21 Novembre 2012, 13:45:10
Doit surement avoir un rapport avec la gravité. Même si d'en ce domaine je m'y connais pas de trop
Titre: Re : Une limitation au SetPlayerVelocity ?
Posté par: S!m le 21 Novembre 2012, 14:29:29
Salut,

essaie en additionnant une valeur et en la faisant varier, de cette façon du saura.

Les sauts sont toujours les mêmes au niveau de la hauteur pratiquement, utilise l'addition au lieu de la multiplication pour la coordonnée Z si ça règle le problème tout en multipliant par une valeur selon X et Y.

++Sim++
Titre: Re : Une limitation au SetPlayerVelocity ?
Posté par: vincentdu90 le 21 Novembre 2012, 15:33:34
Même en ajoutant j'ai pas l'impression que le joueur saute plus haut qu'une certaine limite.
Titre: Re : Une limitation au SetPlayerVelocity ?
Posté par: Xolokos le 22 Novembre 2012, 19:45:42
Pour le faire sauter plus haut (et un peut plus loin) j'ai fais un peut de trigonométrie...
Code: (pawn) [Sélectionner]
new Float:X, Float:Y, Float:Z,Float:Angle;
GetPlayerFacingAngle(playerid, Angle);
GetPlayerVelocity(playerid, X, Y, Z);
SetPlayerVelocity(playerid, floatsin(-Angle, degrees)*0.22, floatcos(Angle, degrees)*0.22, (Z*1.002)+0.130);
En multipliant très très légèrement.
Titre: Re : Une limitation au SetPlayerVelocity ?
Posté par: vincentdu90 le 22 Novembre 2012, 21:41:00
Oui j'avais vu ton code sur un autre sujet et j'ai essayé de modifier la valeur qui multipliait Z mais ça m'a toujours "bridé" la hauteur du saut. Après j'ai peut-être pas bien manipulé.  :P

De plus j'ai essayé de comprendre le calcul mais j'avoue ne pas avoir bien compris l'utilité d'utiliser le sinus(cosinus) de l'angle opposé auquel le joueur fait face.
Titre: Re : Une limitation au SetPlayerVelocity ?
Posté par: Xolokos le 25 Novembre 2012, 18:20:57
Théorème de Pythagore, il y a plein de sujet avec les dessins associé a ça.
(Wiki' donne aussi l'utilité des cos/sin/tan.)