GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: alex0405 le 04 Novembre 2008, 12:48:37

Titre: créer un poste avec une barrière
Posté par: alex0405 le 04 Novembre 2008, 12:48:37
Voila je commence en script et j'aimerais bien que quand on tape une commande par exemple /poste sa fasse un petit poste a l'endoit ou le joueur a tapé la commande, avec une barrière que l'on peut ouvrir et fermer, et que avec une autre commande exemple /stopposte sa supprime le poste.

Ce serait pour bloqué une route pour des contrôles de papiers, j'avais vu sa sur un serveur rpg.

Mais je ne sais pas comment mit prendre pour le faire, quelqu'un pourrait m'aider ?

Cordialement,
Alex0405
Titre: Re : créer un poste avec une barrière
Posté par: Nikko™ le 04 Novembre 2008, 12:51:00
Sujet abordé plein plein de fois ... RECHERCHE un peu stp avant de poster.
Merci

++
nikko
Titre: Re : créer un poste avec une barrière
Posté par: alex0405 le 04 Novembre 2008, 13:04:10
Je viens de faire une recherche et j'ai rien trouver tu as mit quoi comme pour chercher ?

Cordialement,
Alex0405
Titre: Re : créer un poste avec une barrière
Posté par: Azz45 le 04 Novembre 2008, 13:33:32
Bon je t'aide un peu utilise

un CreateObject pour installer tes barrières

et

un MoveObject pour faire bougez les barrières comme tu dit pour les ouvrir et fermer !


++ My
Titre: Re : créer un poste avec une barrière
Posté par: alex0405 le 04 Novembre 2008, 14:01:17
Sa je savais mais on fait comment pour que la barrière elle spawn devant moi ?
Titre: Re : créer un poste avec une barrière
Posté par: MrFredo le 04 Novembre 2008, 14:22:53
Reflechi ;)

Quel fonction sert a recuperer la position du joueur ?

Tu la connait j'suis sur ;)

Donc utilise la :)

^^
Titre: Re : créer un poste avec une barrière
Posté par: » Lukubi™ le 04 Novembre 2008, 14:56:19
tien je sui sur que tu n'est meme pa aler voir les tutos http://www.gtaonline.fr/forums/index.php/topic,4289.0.html
Titre: Re : créer un poste avec une barrière
Posté par: Ssk le 04 Novembre 2008, 15:31:03
T as vu ca sur delta city ? C est moi qui l as creer et c est tres simple a faire.mais la je peut pas te l ecrire je suis pas sur mon pc et je l aurais pas tout de suite :'(
Titre: Re : créer un poste avec une barrière
Posté par: alex0405 le 04 Novembre 2008, 17:16:32
Oui je l'ai vu sur delta.

Cordialement,
Alex0405
Titre: Re : créer un poste avec une barrière
Posté par: Ssk le 05 Novembre 2008, 17:39:16
voila le bout de code mais pour que la barriere monte tu trouveras tout seul :)


new poste;
new barre;
new postedeja = 0;


ca dans onplayercommandtext

   if(strcmp("/poste",cmdtext, true) == 0 || strcmp(cmdtext, "/po", true)==0) // nom cmd
   {
   if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 ||PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 )
   {
   if (PlayerInfo[playerid][pRank] < 5)
   {
   SendClientMessage(playerid, COLOR_GREY, "Vous devez être au moins rang 5!");
   return 1;
   }
   else if ((postedeja == 1))
    {
    SendClientMessage(playerid,COLOR_GREY,"Il y a deja un poste de police");
   return 1;
   }
   new Float:X, Float:Y, Float:Z, Float:A;
   new Float:X1, Float:Y1, Float:Z1, Float:A1;
   GetPlayerFacingAngle(playerid,A);
   GetPlayerPos(playerid, X, Y, Z);
   poste = CreateObject(967,X,Y,Z-1, 0.0000, 0.0000, A+90);
   GetPlayerFacingAngle(playerid,A1);
   GetPlayerPos(playerid, X1, Y1, Z1);
   barre = CreateObject(968,X1,Y1,Z1, 0.0000, 90.0000, A1);
   postedeja = 1;
   SendClientMessage(playerid,COLOR_INDIGO,"Faites /postop pour retirer le poste de police");
   }
   else
   {
   SendClientMessage(playerid,COLOR_WHITE," Tu n' est pas des force de l' ordre ");
   return 1;
   }
   return 1;
   }

   if(strcmp("/postestop",cmdtext, true) == 0 || strcmp(cmdtext, "/postop", true)==0) // nom cmd
   {
   if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 ||PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 )
   {
   if (PlayerInfo[playerid][pRank] < 5)
   {
   SendClientMessage(playerid, COLOR_GREY, "Vous devez être au moins rang 5!");
   return 1;
   }
   postedeja = 0;
   DestroyObject(poste);
   DestroyObject(barre);
   }
   else if (PlayerInfo[playerid][pAdmin] >= 1336)
   {
   postedeja = 0;
   DestroyObject(poste);
   DestroyObject(barre);
   }
   else
   {
   SendClientMessage(playerid,COLOR_WHITE," Tu n' est pas des force de l' ordre ");
   }
   return 1;
   }


