GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: R@f le 24 Juin 2007, 17:29:39
-
boujour tout le monde,
sa fait 2 mois que j ai plus scripté donc j ai oublier quelques truc, j aimerai bien faire un téléport avec véhicule mais il y a trop d erreurs après. Est-ce que quelqu un pourrai m aider SVP
else if(strcmp(cmdtext, "/drift", true)==0){
if(IsPlayerInAnyVehicule(playerid)){
new Float:X;
new Float:Y;
new Float:Z;
new VehiculeID;
GetPlayerPos(playerid, X, Y, Z);
VehiculeID = GetPlayerVehiculeID(playerid);
SetVehiculePos(playerid, -2391.5022,-588.6610,132.7190);
} else {
new Float:X;
new Float:Y;
new Float:Z;
new VehiculeID;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, -2391.5022,-588.6610,132.7190);
GameTextForPlayer(playerid, "~g~un petit mountain drift ?", 3000, 3);
return 1;
}
merci d avance
-
Essaies ça :
if (strcmp(cmdtext, "/drift", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
RemovePlayerFromVehicle(playerid);
SetPlayerPos(-2391.5022,-588.6610,132.7190);
SetVehiclePos(-2391.5022,-588.6610,132.7190);
GameTextForPlayer(playerid,"~g~un petit mountain drift ?", 3000, 3);
}
else
{
SetPlayerPos(playerid, -2391.5022,-588.6610,132.7190);
GameTextForPlayer(playerid,"~g~un petit mountain drift ?", 3000, 3);
}
return 1;
}
-
Salut
Cliss permet moi de te corriger :D
if (strcmp(cmdtext, "/drift", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
RemovePlayerFromVehicle(playerid);
SetPlayerPos(playerid,-2391.5022,-588.6610,132.7190);
SetVehiclePos(VehicleID,-2391.5022,-588.6610,132.7190);
GameTextForPlayer(playerid,"~g~un petit mountain drift ?", 3000, 3);
}
else
{
SetPlayerPos(playerid, -2391.5022,-588.6610,132.7190);
GameTextForPlayer(playerid,"~g~un petit mountain drift ?", 3000, 3);
}
return 1;
}
-
merci les gars, je vais essayer
-
j ai essayer, sa marche a moitier bien, le véhicule se téléporte avec moi, mais je suis pas dedans ....
-
Oui c'est dû à RemovePlayerFromVehicle. A mon avis avex le code que t'a donné cliss, tu dois te retrouvé en dessou de la voiture ::)
Ce que tu peux faire c'est peut-être modifier légèrement les positions de SetPlayerPos(playerid,-2391.5022,-588.6610,132.7190) comme ca tu te retrouvera à côté de ta voiture.
Sinon tu n'as qu'à faire une commande de téléportation basique. Tu te téléportera dans ta voiture.
-
Solution plus jolie :
1 - Tu enleves la ligne RemovePlayerFromVehicle qui ne sert à rien.
2 - Après la ligne SetVehiclePos, tu ajoutes la ligne suivante :
PutPlayerInVehicle (playerid, VehicleID, 0);
Note : Dans le cas où le joueur est passager du véhicule, il deviendra conducteur (et le conducteur, je sais pas ce qu'il devient)
Je crois pas qu'il soit possible (facilement) de savoir si un joueur est conducteur ou passager.
-
merci beaucoup les gars
-
omfg la commande RemovePlayerFromVehicule elle sert a faire sortir le gars de la voiture -> Sinon bug de SA-MP (peut étre plus avec la 0.2.1)
Le perso aparait correctement et même si il était dessous -> random.
-
Tout d'abord Salut all :).
Bon euh pourquoi utiliser un RemovePlayerFromVehicle ? sa sert a rien pour teleporter le gars et sa voiture, bon je vous corrige sa en utilisant un bout de mon script de stunt :
if(strcmp(cmdtext,"/drift",true)==0){ // /drift
new State=GetPlayerState(playerid);
if(IsPlayerInAnyVehicle(playerid)) {
if(State==PLAYER_STATE_DRIVER) {
new vid;
vid=GetPlayerVehicleID(playerid);
LinkVehicleToInterior(vid,0);
SetVehiclePos(vid,-2391.5022,-588.6610,132.7190);
RemovePlayerFromVehicle(playerid);
GameTextForPlayer(playerid,"~w~Bon Drift",3000,5);
} else if(State==PLAYER_STATE_PASSENGER) {
GameTextForPlayer(playerid,"Impossible si vous etes passager",3000,5);
}
} else {
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-2391.5022,-588.6610,132.7190);
GameTextForPlayer(playerid,"~w~Bon Drift",3000,5);
}
return 1;
}
Voila j'espère que sa pourra vous aider, sur ce au revoir.
At1x