GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: papa-noël le 27 Août 2007, 04:05:23

Titre: PAWN->Spawné voiture devant moi
Posté par: papa-noël le 27 Août 2007, 04:05:23
Salut a tous ,

J'ai une petite question, je bloque sur ceci  Comment faire apparaitre un objet devant moi, et non a côté de moi   Exemple
Code: (cpp) [Sélectionner]
new Float:Pos[3];
GetPlayerPos(i,Pos[0],Pos[1],Pos[2]);
CreateObject(1655,Pos[0],Pos[1],Pos[2],0,0,0);}

L'objet apparait a côté de moi, et non devant moi   Si vous pouvez m'aider, merci d'avance 

HoHoHoHoHoHo... ..


Titre: Re : PAWN->Spawné voiture devant moi
Posté par: NatiVe™ le 27 Août 2007, 09:50:20
Salut !

Je pense qu'il faut ajouter  dans ton code

Citer
GetVehicleZAngle(vehicleid, FloatZ_angle)

Je ne suis pas sur (je debute aussi)

AK.
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: Syg le 27 Août 2007, 09:53:21
Normalement, l'objet devrait être autour de toi. Mais bon, ça dépend de l'objet que tu crées.
Sinon, pour positionner un objet devant toi, il faut faire un peu de math (je vais pas le faire ici et te donner directement la réponse).

Donc tout d'abord, il faut récupérer la direction dans lequel regarde le joueur. Selon qu'il est à pied ou en vehicule, il faut utiliser soit GetPlayerFacingAngle soit GetVehicleZAngle. On appellera Angle cette valeur et Dist la distance à laquelle tu veux que l'objet apparaisse.
Ensuite, tu positionnes ton objet comme ça (ligne non simplifiée) :
CreateObject (1655, Pos[0] + Dist * floatcos (Angle + 90.0, degrees), Pos[1] + Dist * floatsin (Angle + 90.0, degrees), Pos[2], 0.0, 0.0, 0.0);

Après, tu peux faire les simplification suivante (là c'est des math) :
cos (Angle+90) = sin (Angle) et
Sin (Angle+90) = -cos (Angle).

Donc au final :
CreateObject (1655, Pos[0] + Dist * floatsin (Angle, degrees), Pos[1] - Dist * floatcos (Angle, degrees), Pos[2], 0.0, 0.0, 0.0);

++
Syg
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: NatiVe™ le 27 Août 2007, 10:10:58
Donc... J'avais raison :P :P :P

AK.
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: Syg le 27 Août 2007, 14:05:54
A moitié Arsenik, quand le personnage est à pied, il faut utiliser GetPlayerFacingAngle.

++
Syg
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: NatiVe™ le 27 Août 2007, 17:37:49
Peut etre a moitié mais j'avais raison mdr !

AK.
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: papa-noël le 27 Août 2007, 17:54:20
Salut ,

Merci ca marche très bien :) Si sa vous derange pas quand j'ecrie /ramp le strcmp et deja fait la rampe je peux pas sauté dessus elle et toujours orienté vers le sud :s Sinon ca marche très bien merci

HoHohHohohoooo..
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: NatiVe™ le 27 Août 2007, 21:19:41
Pour la ramp il suffit juste de changer le numero de la rotation.

AK.
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: papa-noël le 27 Août 2007, 22:32:35
Je sais mais jarrive pas :(
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: Syg le 27 Août 2007, 23:52:18
Bon alors on continue un peu parceque c'est vraiment simple :

Au lieu de
CreateObject (1655, Pos[0] + Dist * floatsin (Angle, degrees), Pos[1] - Dist * floatcos (Angle, degrees), Pos[2], 0.0, 0.0, 0.0);

mets
CreateObject (1655, Pos[0] + Dist * floatsin (Angle, degrees), Pos[1] - Dist * floatcos (Angle, degrees), Pos[2], 0.0, 0.0, Angle);

et le tour est joué.

Remarque : personnellement, je préfère la rampe 1634 à la 1655. Et on peut rajouter 0.5 à la composante z pour quelle soit un peut plus haute :
CreateObject (1634, Pos[0] + Dist * floatsin (Angle, degrees), Pos[1] - Dist * floatcos (Angle, degrees), Pos[2] + 0.5, 0.0, 0.0, Angle);


++
Syg
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: papa-noël le 28 Août 2007, 01:08:40
Merci !!!!!!!!!!!!!,

Ca marche super la command j'ai couplé sa avec une racourcie clavier ca rend super :) Sig j'ai fait un random
Code: (cpp) [Sélectionner]
new StyleRamp[MAX_PLAYERS];
[....]
dans un random quand le joueur se connecte il peux choisir le style de la rampe :) Que tu bonheur  pour un bon stunter :)

Niveau code je me debrouille mais c'etait des math alors ...  :bangin

Vous etre super simpa de m'aider je vais faire de mon possible essayé de faire comme toi sig aidé les gens dans la mesure du possible :)

@++

HoHohohohoho....
Titre: Re : Re : PAWN->Spawné voiture devant moi
Posté par: NatiVe™ le 28 Août 2007, 11:39:45
Citer
j'ai couplé sa avec une racourcie clavier...

C'est sa que j'aimerais apprendre a faire...

Comment fait on ?

AK.
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: Syg le 28 Août 2007, 12:01:17
Pour ne pas te donner une solution toute faite et puisque tu m'as l'air capable de le faire tout seul, je te met sur la voie :
Il faut utiliser la fonction callback OnPlayerKeyStateChange

++
Syg
Titre: Re : PAWN->Spawné voiture devant moi
Posté par: NatiVe™ le 28 Août 2007, 12:32:33
Haaa ouiii c'est sa ! je me demander un moment a quoi cette fonction servais ! :).

Merci.

AK.