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

Titre: petit prob de téléportation
Posté 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
Titre: Re : petit prob de téléportation
Posté par: Cliss le 24 Juin 2007, 20:16:08
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;
}
Titre: Re : petit prob de téléportation
Posté par: GuiGui le 24 Juin 2007, 20:51:08
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;
}
Titre: Re : petit prob de téléportation
Posté par: R@f le 25 Juin 2007, 16:43:30
merci les gars, je vais essayer
Titre: Re : petit prob de téléportation
Posté par: R@f le 25 Juin 2007, 17:58:53
j ai essayer, sa marche a moitier bien, le véhicule se téléporte avec moi, mais je suis pas dedans ....
Titre: Re : petit prob de téléportation
Posté par: GuiGui le 25 Juin 2007, 18:56:16
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.
Titre: Re : petit prob de téléportation
Posté par: Syg le 26 Juin 2007, 15:37:22
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.
Titre: Re : petit prob de téléportation
Posté par: R@f le 26 Juin 2007, 16:02:22
merci beaucoup les gars
Titre: Re : petit prob de téléportation
Posté par: Cliss le 26 Juin 2007, 23:26:16
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.
Titre: Re : petit prob de téléportation
Posté par: At1x le 27 Juin 2007, 15:49:28
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