GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Brian_Gates le 18 Juillet 2014, 00:15:07

Titre: [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: Brian_Gates le 18 Juillet 2014, 00:15:07
Bonjour ! ça fait un petit moment que je cherche mais je ne trouve pas la solution à mon soucis !
En fait, j'ai fais un script tout bête pour me téléporter à un point sur commande, cependant lorsque je l'utilise, le véhicule dans lequel je suis n'est pas téléporté.

Comment y remédier ?

Merci !

ps: Voici la petite portion de code en question:
Code: (pawn) [Sélectionner]
if(strcmp(cmdtext, "/a51", true) == 0)
    {
SetPlayerPos(playerid,213.5365,1902.3754,18.7197);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Téléporté à la zone 51");
    return 1;
    }
Titre: Re : Téléportation sans perdre son véhicule ?
Posté par: Xartrick le 18 Juillet 2014, 02:00:14
Effectivement, il faut que tu vérifie si le joueur est dans un véhicule (IsPlayerInAnyVehicle (http://wiki.sa-mp.com/wiki/IsPlayerInAnyVehicle)).

Si il n'est pas dans un véhicule : Tu le téléporte simplement avec (
SetPlayerPos (http://wiki.sa-mp.com/wiki/SetPlayerPos)) ;

Si il est dans un véhicule : Tu téléporte le véhicule (
SetVehiclePos (http://wiki.sa-mp.com/wiki/SetVehiclePos)) et tu met le joueur dans le véhicule (PutPlayerInVehicle (http://wiki.sa-mp.com/wiki/PutPlayerInVehicle)).
Titre: Re : Téléportation sans perdre son véhicule ?
Posté par: Brian_Gates le 18 Juillet 2014, 02:30:53
Merci de ta réponse !
J'ai commencé à scripter avant-hier donc ça me semble un peu compliqué, cependant je vais essayer et mettre mon topic en résolu si j'y arrive !

ps: j'en profite pour poser une question: Est-ce que je peux mettre mon mapping dans un filterscript pour rendre mon GM plus lisible ?

EDIT: J'ai réussi ! Je donne le code pour ceux qui ont le même soucis !
Code: (pawn) [Sélectionner]
// TP à l'Area 51
if(strcmp(cmdtext, "/a51", true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
SetPlayerPos(playerid,213.5365,1902.3754,18.7197);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Téléporté à la zone 51");
}
else
{
new vehicle = GetPlayerVehicleID(playerid);
SetVehiclePos(vehicle,213.5365,1902.3754,18.7197);
PutPlayerInVehicle(playerid,vehicle,0);
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"Téléporté à la zone 51");
}
    return 1;
    }
Titre: Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: chneubeul le 19 Juillet 2014, 19:12:21
Salut,

Afin de te facilité la tâche à l'avenir tu peux créer ta propre fonction par exemple : "SetPlayerPosEx".
Cette dernière pourrait checké un ensemble de donnée que tu as besoin voici un exemple.

SetPlayerPosEx(playerid, Float:X, Float:Y, Float:Z, Int=-1, worlid=-1)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
         //SetPlayerPos(... X, Y, Z);
    }
    if(Int != -1) { SetPlayerInterior(playerid, Int); }
    return 1;
}


En espérant t'avoir éclairé un peu :p

A+, Sam.
:cheers:
Titre: Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: Brian_Gates le 19 Juillet 2014, 21:24:22
Salut !

Merci de ta réponse, cependant j'ai pas vraiment compris ce que tu voulais dire :s

D'ailleurs j'en profite pour poser une question, comment créer une commande avec un ou plusieurs arguments (ex: /givemoney ID MONTANT) ?
Titre: Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: Infu le 20 Juillet 2014, 11:17:00
Le mieux (et le plus simple) que je te conseil serait d'utiliser ZCMD + SSCANF. Ces deux includes sont très simples à utiliser ;)
Titre: Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: Brian_Gates le 20 Juillet 2014, 16:40:51
Ok je vais voir ça merci, j'hésitais à les installer parce qu'un ami me les déconseillait !

J'en profite pour demander: en ce moment j'essaie de faire un système de mission du style: le joueur tape /mission, et un Checkpoint assez éloigné de lui apparaît sur la carte, et si il y va il gagne quelques $.

Une idée pour faire ça ?
Merci !
Titre: Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: Infu le 21 Juillet 2014, 00:08:55
Tu définis plusieurs positions dans ton script, ensuite à l'aide un random tu vas créer un checkpoint (SetPlayerCheckpoint de tête) en pensant à donner un "ID" à ton checkpoint pour ensuite l'utiliser dans OnPlayerEnterCheckpoint. En visitant un peu le wiki SA:MP tu devrais t'en sortir ;)
Titre: Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
Posté par: Brian_Gates le 22 Juillet 2014, 17:04:09
Ah ouais pas bête du tout ! J'ai même une petite idée pour faire ça ! Merci !