GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: .:: Miguel .:: le 18 Septembre 2011, 20:05:48
-
Salut,
je créé mon RP donc j'ai mappé sur l'eau une grande prison elle marche bien mais j'ai un bug niveau porte..
Les barrière
<?php
Prison1 = CreateObject(989, 3072.402588, -1965.360107, 11.784605, 0.0000, 0.0000, 195.0926);
Prison2 = CreateObject(985, 3278.235596, -1959.720581, 11.702776, 0.0000, 0.0000, 90.1365);
Prison3 = CreateObject(986, 3278.365479, -1967.658569, 11.702776, 0.0000, 0.0000, 91.9597);
Prison4 = CreateObject(971, 3371.018555, -1986.429199, 11.088135, 0.0000, 0.0000, 299.8394);
La cmds (tous les porte de la police mais vous verrait bien le prison tous sa)
<?php
if(!strcmp(cmdtext,"/ouvrirgrille", true)||!strcmp(cmd, "/gate", true)||!strcmp(cmd, "/og", true))
{
if(grilleouverte[playerid] == 0)
{
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
{
if (PlayerToPoint(15, playerid,1589.053344,-1638.123168,14.122960))
{
MoveObject(pdgate1,1599.053344,-1638.123168,14.122960, 0.8);
SetTimer("GateClose", 12000, 0);
SetTimerEx("OuvertureGrille", 25000, 0, "i", playerid);
SendClientMessage(playerid, COLOR_BLUE,"Le garage vient de s'ouvrir il se refermera dans 7 secondes.");
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre le garage.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
PlayerPlaySound(playerid, 1153, 1589.053344,-1638.123168,14.122960);
}
else if (PlayerToPoint(15, playerid,3072.8181,-1964.8829,10.9638))
{
MoveObject(Prison1,3072.402588, -1965.360107, 11.784605,3.5);
SetTimerEx("OuvertureGrille", 13000, 0, "i", playerid);
SendClientMessage(playerid, COLOR_BLUE,"Le garage vient de s'ouvrir il ce fermera dans 6 secondes.");
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre le garage.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else if (PlayerToPoint(15, playerid,3279.2488,-1964.1652,10.9682))
{
MoveObject(Prison1,3072.402588, -1965.360107, 11.784605,3.5);
SetTimerEx("OuvertureGrille", 13000, 0, "i", playerid);
SendClientMessage(playerid, COLOR_BLUE,"Le garage vient de s'ouvrir il ce fermera dans 6 secondes.");
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre le garage.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else if (PlayerToPoint(15, playerid,3279.2488,-1964.1652,10.9682))
{
MoveObject(Prison2,3278.235596, -1959.720581, 11.702776,2);
MoveObject(Prison3,3278.365479, -1967.658569, 11.702776,2);
SetTimerEx("OuvertureGrille", 13000, 0, "i", playerid);
SendClientMessage(playerid, COLOR_BLUE,"Le garage vient de s'ouvrir il ce fermera dans 6 secondes.");
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre le garage.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else if (PlayerToPoint(15, playerid,1534.9020,-1451.5979,14.4882))
{
MoveObject(fbigate,1534.9020,-1451.5979,20.4882, 1.5);
SetTimer("GateClose3", 7000, 0);
SetTimerEx("OuvertureGrille", 15000, 0, "i", playerid);
SendClientMessage(playerid, COLOR_BLUE,"La grille du FBI est ouverte, elle se fermera dans 7 secondes.");
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre la grille.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else if (PlayerToPoint(15, playerid,1643.3379,-1714.9338,15.3067))
{
MoveObject(hspdgate,1643.3379,-1705.9338,14.4067, 1.5);
SetTimer("GateClose4", 7000, 0);
SetTimerEx("OuvertureGrille", 15000, 0, "i", playerid);
SendClientMessage(playerid, COLOR_BLUE,"La grille du FBI est ouverte, elle se fermera dans 7 secondes.");
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre la grille.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else { SendClientMessage(playerid, COLOR_GREY,"Vous êtes trop loin de la grille."); }
}
else if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
{
if (PlayerToPoint(15, playerid,1246.0033,-767.3727,91.1473))
{
MoveObject(lucianogate,1256.2033,-767.3727,91.1473, 2.2);
SetTimer("GateClose6", 7000, 0);
SetTimerEx("OuvertureGrille", 15000, 0, "i", playerid);
GetPlayerName(playerid, sendername, sizeof(sendername));
grilleouverte[playerid] = 0;
format(string, sizeof(string), " %s prend sa télécommande et ouvre la grille du Manoir Vercetti.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else { SendClientMessage(playerid, COLOR_GREY,"Vous êtes trop loin de la grille."); }
}
else
{
//SendClientMessage(playerid, COLOR_GREY,"Vous n'avez pas de télécommande.");
}
}
else
{
SendClientMessage(playerid, COLOR_RED,"Attendez que la grille soit fermée s'il vous plait.");
}
return 1;
}
-
Salut, c'est cool de donner le code mais si tu expliques pas le problème on ne saura pas le trouver ;)
PS : Les codes de plus de 20 lignes sont à mettre sur Pastebin.
-
Le problème sais que rien bouge :/
-
:lmao
Oh mon dieu tu as du réfléchir beaucoup là !
Tu déplace la porte a l'endroit où elle est déjà ! Normal que ça bouge pas
-
On peux m'aidez niveau position pour la faire bougé plz ?
-
Sur MTA tu déplaces la grille où tu veux qu'elle soit déplacée et tu prends la pos, pas très compliquer...
-
Je te fais un exemple :
<?php
new Porte; // Variable qui va etre assignée a l'objet
new bool:porteouverte = false; // Booleen qui dit si la porte est ouverte ( ou pas )
<?php
Porte = CreateObject(ID, posX , posY , posZ , AngleRX , AngleRY , AngleRZ ); // Là on créé la porte avec les coordonnées de la porte fermée
<?php
if(!strcmp(cmdtext,"/ouvrir", true))
{
if(!porteouverte) // Si la porte est fermée on l'ouvre
{
MoveObject(Porte, posX2 , posY2 , posZ2n VITESSE ); // Là les coordonnées de la porte ouverte
SetTimer("PorteTimer", TEMPS, false); // On lance un timer qui va fermer la porte
porteouverte = true; // On dit que la porte est maintenant ouverte
}
else // Si elle est ouverte on engueule le joueur
{
SendClientMessage(playerid, COULEUR, "Porte deja ouverte abruti !"); // C'est pas tres malin de vouloir ouvrir une porte fermée
}
return 1;
}
<?php
PorteTimer() // A la fin du temps defini on ferme la porte !
{
MoveObject(Porte, posX , posY , posZ, VITESSE); // Là on ferme la porte aux coordonnées de la porte fermée
porteouverte = false; // On dit que la porte est fermée
}
Spiirou
++
-
Ouii merci spiroux sa ma bien aidez mais le problème j'ai pu MTA il marche pu donc :/
-
Sans MTA tu vas en chier, soit tu essaies plein de fois jusqu'a trouver la bonne position. Soit tu reinstalle MTA, ce qui est preferable !
-
MTA bug sur mon new PC s'il te plait si je te met dans les credits tu pourrait me le faire ? :-*
-
Salut,
Il me semble que ces barrière peuvent aussi bugger par rapport au Timer, il fais toujours appel au même timer pour chaque barrière non ?