( j ai laisser les truc si tui fais un Rpg )


puis ca dans ongamemodeinit
   postedeja = 0;
Titre: Re : créer un poste avec une barrière
Posté par: alex0405 le 05 Novembre 2008, 17:53:52
okay merci a toi !
Titre: Re : créer un poste avec une barrière
Posté par: » Lukubi™ le 06 Novembre 2008, 20:11:04
pour que la bariere monte regardse le tuto que je t'ai passer plus haut  ;)
Titre: Re : créer un poste avec une barrière
Posté par: S!m le 07 Novembre 2008, 05:57:33
Salut,

jevoudrais juste dire en passant, que la commande pourrait être légèrement simplifier, il y a un GetPlayerPos et un GetPlayerFacgin Angle de trop etc...
   if(strcmp("/poste",cmdtext, true) == 0 || strcmp(cmdtext, "/po", true)==0) // nom cmd
   {
   if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 ||PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 )
   {
   if (PlayerInfo[playerid][pRank] < 5)
   {
   SendClientMessage(playerid, COLOR_GREY, "Vous devez être au moins rang 5!");
   return 1;
   }
   else if ((postedeja == 1))
    {
    SendClientMessage(playerid,COLOR_GREY,"Il y a deja un poste de police");
   return 1;
   }
   new Float:X, Float:Y, Float:Z, Float:A;
   GetPlayerFacingAngle(playerid,A);
   GetPlayerPos(playerid, X, Y, Z);
   poste = CreateObject(967,X,Y,Z-1, 0.0000, 0.0000, A+90);
   barre = CreateObject(968,X,Y,Z, 0.0000, 90.0000, A);
   postedeja = 1;
   SendClientMessage(playerid,COLOR_INDIGO,"Faites /postop pour retirer le poste de police");
   }
   else
   {
   SendClientMessage(playerid,COLOR_WHITE," Tu n' est pas des force de l' ordre ");
   return 1;
   }
   return 1;
   }

   if(strcmp("/postestop",cmdtext, true) == 0 || strcmp(cmdtext, "/postop", true)==0) // nom cmd
   {
   if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 ||PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 )
   {
   if (PlayerInfo[playerid][pRank] < 5)
   {
   SendClientMessage(playerid, COLOR_GREY, "Vous devez être au moins rang 5!");
   return 1;
   }
   if(!postedeja)return SendClientmessage(playerid,COLOR_GREY,"Il n'y a pas de poste créé!");
   postedeja = 0;
   DestroyObject(poste);
   DestroyObject(barre);
   }
   else if (PlayerInfo[playerid][pAdmin] >= 1336)
   {
   if(!postedeja)return SendClientmessage(playerid,COLOR_GREY,"Il n'y a pas de poste créé!");
   postedeja = 0;
   DestroyObject(poste);
   DestroyObject(barre);
   }
   else
   {
   SendClientMessage(playerid,COLOR_WHITE," Tu n' est pas des force de l' ordre ");
   }
   return 1;
   }

vraiment une très belle commande sasuke78200, tu fais du bon boulot....

++Sim++
Titre: Re : créer un poste avec une barrière
Posté par: Ssk le 07 Novembre 2008, 08:16:23
Merci Sim !

Et pour ouvrir la barriere utiliser le SetObjectRot() mais pour que ca s ouvre Rp utilise un timer qui monte la barriere de +1 tout les 20 centieme jusqu a 90 :)