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
-
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
-
Sujet abordé plein plein de fois ... RECHERCHE un peu stp avant de poster.
Merci
++
nikko
-
Je viens de faire une recherche et j'ai rien trouver tu as mit quoi comme pour chercher ?
Cordialement,
Alex0405
-
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
-
Sa je savais mais on fait comment pour que la barrière elle spawn devant moi ?
-
Reflechi ;)
Quel fonction sert a recuperer la position du joueur ?
Tu la connait j'suis sur ;)
Donc utilise la :)
^^
-
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
-
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 :'(
-
Oui je l'ai vu sur delta.
Cordialement,
Alex0405
-
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;
-
okay merci a toi !
-
pour que la bariere monte regardse le tuto que je t'ai passer plus haut ;)
-
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++
-
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 :)