Coucou...
En fait, ce que tu as mit en gras et italique...
C'est la gestion des compagnons du jeu de base...
set Button to GetButtonPressed
ref rMarker
if Button == 1
player.MoveTo GomorrahLLMarker
set rMarker to GomorrahLLMarker
Autosave
elseif Button == 2
player.MoveTo Gomorrah1stMarker
set rMarker to Gomorrah1stMarker
Autosave
elseif Button == 3
player.MoveTo Gomorrah3rdMarker
set rMarker to Gomorrah3rdMarker
Autosave
elseif Button == 4
player.MoveTo GomorrahTopMarker
set rMarker to GomorrahTopMarker
Autosave
endif
Là on récupère sur quel bouton a appuyé le joueur, puis on le téléporte au marqueur qui correspond au bon bouton...
On conserve et le bouton, et le marqueur où on a téléporté le joueur...
Pour la seconde partie qui te pose problème...
if (Button == 1 || Button == 2 || Button == 3 || Button == 4)
if (VNPCFollowers.bBooneHired) && (CraigBooneREF.Waiting != 1)
CraigBooneREF.MoveTo rMarker;
endif
if (VNPCFollowers.bCassHired) && (RoseofSharonCassidyREF.Waiting != 1)
RoseofSharonCassidyREF.MoveTo rMarker;
endif
if (VNPCFollowers.bVeronicaHired) && (VeronicaREF.Waiting != 1)
VeronicaREF.MoveTo rMarker;
endif
if (VNPCFollowers.bLilyHired) && (LilyREF.Waiting != 1)
LilyREF.MoveTo rMarker;
endif
if (VNPCFollowers.RaulHired) && (RaulREF.Waiting != 1)
RaulREF.MoveTo rMarker;
endif
if (VNPCFollowers.ArcadeHired) && (ArcadeREF.Waiting != 1)
ArcadeREF.MoveTo rMarker;
endif
if (VNPCFollowers.bEDEHired) && (EDE1REF.Waiting != 1)
if EDE1Ref.GetDisabled == 0
EDE1Ref.MoveTo rMarker
elseif EDE2Ref.GetDisabled == 0
EDE2Ref.MoveTo rMarker
elseif EDE3Ref.GetDisabled == 0
EDE3Ref.MoveTo rMarker
endif
endif
if (VNPCFollowers.RexHired) && (RexREF.Waiting != 1)
RexREF.MoveTo rMarker;
endif
endif
On vérifie d'abord que le joueur a bien appuyé sur un bouton qui téléporte...
if (Button == 1 || Button == 2 || Button == 3 || Button == 4)
Si oui, on regarde si le compagnon untel suit actuellement le joueur...
if (VNPCFollowers.RexHired) && (RexREF.Waiting != 1)
La première variable demande si le compagnon Rex est "hired", donc a été recruté par le joueur, tandis que la seconde variable regarde si Rex n'est pas en train d'attendre (quand on demande au compagnon de nous attendre sur place)...
Si ces deux conditions sont remplies, on téléporte le compagnon au marqueur lui aussi, car il faut bien qu'il nous suive...
Bref, ça c'est à laisser tel quel, car c'est mieux pour éviter de perdre les compagnons...
Cette gestion des compagnons est optionnelle je crois, mais préférable... le jeu a toujours un petit peu de mal pour gérer correctement les compagnons, ça s'est amélioré depuis Morrowind, mais tout de même...
J'en profite pour expliquer pourquoi le script de T!TER ne fonctionne pas...
Outre la non-gestion des compagnons, comme je l'ai dit le gros truc qui ne va pas, c'est le fait que tout se passe dans le bloc OnActivate...
Ce bloc est évènementiel, il n'est joué que pendant la seule et unique frame où le jeu détecte que l'objet a été activé...
Il va sans dire que lorsque l'on fait apparaitre un menu, et que l'on attend que le joueur réponde, un bon millier de frames se sont déjà déroulées...
La succession de if retournera donc quoi qu'il arrive la valeur fausse...
Il faut faire attention car il y a un piège, quand on affiche une MessageBox, le jeu est en MenuMode... La première réaction -logique- est donc d'exécuter le code de la sélection de bouton dans un bloc MenuMode...
Sauf que la fonction
GetButtonPressed prend plusieurs frames pour retourner son résultat, or le jeu quitte le MenuMode pour passer en GameMode à la frame suivant l'appui sur le bouton...
Il faut donc faire exécuter le code des bouton dans un GameMode...
C'est contre-intuitif, mais bon...