GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 16 Février 2008, 09:22:22

Titre: Si il rentre dans une zone....
Posté par: ApocKalipsS le 16 Février 2008, 09:22:22
Bonjour,

J'ai éssayer de faire un script qui permet que quand un joueur arrive dans une zone, il se passe un MoveObject.

Voila mon script :

stock IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y)
{
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z); // On récupére la position du joueur
if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) { // Si le joueur est dans les cordonnées à définir
return 1;
}

if (IsPlayerInArea(playerid, 2033.671, 1984.234, -1429.206, -1468.684)) {
MoveObject(grille1,1997.181030, -1432.102417, 12.602812, 3);
MoveObject(grille2,1997.145264, -1432.873413, 12.605568, 2);
MoveObject(grille3,2015.734497, -1450.748877, 12.729334, 2);
MoveObject(grille4,2016.293335, -1450.848877, 12.729334, 3);
SetTimer("close", 7000, 0);
}
return 0;
}

Mais... ca marche pas !
Aidez-moi S.V.P !
Titre: Re : Si il rentre dans une zone....
Posté par: Sismix84 le 16 Février 2008, 12:51:37
Tu veut dire que les portes ne s'ouvrent pas ?
Titre: Re : Si il rentre dans une zone....
Posté par: R@f le 16 Février 2008, 13:19:15
essaye avec return 1;  ;)

++
R@f
Titre: Re : Si il rentre dans une zone....
Posté par: ApocKalipsS le 16 Février 2008, 18:56:36
Marche pas ^^!
Titre: Re : Si il rentre dans une zone....
Posté par: Sismix84 le 18 Février 2008, 19:09:28
Correction :

En haut de ton script :

Code: (cpp) [Sélectionner]
forward TimerGrille(playerid);
Dans OnGameModeInit() :

Code: (cpp) [Sélectionner]
SetTimer("TimerGrille", 1000, 1);
Quelque part :

Code: (cpp) [Sélectionner]
public TimerGrille(playerid) {
if (IsPlayerInArea(playerid, 2033.671, 1984.234, -1429.206, -1468.684)) {
MoveObject(grille1,1997.181030, -1432.102417, 12.602812, 3);
MoveObject(grille2,1997.145264, -1432.873413, 12.605568, 2);
MoveObject(grille3,2015.734497, -1450.748877, 12.729334, 2);
MoveObject(grille4,2016.293335, -1450.848877, 12.729334, 3);
SetTimer("close", 7000, 0);
}
return 1;
}

En fait tu devais appeler ta fonction avec un Timer.

Normalement ça devrais marcher, essai ;)
Titre: Re : Si il rentre dans une zone....
Posté par: terry_weed le 23 Septembre 2008, 09:21:59
bonjours comment faire en sorte que cette commande ne s'exécute que si c'est un menbre de la faction de la police
PS: j'ai le godfather
Titre: Re : Re : Si il rentre dans une zone....
Posté par: cristab le 23 Septembre 2008, 10:29:34
sa sa peu t'inspirer moi je m'inspire de sa

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/porte", cmdtext, true) == 0)
{
if(PlayerToPoint(15, playerid, 96.669350, 1920.033936, 18.855873))
{
if(GetPlayerSkin(playerid) == 287)
{
if(a51gstatus == 1)
{
MoveObject(a51g, 96.669350, 1925.953735, 18.855873, 4);
SendClientMessage(playerid, COLOR_LIGHTGREEN, "* Area51 porte ouvert");
a51gstatus = 0;
}
else if(a51gstatus == 0)
{
MoveObject(a51g, 96.669350, 1920.033936, 18.855873, 4);
SendClientMessage(playerid, COLOR_LIGHTRED, "* Area51 porte fermer");
a51gstatus = 1;
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not a Soldier");
}
}
return 1;
}