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

Titre: Mauvais code ?
Posté 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 :

Citer
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.
Titre: Re : Mauvais code ?
Posté par: Cliss le 26 Août 2007, 12:21:04
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)
Titre: Re : Mauvais code ?
Posté par: Gr0und3r le 26 Août 2007, 12:28:08
a la place met sa!:
Citer
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;
}
Titre: Re : Mauvais code ?
Posté par: Cliss le 26 Août 2007, 12:30:56
Le probléme avec ca c'est que les téléportations bugs avec la nrg (et peut etre d'autres véhicules).
Titre: Re : Re : Mauvais code ?
Posté par: Gr0und3r le 26 Août 2007, 12:52:53
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
Titre: Re : Mauvais code ?
Posté par: Gr0und3r le 26 Août 2007, 12:55:26
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?
Titre: Re : Mauvais code ?
Posté par: Cliss le 26 Août 2007, 13:39:25
Je montre un exemple d'une mes téléportations (le schéma en tout cas),elle n'est pas parfaite mais bon :

Citer
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)
Titre: Re : Mauvais code ?
Posté par: Gr0und3r le 26 Août 2007, 13:53:02
sa ne se dit pas PLAYER_STATE_PASSENGER?
Titre: Re : Re : Mauvais code ?
Posté par: NatiVe™ le 26 Août 2007, 14:00:44
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.
Titre: Re : Mauvais code ?
Posté par: Cliss le 26 Août 2007, 15:35:17
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)
Titre: Re : Mauvais code ?
Posté par: NatiVe™ le 26 Août 2007, 17:01:12
Haaaaaaaaa lol sisi c'est bon mais j'avais lu vite fait comme sa mais sisi t'inquiete je sais en faire ;)

AK.
Titre: Re : Mauvais code ?
Posté par: Gr0und3r le 26 Août 2007, 17:08:53
sa sere a koi random a et b?  ???
Titre: Re : Mauvais code ?
Posté par: Cliss le 26 Août 2007, 18:42:24
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.
Titre: Re : Mauvais code ?
Posté par: Syg le 26 Août 2007, 22:24:51
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