GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: kev375 le 04 Mars 2009, 18:19:32
-
Bonjour bonjour, alors j'ai un petit problème, en fait je veux qu'il n'y ait que la team ARMY qui puisse entrer dans les hydra, mais voila je ne sais pas comment définir l'ensemble de tout les hydra ( 520 ).
J'ai essayé ceci :
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
{
if ( vehicleid == 520 && gTeam[playerid] == TEAM_ARMY ) {
SetVehicleParamsForPlayer(vehicleid,playerid,0,0);
}else{
SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
}
}
return 1;
}
Voila en esperant avoir de l'aide ( Je me suis endormi devant mon pc tellement je ne trouvais pas de solution ::) )
-
Il faut que tu mette:
Hydra = AddStaticVehicle(520, .....);
en ajoutant bien evidement le new hydra en haut.
Puis dans public OnPlayerStateChange (playerid, newstate, oldstate)
Tu met:
if (newstate == 2)// test si le joueur s'assoit a la place du conducteur .
{
new CarID = GetPlayerVehicleID(playerid);
if (CarID == Hydra && gTeam[playerid] == TEAM_ARMY)
{
}
else
{
RemovePlayerFromVehicle(playerid);
}
return 1;
}
++
nikko
-
Merci beaucoup :)
Ca marcheeeee ! :bangin :bangin :bangin
-
ya de de quoi ;)
j'utilise ce systeme pour des mini mission :) donc je sais que ca marche :)
++
nikko
-
Je te conseille d'utiliser GetVehicleModel(), RemovePlayerFromVehicle() et la callback OnPlayerStateChange (car la callback OnPlayerEnterVehicle est appeler a chaque fois que tu apuie sur la touche pour entrer dans un vehicule )
Voila se que sa donnerai
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) // Si il est conducteur
{
new vehicleid = GetPlayerVehicleID(playerid);
if (GetVehicleModel(vehicleid) == 520 && gTeam[playerid] == TEAM_ARMY )
{
SendClientMessage(playerid,COLOR,"Bienvenu dans l'hydra");
}
else
{
SendClientMessage(playerid,COLOR,"Vous ne faite pas partie de la team Army, vous ne pouvez pas utiliser ce vehicule");
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
Nikko a été plus rapide lol mais la methode est diferente mais sa se resemble , avec la methode de nikko tu devra definir une variable pour chaque vehicule army, ma methode tout les hydra seront reservé d'office au army , apres la methode c'est toi qui voit laquel tu prefere selon t'est besoin ;)
-
Erf les autres team sont ejecté de n'importe quel véhicule. :s
Une idée ?
-
Arf oui j'ai mal fait le code voila la correction:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) // Si il est conducteur
{
new vehicleid = GetPlayerVehicleID(playerid);
if (GetVehicleModel(vehicleid) == 520)
{
if(gTeam[playerid] == TEAM_ARMY )
{
SendClientMessage(playerid,COLOR,"Bienvenu dans l'hydra");
}
else
{
SendClientMessage(playerid,COLOR,"Vous ne faite pas partie de la team Army, vous ne pouvez pas utiliser ce vehicule");
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}
-
if (newstate == 2)// test si le joueur s'assoit a la place du conducteur .
{
new CarID = GetPlayerVehicleID(playerid);
if (CarID == Hydra)
{
if (gTeam[playerid] == TEAM_ARMY)
{
}
else
{
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
++
nikko
-
Merci beaucoup je test ça tt de suite ;)
-
if (newstate == 2)// test si le joueur s'assoit a la place du conducteur .
{
new CarID = GetPlayerVehicleID(playerid);
if (CarID == Hydra)
{
if (gTeam[playerid] == TEAM_ARMY)
{
}
else
{
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
++
nikko
nikko, tu devrais éviter autant que possible d'utiliser les chiffres directement de cette façon
1 ) C'est très peu explicite
2 ) la valeur peut-être modifiée dans une future version
3 ) Ce n'est pas plus rapide, les constante sont remplacées par leurs valeurs lors de la compilation
++Sim++
-
ah bah alors prend pas ma solution ^^
++
nikko