GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 31 Octobre 2009, 16:13:37
-
Est il possible de faire un style de PlayeToPoint mais pour les voiture? Genre si un jour tape /sortir, que si la voitre 5 est près du point x,y,z elle respawn. Merci
-
Salut,
oui c'est possible, il suffit de prendre un PlayerToPoint et remplacer le GetPlayerPos par GetVehiclePos
++Sim++
-
Je n'ai pas compris :/
-
Salut,
trouve un code PlayerToPoint et regarde le,
tu verra que la fonction récupère la position du joueur, il te suffit alors de remplacer la fonction pour récupérer la position d'un joueur par celle pour récupérer la position d'un véhicule
++Sim++
-
Salut.
Est il possible de faire un style de PlayeToPoint mais pour les voiture? Genre si un jour tape /sortir, que si la voitre 5 est près du point x,y,z elle respawn. Merci
Moi par contre, c'est ça que je n'arrive pas à comprendre. Pourrait tu expliquer plus clairement se que tu souhaites STP ?
-
Je fait genre ceci
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
====> forward CarToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z); ?
-
et ?? Sim ta donner la reponse
-
Mais j'ai pas bien compris
-
PlayerToPoint récupère les position du joueur, remplace les fonction qui récupère les position du joueur par ceux qui récupère la position du véhicule.
oublie pas qu'il ne faut pas utiliser playerid mais vehicleid
++
-
Ok Merci
EDIT:
Alors j'ai ajouter ceci
forward VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z);
puis
....cmd /exit...
if(IsAEssenceCar(carid))
{
if (carid != 0)
{
SetVehicleToRespawn(carid);
}
if(EssencePickup[playerid][0] >= 1 && EssencePickup[playerid][0] <= 25)
{
EssencePickup[playerid][0]--;
}
if(VehicleToPoint(10, 3, -50.0,-1141.7,2.0))
{
SetVehicleToRespawn(3);
}
if(VehicleToPoint(10, 4, -50.0,-1141.7,2.0))
{
SetVehicleToRespawn(4);
}
TogglePlayerControllable(playerid, 1);
RemovePlayerFromVehicle(playerid);
EssenceVar[playerid] = 0;
DisablePlayerCheckpoint(playerid);
}
et
public VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(vehicleid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetVehiclePos(vehicleid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
Mais ça ne fonctionne pas, les vehicule tout pres ne respawn pas ( véhicule 3 et 4)
-
Petit indice...
if(IsPlayerConnected(vehicleid))
++Sim++
-
Petit indice...
if(IsPlayerConnected(vehicleid))
++Sim++
En effet avec mûr reflection un véhicule ne peux pas être connecté xD.
Je le suprime? je le remplace?
-
Salut,
la suppression me semble la solution
si jamais tu désire laissé un test afin de vérifeir si le véhicule est valide, tu peut toujours en faire un test GetVehicleModel (qui retourne plus de 400 si le véhicule est valide)
++Sim++
-
Ok Merci