Français Solved Comment faire spawn les hélicos sur un Helipad en hauteur

  • Auteur de la discussion Auteur de la discussion Cedrico
  • Date de début Date de début

Cedrico

User
17/5/21
23
0
300
Bonjour,

Je souhaite faire spawn les helico (med ou police) sur un Helipad qui ce trouve en hauteur, malgré avoir déplace l'icone de spawn sur le PAD ben rien y fait il spawn au sol dans le batiment concerné ..
Comment puis-je faire pour qu'il spawn sur le HPad est pas au sol ?

Je suis sur Altis life et j'utilise les marqueur déjà présent !

Merci de votre aide
 
Solution
Si j'y arrive pas je vais tout simplement abandonné et continuer autre chose, ce qui est dommage mais j'ai pas beaucoup le temps pour rester focus sur 1 seul truc
Il faut persévérer, c'est souvent comme ça ! Même pour moi 👀

---

Ce que j'aurais fait, dans le fn_vehicleShopBuy.sqf pour l'achat des véhicules, remplacer :
Code:
} else {
    _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
    _vehicle allowDamage false; //Temp disable damage handling..
    _vehicle setPos (getMarkerPos _spawnPoint);
    _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
    _vehicle setDir (markerDir _spawnPoint);
};
par :
Code:
}...
Bonjour,
J'ai un debut de progression ! j'ai fait sans le code fourni mais j'ai literalement copier coller le code pour l'hopital dans les sqf
maintenant l'helico spawn bien dans les airs mais pas au bonne endroit :) donc explose
mais il m'en fait spawn un 2eme au sol LA ou il y a le spawn de base alors la je comprend pas mdr
celui dans le batiment n'a rien mais impossible de le sortir de la
celui qui spawn sur le batiment explose

pouvez vous voir l'erreur que j'aurai pu faire ? merci beaucoup

spawnvehicule.sqf (Rxo_office) c'est le nom du batiment je l'ai simplement ajouter avec celui de l'hopital ici
Code:
private "_vehicle";
if (_sp isEqualType "") then {
    _vehicle = createVehicle[(_vInfo select 2),[0,0,999],[],0,"NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
    _vehicle allowDamage false;
    _hs = nearestObjects[getMarkerPos _sp,["Land_Hospital_side2_F","Rxo_office"],50] select 0;
    _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
    uiSleep 0.6;
} else {
    _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
    _vehicle allowDamage false;
    _vehicle setPos _sp;
    _vehicle setVectorUp (surfaceNormal _sp);
    _vehicle setDir _dir;
};
dans le vehicleBuy.sqf j'ai simplement recrée une ligne
Code:
if ((life_veh_shop select 0) == "cop_air") then {
    _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
    _vehicle allowDamage false;
    _hs = nearestObjects[getMarkerPos _spawnPoint,["Rxo_Office"],50] select 0;
    _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
    sleep 0.6;
} else {
    _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
    _vehicle allowDamage false; //Temp disable damage handling..
    _vehicle setPos (getMarkerPos _spawnPoint);
    _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
    _vehicle setDir (markerDir _spawnPoint);
};
 
Dernière édition par un modérateur:
Bonsoir,
après plusieurs jour d'acharnement j'y arrive pas malheureusement.... et je pense pas y arrivé sans votre aide ...
vous avez surement d'autre chat a fouetté donc je vais pas vous ennuyer tout les jours .. j'attendrai qu'un personne comprenne mon erreur ou autres

bonne soirée
 
Si j'y arrive pas je vais tout simplement abandonné et continuer autre chose, ce qui est dommage mais j'ai pas beaucoup le temps pour rester focus sur 1 seul truc
Il faut persévérer, c'est souvent comme ça ! Même pour moi 👀

---

Ce que j'aurais fait, dans le fn_vehicleShopBuy.sqf pour l'achat des véhicules, remplacer :
Code:
} else {
    _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
    _vehicle allowDamage false; //Temp disable damage handling..
    _vehicle setPos (getMarkerPos _spawnPoint);
    _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
    _vehicle setDir (markerDir _spawnPoint);
};
par :
Code:
} else {
    if ((life_veh_shop select 0) == "cop_air") then {
        _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"];
        waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
        _vehicle allowDamage false;
        _vehicle setPosATL [((getMarkerPos _spawnPoint) select 0), ((getMarkerPos _spawnPoint) select 1), 15];
        sleep 0.6;
    } else {
        _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
        waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
        _vehicle allowDamage false; //Temp disable damage handling..
        _vehicle setPos (getMarkerPos _spawnPoint);
        _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
        _vehicle setDir (markerDir _spawnPoint);
    };
};
Sur la ligne 14 tu peux changer le 15 qui correspond à la hauteur de spawn.

