GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: NatiVe™ le 26 Août 2007, 12:13:55
-
Bonjour !
J'ai voulu changer mes commande de teleportations par des autres qui était plus simple mais...
Mon probleme est que pour ma teleportations a San Fierro j'ai mit differente position pour le player avec la voiture et le player sans la voiture. Quand je fait la commande a pied, il se pose a l'endroit de du player normal, mais quand je fait la commande en voiture le player se pose a l'endroit du player et la voiture a l'endroit de la voiture :s :s ...
Mon code est :
if(strcmp(cmdtext, "/sf", true) == 0) {
SetPlayerPos(playerid,-2032.4740,173.1223,28.8359);
GameTextForPlayer(playerid,"~g~San Fierro",2000,5);
if(IsPlayerInAnyVehicle(playerid)) {
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID,-1989.8434,189.4374,27.0882);
}
return 1;
}
Ou est l'erreur ?
Merci de vos future reponse.
AK.
-
PutPlayerInVehicle(playerid, Vehicleid, seatid);
Interdit la commande aux passagers avant. Ou fais des conditions du genre if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER). (en rapport avec le seatid)
-
a la place met sa!:
if(strcmp(cmdtext, "/sf", true) == 0) {
SetPlayerPos(playerid,-2032.4740,173.1223,28.8359);
GameTextForPlayer(playerid,"~g~San Fierro",2000,5);
}else if(IsPlayerInAnyVehicle(playerid)) {
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID,-1989.8434,189.4374,27.0882);
}
return 1;
}
-
Le probléme avec ca c'est que les téléportations bugs avec la nrg (et peut etre d'autres véhicules).
-
Le probléme avec ca c'est que les téléportations bugs avec la nrg (et peut etre d'autres véhicules).
Cher moi sa fonctionne tres bien mais je vais quand meme verifier! :happy
-
Je ne l'avais pas remarquer mais sa me fais mejectede ma moto!
Donc ce que je dois fais c'est un PutPlayerInVehicle(playerid, Vehicleid, seatid); mais c'est quoi seatid? ???
ou sinon comment faire pour que sa ne beug pas?
-
Je montre un exemple d'une mes téléportations (le schéma en tout cas),elle n'est pas parfaite mais bon :
dcmd_Teleportation(playerid,params[])
{
new VehID;
new a;
new b;
a=random(10);
b=random(10);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) // Si c'est le pilote
{
VehID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehID,1879.4806+a,-1385.1218+b,13.5734);
RemovePlayerFromVehicle(playerid);
SetPlayerPos(playerid,1879.4806+a,-1385.1218+b,13.5734);
PutPlayerInVehicle(playerid,VehID,0); // Je le mets a sa place
return 1;
}
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) // Si ce n'est pas le pilote
{
VehID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehID,1879.4806+a,-1385.1218+b,13.5734);
RemovePlayerFromVehicle(playerid);
SetPlayerPos(playerid,1879.4806+a,-1385.1218+b,13.5734);
PutPlayerInVehicle(playerid,VehID,1); // Je le mets passager
etc...
J'attends l'avis d'un expert (Syg? :happy)
-
sa ne se dit pas PLAYER_STATE_PASSENGER?
-
Je montre un exemple d'une mes téléportations (le schéma en tout cas),elle n'est pas parfaite mais bon :
J'attends l'avis d'un expert (Syg? :happy)
Pour celle la tu le met ou le /*sf ?
AK.
-
C'est un exemple. Si tu sais pas faire de dcmd c'est pas grave. Lis et déduis (a l'interieur des accolades). A toi de te la faire. (un conseil copies/colles pas j'ai fais une erreur volontaire)
-
Haaaaaaaaa lol sisi c'est bon mais j'avais lu vite fait comme sa mais sisi t'inquiete je sais en faire ;)
AK.
-
sa sere a koi random a et b? ???
-
Tu peux le faire qu'avec "a" mais pour la suite (ma suite) j'ai eu besoin de "b". Ca evite que si deux personnes se teleportent en même temps elle se tombent dessus.
-
Je crois que c'est tout simple Arsenik :
Tu fais un SetPlayerPos (qui téléporte le joueur quelque part SANS son vehicule).
Ensuite le test sur IsPlayerInAnyVehicle est forcément faux puisque le joueur vient d'être téléporté.
Donc, déplaces le SetPlayerpos.
Sinon, je suis en train de me faire une fonction de téléportation (avec téléport des passagers) mais y'a encore un problème pour le téléport des passagers donc je la posterais plus tard.
++
Syg