• 23 Avril 2025, 21:11:07


Auteur Sujet: Faire apparaitre un objet par commande  (Lu 1303 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Anthony Wolf

  • *
  • Criminel
  • Messages: 48
    • Voir le profil
Faire apparaitre un objet par commande
« le: 15 Mars 2009, 10:33:44 »
Bonjour,

moi qui me pose tellement la question donc je n'ai pas de réponse, comment faire une commande pour faire apparaitre des objet devant soit.

Par exemple, imaginons que je suis dans la faction ouvrier et que je veux mettre l'objet pour fermer les route ( comme sur les ponds du solo au début )
par la commande /fermerroute

et que par la suite pour l'enlevé, il faut faire /ouvrirroute

comment peut on faire ?

Merci de vos réponse,
et non merci pour votre flood pour rien dire  :P

Hors ligne Azz45

  • Good Player
  • *
  • Mafioso
  • RolePlay Player
  • Messages: 2809
    • Voir le profil
Re : Faire apparaitre un objet par commande
« Réponse #1 le: 15 Mars 2009, 11:01:34 »
Salut,

Il te faut un :

new barriere = 0;
Ensuite dans ta commande ajoute sa :

if( barriere == 0)
Ensuite n'oublie pas en dessous de ce que j'ai mit au dessus de mettre des objets exemple :

 barriere1 = CreateObject(Coordonnées);
  barriere2 = CreateObject(Coordonnées);
  barriere3 = CreateObject(Coordonnées);
  barriere4 = CreateObject(Coordonnées);
  barriere5 = CreateObject(Coordonnées);

Ensuite tu crée la commande, qui faut mettre en haut du if( barriere == 0).

Exemple :

    if(strcmp(cmdtext, "TACOMMANDE", true)==0)
{
        if(IsPlayerConnected(playerid))

Après si tu veut ajoutez un truc, tu fait un :

SendClientMessage(playerid, COLOR_YELLOW, " Vous avez bien placer votre barriere !");

Ensuite en bas tu ajoute un:

barriere = 1;
Pour que les objets se mettent en place, voilà j'espère t'avoir beaucoup aidé,

Personnellement j'utilise beaucoup de commande comme sa et j'ai jamais eu de soucis si t'en as un hésite pas a nous revoir ;)

~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~


~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~~•~  ~•~  ~•~  ~•~
Avancement du GM : 3%
~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~
~•Merci Kloken, pour la vidéo lors de mon anniversaire•~

Hors ligne Anthony Wolf

  • *
  • Criminel
  • Messages: 48
    • Voir le profil
Re : Faire apparaitre un objet par commande
« Réponse #2 le: 15 Mars 2009, 11:24:36 »
Si je comprend bien, se code permet de crée des objet dans un endroit précis,

moi je veux quand je fait la commande faire apparaitre l'objet devant le joueur

Hors ligne Azz45

  • Good Player
  • *
  • Mafioso
  • RolePlay Player
  • Messages: 2809
    • Voir le profil
Re : Faire apparaitre un objet par commande
« Réponse #3 le: 15 Mars 2009, 12:15:05 »
Ah, j'avais pas compris, bhé désolé si sa peut servir pour une autre personne ;)

~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~


~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~~•~  ~•~  ~•~  ~•~
Avancement du GM : 3%
~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~
~•Merci Kloken, pour la vidéo lors de mon anniversaire•~

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Faire apparaitre un objet par commande
« Réponse #4 le: 15 Mars 2009, 16:14:09 »
Je m'inspire du savepos de Urban !
Alors dans ta commande tu prend la position du jour :
Dans la commande tu met sa

Code: (c) [Sélectionner]
new Float:Pos[MAX_PLAYERS][4];
//On prend les coordonées
GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
GetPlayerFacingAngle(playerid,Pos[playerid][3]);//Important pour qu'il soit devant
//On ajoute l'objet
CreateObject(IDOBJET, Pos[playerid][0],Pos[playerid][1],Pos[playerid][2], 0.0000, 0.0000,Pos[playerid][3]);
//La où il y a "Pos[playerid][3]" je suis pas sur que c'est l'angle
SendClientMessage(playerid, COLOR_YELLOW, " Vous avez bien placer votre barriere !");

Bon la tu va buguer parce que l'objet va arrivé sur toi pour qu'il soit devant faut faire Pos[playerid][?]+1
Je vai un poitn d'interogation s'achant que :
1 = X
2 = Y
3 = Z
Et X.Y.Z je ne sais pas a quoi y coreponde

Et le +1 enfin sa seras +24 on verra car si par exemple X = 2150 et je met 2150+24 dans le Jeux sa seras égale à 2174


Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Faire apparaitre un objet par commande
« Réponse #5 le: 15 Mars 2009, 18:46:36 »
Salut,

petite correction:

si tu désire que l'objet apparaisse devant le joueur, tu dois utiliser les fonctions sin, cos en récupérant l'angle du joueur (vive les math^^)
amuse toi, si tu as besoin de plus de détail, je fais un truc de se genre dans mon fs Fast-Move

++Sim++





Hors ligne Anthony Wolf

  • *
  • Criminel
  • Messages: 48
    • Voir le profil
Re : Faire apparaitre un objet par commande
« Réponse #6 le: 15 Mars 2009, 19:42:05 »
Un peu compliquer lol

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Faire apparaitre un objet par commande
« Réponse #7 le: 16 Mars 2009, 18:35:44 »
J'ai déja récupéré l'angle le Matheu xd mais l'objet va aparaitre sur lui la car je sais pu a quoi correponde :
X,Y,Z

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Faire apparaitre un objet par commande
« Réponse #8 le: 17 Mars 2009, 01:10:03 »
Salut,

Je t'aide:



bref, comme dans sa-mp le zéro d'un angle se trouve en haut, tu doit inverser les fonctions ( le sin qui normalement correspond au Y correspond au X dans GTA)

donc:
#define DISTANCE 5 //par exemple, distance à la quelle l'objet apparait devant le joueur
...(...,X+DISTANCE*floatsin(Angle, degrees), Y+DISTANCE*floatcos(Angle, degrees), Z ....)

P.S. essaie de comprendre avec le cercle et Angle correspond à l'angle du joueur, je n'ai pas utilisé les variables de coco76

++Sim++