philippe shilova |
Voir le profil public |
Trouver plus de messages par philippe shilova |
Aller à la page... |
[recherche] script de remise en place :)
Suivre Répondre |
|
Partager | Rechercher |
Elenia Boucher |
Voir le profil public |
Trouver plus de messages par Elenia Boucher |
Alpha & Oméga
|
Pour revenir au point de départ , il faut que tu repères à un moment du script quelle est la position initiale .
Cela peut être lors de l évènement on_rez , ou peut être faudra t il repérer dans le script qui déplace ton véhicule le moment où il commence à se déplacer . Tu sauvegardes à ce moment là la position par llGetPos() . Si le véhicule est cantonné uniquement à des déplacements dans la même sim , c est assez simple . Tu dois d abord repérer dans le script quand il n y a plus personne sur ton véhicule . Si ton véhicule n accepte qu une seule personne , cela va être dans l évènement changed avec le status CHANGED_LINK de changé . Regarde par exemple llUnsit, il y a deux bouts de code qui détectent qui est assis avant d appeler la fonction llunsit Sinon , si il y a plusieurs sièges , c est un peu plus compliqué , puisqu'il faut savoir que chaque siège de ton véhicule a reçu l évènement . Tu dois désactiver les physiques temporairement , peut être même mettre le véhicule phantom grace à llSetSatus Puis tu fais appel à la nouvelle fonction llSetRegionPosavec la position que tu as sauvegardée initialement . Après être arrivé à bon port , ton véhicule remet ses statuts physiques/non-physiques phantom/nonphantom comme à l état initial Auparavant , il fallait calculer le chemin à destination . En effet une prim ne pouvait bouger que de 10 mètres maximum , et on répétait plusieurs déplacements . Cela causait comme soucis que les prims restaient bloquées aux bordures de parcelles quand elles n avaient pas le droit d y entrer , même si ce n est que pour la traverser . llSetregionPos va t enlever cette épine du pied . Si en revanche ton véhicule peut se déplacer sur les sims voisines , c est à mon avis, beaucoup plus compliqué . En effet tu ne peux pas appeler llSetregionPos pour changer de sim . Pour des déplacements cross-sims, on pourrait éventuellement se faciliter la tache avec llSetKeyFramedMotion , puisque les déplacements de cette fonction se font en position relative e non absolue lorsque ton véhicule doit se déplacer d une sim à une autre . Mais tu vas rencontrer les mêmes problèmes de droits de passages des objets sur une parcelle qui ne t appartient pas . Il faudrait donc à chaque fois connaitre le point d entrée et de sortie de chaque sim par lesquels ton véhicule a l autorisation de passer ; te rapprocher de ceux ci en faisant un llsetregionpos ; puis faire un déplacement en relatif vers la sim adjacente avec llsetkeyframemotion . Puis une fois que le cross sim ait été fait , refaire un llsetregionpos pour se déplacer à ta base initiale. Pour détecter les points d entrée et de sortie des deux sims cela ne va pas être facile . Peut être en checkant sur toute la bordure des deux sims adjacentes ... Pour les points qui appartiennent à la même sim tu peux utiliser llGetParcelFlags pour vérifier les droits à un point donné . Mais cela risque de te prendre plus que 3 lignes de codes . Et dans ce cas , là , Elena a probablement raison qu il serait moins prise de tête à dérezzer ton véhicule et à le rerézzer Enfin , si ton véhicule est "auto-piloté" , un peu comme ces dirigeables ou ballons qui font le parcours de la sim , alors il existe dans le script le chemin du véhicule . Dans ce cas , il suffit de passer par les mêmes points dans le chemin inverse , un peu comme le fil d ariane dans le labyrinthe du minotaure. |
![]() |
|
Suivre Répondre |
Fil d'ariane
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|