GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Azz45 le 19 Octobre 2008, 19:20:08

Titre: == Souci de Vehicule ==
Posté par: Azz45 le 19 Octobre 2008, 19:20:08
Salut ,  mes chéres compatriotes

Je vais vous expliquer mon souci :

Quand je me met Chef du FBI ou autres et que je monte dans une voiture qui appartient au FBI

sa me dit Vous n'avez pas les clefs comment faire pour que chaque faction es ces voitures et que si nous sommes membre ou leader sa nous mettent pas le ' Vous n'avez pas les clefs de ce véhicule '


++ My
Titre: Re : == Souci de Vehicule ==
Posté par: latinos95190 le 19 Octobre 2008, 21:07:52
montre ton script lol (je débute mais sur sa on ma aider donc j'aide)
Titre: Re : == Souci de Vehicule ==
Posté par: S!m le 19 Octobre 2008, 21:15:45
salut,

pour associer chaque véhicule a une faction, tu récupère leur ID (des véhicules) et puis cherche le code ou il y a le truc des clefs
on récupère les id avec des array (tu verra pourquoi)

alors tu déclare les variables/constantes
#define NBVEH_FBI 100 //le nombre dew véhicules du FBI
new VehicleFBI[NBVEH_FBI];
puis dans OnGameModeInit
VehicleFBI[0] = AddStaticVehicle(543,345.34,345.676,74.46534,123,-1,-1);
VehicleFBI[1] = AddStaticVehicle(543,3.34,87.454,74.46534,123,-1,-1);
VehicleFBI[2] = AddStaticVehicle(543,3245.34,644.676,74.46534,123,-1,-1);
VehicleFBI[3] = AddStaticVehicle(543,1345.34,35.676,74.46534,123,-1,-1);
....

puis tu fais des test du genre (ça devrait être dans OnPlayerEnterVehicle ou OnPlayerStateChange:   

if(gteam[playerid] = TEAM_FBI){
    for(new i; i < NBVEH_FBI; i++){
         if(vehicleid == VehiculeFBI[i])return 1;
    }
}

et puis je crois que c'est a peu près ça.... ;)

++Sim++
Titre: Re : == Souci de Vehicule ==
Posté par: Dark_revan le 19 Octobre 2008, 21:36:17
y a encore beaucoup plus simple avec les carid dans les newcar tu recreer un carid c'est a dire IsaChefFBI
tu definit l'id de ton vehicle cad laligne ou ilest dans tes addstaticvehcileex.
Une fois fait sa tu fait if( newcar == ton carid de ta voitrue)
et en dessous tu met if !playerinfo[playerid][pleader] = IDFBI )
et tu met remove player pour que si il est pas chef du fbi il soit ejecter.
Titre: Re : == Souci de Vehicule ==
Posté par: S!m le 19 Octobre 2008, 21:57:11
je trouve pas ca plus simple,

ta reprit exactement la meme chose mais sans les array pour les voitures de la faction, tu remarquera que dans son cas, il y a plus d'un véhicule par faction... je ne voit pas le fbi avec un seul camion...

++Sim++
Titre: Re : == Souci de Vehicule ==
Posté par: Azz45 le 20 Octobre 2008, 12:42:56
Merci de vos aide je vais essayé sa  :lock
Titre: Re : == Souci de Vehicule ==
Posté par: Dark_revan le 21 Octobre 2008, 22:23:44
hein je tes pas compris justement les carid et pas mal la dessus tu peut designer plusieur vehicule perso je marche avec sa et j'ai pas mal de vehicule de faction donc tu peut facilment avoir les carid et avoir plusieur voiture par faction.
Titre: Re : == Souci de Vehicule ==
Posté par: S!m le 22 Octobre 2008, 01:33:47
ouais,

mais quand tu arrive pour faire le test sur tous les véhicules, il faut que tu les nomme tous.... genre


if(vehicleid == vehicleFbi1 || vehicleid == vehicleFbi2 || vehicleid == vehicleFbi3 || vehicleid == vehicleFbi4 etc....


tandis qu'avec un array, tu fais une simple boucle...


++Sim++
Titre: Re : == Souci de Vehicule ==
Posté par: Dark_revan le 22 Octobre 2008, 11:10:54
non pas besoin tu as un public carid comme isacop
public IsACopCar(carid)
{
if((carid == 1 || carid == 2 || carid == 3 || carid == 4))
{
return 1;
}
return 0;
}
ensuite pour le remove player.
       if(IsACopCar(newcar))
{
    if(IsACop(playerid)) { }// etant donner playerinfo pmember,pleader
    else { RemovePlayerFromVehicle(playerid); }
          }

et si on veut on peut rajouter un texte.
Et si ses pas definit vous faite sa par exemple pour un gang.
                if(newcar == 18 || newcar == 19 || newcar == 33 || newcar == 34)// les newcar etant les ligne de vos voiture comme carid.
{
    if(PlayerInfo[playerid][pMember] == 10||PlayerInfo[playerid][pLeader] == 10) { }
    else
{
        SendClientMessage(playerid,COLOR_GREY,"   Vous n'etes pas //////  !");
        RemovePlayerFromVehicle(playerid);
    }
}

Donc moi je préfère carid bref c'est mon opinion je respecte la tienne  :).

++