Et dans le fn_spawnVehicle.sqf, pour les véhicules qui sortent du garage, remplacer :
Code:
} else {
    _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
    _vehicle allowDamage false;
    _vehicle setPos _sp;
    _vehicle setVectorUp (surfaceNormal _sp);
    _vehicle setDir _dir;
};
par :
Code:
} else {
    _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
    _vehicle allowDamage false;

    if (((_sp select 0) == 1000) && ((_sp select 1) == 1500)) then {
        _vehicle setPos [(_sp select 0),(_sp select 1),15];
        uiSleep 1;
    } else {
        _vehicle setPos _sp;
    };

    _vehicle setVectorUp (surfaceNormal _sp);
    _vehicle setDir _dir;
};
Même chose à la ligne 7 tu peux changer le 15 qui correspond à la hauteur de spawn.
Et à la ligne 6, tu peux remplacer 1000 par la position X du marqueur, et le 1500 par la position Y du marqueur.

Je n'ai pas testé, j'espère que ça fonctionnera 😅
 
Dernière édition:
Solution
Pour le coup j'ai une question, pour fn_vehicleShopBuy.sqf tu utilises la fonction setPosATL, mais pour fn_spawnVehicle.sqf tu utilises setPos
Il y a-t-il une raison à cela ?
 
Il faut persévérer, c'est souvent comme ça ! Même pour moi 👀

---

Ce que j'aurais fait, dans le fn_vehicleShopBuy.sqf pour l'achat des véhicules, remplacer :
Code:
} else {
    _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
    _vehicle allowDamage false; //Temp disable damage handling..
    _vehicle setPos (getMarkerPos _spawnPoint);
    _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
    _vehicle setDir (markerDir _spawnPoint);
};
par :
Code:
} else {
    if ((life_veh_shop select 0) == "cop_air") then {
        _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"];
        waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
        _vehicle allowDamage false;
        _vehicle setPosATL [((getMarkerPos _spawnPoint) select 0), ((getMarkerPos _spawnPoint) select 1), 15];
        sleep 0.6;
    } else {
        _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
        waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
        _vehicle allowDamage false; //Temp disable damage handling..
        _vehicle setPos (getMarkerPos _spawnPoint);
        _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
        _vehicle setDir (markerDir _spawnPoint);
    };
};
Sur la ligne 14 tu peux changer le 15 qui correspond à la hauteur de spawn.

Et dans le fn_spawnVehicle.sqf, pour les véhicules qui sortent du garage, remplacer :
Code:
} else {
    _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
    _vehicle allowDamage false;
    _vehicle setPos _sp;
    _vehicle setVectorUp (surfaceNormal _sp);
    _vehicle setDir _dir;
};
par :
Code:
} else {
    _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
    waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
    _vehicle allowDamage false;

    if (((_sp select 0) == 1000) && ((_sp select 1) == 1500)) then {
        _vehicle setPos [(_sp select 0),(_sp select 1),15];
    } else {
        _vehicle setPos _sp;
    };

    _vehicle setVectorUp (surfaceNormal _sp);
    _vehicle setDir _dir;
};
Même chose à la ligne 7 tu peux changer le 15 qui correspond à la hauteur de spawn.
Et à la ligne 6, tu peux remplacer 1000 par la position X du marqueur, et le 1500 par la position Y du marqueur.

Je n'ai pas testé, j'espère que ça fonctionnera 😅
Merci , c'etai il y a qu'elle que jour ca mdr entre temp j'ai continuer a chercher
Ensuite t'es changement ce font sur le fichier de base ou celui que j'ai déjà modifier ? je suppose de base :p
je test ça desuite et revient si pas ok ou ok :) merci a vous
 
  • Like
Les réactions: LouLou