• 20 Avril 2024, 10:29:16


Auteur Sujet: [Résolu] Téléportation sans perdre son véhicule ? (+ solution)  (Lu 2527 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Brian_Gates

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
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;
    }
« Modifié: 19 Juillet 2014, 02:41:43 par Brian_Gates »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Téléportation sans perdre son véhicule ?
« Réponse #1 le: 18 Juillet 2014, 02:00:14 »
Effectivement, il faut que tu vérifie si le joueur est dans un véhicule (IsPlayerInAnyVehicle).

Si il n'est pas dans un véhicule : Tu le téléporte simplement avec (
SetPlayerPos) ;

Si il est dans un véhicule : Tu téléporte le véhicule (
SetVehiclePos) et tu met le joueur dans le véhicule (PutPlayerInVehicle).

Hors ligne Brian_Gates

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : Téléportation sans perdre son véhicule ?
« Réponse #2 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;
    }
« Modifié: 18 Juillet 2014, 03:33:32 par Brian_Gates »

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
« Réponse #3 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:

Hors ligne Brian_Gates

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
« Réponse #4 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) ?

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3550
    • Voir le profil
Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
« Réponse #5 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 ;)


Adju ♥
(-_-)



Hors ligne Brian_Gates

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
« Réponse #6 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 !
« Modifié: 20 Juillet 2014, 17:08:50 par Brian_Gates »

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3550
    • Voir le profil
Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
« Réponse #7 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 ;)


Adju ♥
(-_-)



Hors ligne Brian_Gates

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [Résolu] Téléportation sans perdre son véhicule ? (+ solution)
« Réponse #8 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 !