[Résolu] Script de l'établi (Workbench) : base de la programmation

Vous trouverez ici les tutoriels et l'entraide sur les outils et techniques de modding spécifiques à Fallout 3.
Sherman
Confrère
Messages : 131

Re: Aide de moddeur pour scripter

Message par Sherman »

C'est étrange...

Bon, pour récapituler (tu as du faire comme ça, en tout cas moi j'aurais tenté ça comme ça ) :

Script sur l'établi :

Code : Tout sélectionner

Begin OnActivate
	if ( IsActionRef player == 1 )
		set FirstPressedButton to -1
		ShowMessage SchematicsWorkbenchMsg									; Affiche le menu de fabrication général de l'établi
	endif
End

Begin GameMode
	if ( FirstPressedButton == -1 )
		set FirstPressedButton to GetButtonPressed
		set weaponCondition to (player.getAV repair)/100					; L'état de l'arme dépends du pourcentage de la compétence réparation du joueur
		if FirstPressedButton == 1	; ammo
			set Button2 to -1
			ShowMessage SchematicsWorkbenchAmmoMsg <= ICI tu ajoutes un Activate vers un         activateur en enlevant ce "ShowMessage"
			return
		elseif FirstPressedButton == 2	; armor
			set Button3 to -1
			ShowMessage SchematicsWorkbenchArmorMsg <= ICI aussi, et ainsi de suite...
			return
		elseif FirstPressedButton == 3	; big guns
			set Button4 to -1
			ShowMessage SchematicsWorkbenchBigGunMsg
			return
		elseif FirstPressedButton == 4	; energy weapons
			set Button5 to -1
			ShowMessage SchematicsWorkbenchEnWeapMsg
			return
		elseif FirstPressedButton == 5	; explosives
			set Button6 to -1
			ShowMessage SchematicsWorkbenchExplosiveMsg
			return
		elseif FirstPressedButton == 6	; hand to hand weapons
			set Button7 to -1
			ShowMessage SchematicsWorkbenchBrawlMsg
			return
		elseif FirstPressedButton == 7	; melee weapons
			set Button8 to -1
			ShowMessage SchematicsWorkbenchMeleeMsg
			return
		elseif FirstPressedButton == 8	; small guns
			set Button9 to -1
			ShowMessage SchematicsWorkbenchSmGunMsg
			return
		endif
	endif

Et ensuite, un script sur chaque activateur :

Code : Tout sélectionner


Begin OnActivate

..........ShowMessage menusouhaité
........

End

Begin GameMode

   instructions
   .....

End


Normalement, comme ça quand depuis ton établi tu actives un activateur grace au "activate", l'activateur en référence va exécuter ce qui est dans son bloc "OnActivate".
Ensuite, en fonction, il fera ce qui est dans son bloc "GameMode", et c'est là qu'il effectuera les réparations.
Tu peux avoir besoin de variables pour passer du bloc "Begin OnActivate" à celui "GameMode" comme par exemple un short busy ou active qui prennent des valeurs binaires et bloquent une autre activation tant que l'action n'est pas terminée (valeur réinitialisée à 0 à la fin du bloc GameMode; passée à 1 dans le bloc OnActivate pour que le GameMode puisse s'exécuter. Tu saisis le concept ?)

Si tu veux passer des valeurs d'un script à un autre, là, il te suffira d'utiliser des variables globales. C'est le seul moyen.
Etabli est activé par le joueur => Son script se lance (c'est dingue) => J' appuis sur le premier bouton de la boite de message qui s'est affichée => Ca DEVRAIT appeller l'Activateur du Bouton 01 à s'activer => L'activateur du bouton 01 est scripté et affiche un message une fois qu'il a été activé par l'établi.
Donc tu as ;
- Un établi activateur, OK
- Le premier bouton de la boite de dialogue exécute un "ACTIVATE" sur la Référence Editeur d'un activateur dans la même cell ?
- L'activateur a un script attaché comprenant un bloc "Begin onActivate" et un bloc "Begin GameMode" ?

Si c'est ce que tu as fait, que ça ne fonctionne pas comme tu voudrais, dis moi ce qu'il en est.

Si tu veux aussi, tu peux m'envoyer le plugin sur lequel tu fais tes tests d'activateurs, ce sera peut etre plus facile pour avoir une vision complète.
J'espère que les quête m'apporteront satisfaction (j'ai peur de me retrouver avec des boite de conversation plutôt que de message)
Aucun danger pour ça, on fait vraiment tout ce que l'on veut avec les quêtes. Mais c'est vrai que ce n'est pas spécialement fait pour (sur le TESCS surtout, dans le GECK, le système de quête est assez différent et plus modulaire, donc il peut servir à beaucoup plus de choses.)
J'ai trouvé dans les propriétés des activator des onglets sur: Linked Ref/ Active Parent / Enable Parent. Mais je peine à les utiliser comme tout nouveau truc que je découvre. Et puis Active parent a pas l'air de fonctionner correctement. Rien ne s'affiche dans la liste.
Les références liées servent par exemple au contrôle des tourelles ou des portes par les terminaux... le script du terminal s'exécute sur la ref liée. Ou encore pour les chemins des patrouilles par exemple.
Les parents sont utilisées pour définir plusieurs objets (lit, chaise, tabouret, bouteille...) dans une sorte de groupe : on "enable" le chef de goupe (le parent) et les autres s' "enable" aussi, et vice-versa.
Exceteraviking
Traducteur aspirant
Traducteur aspirant
Messages : 64

Re: Aide de moddeur pour scripter

Message par Exceteraviking »

Salut à toi. Il en faut du courage didonc. C'est plus une partie de plaisir uniforme.
Merçi encore pour ton accompagnement.

Et bien tout ce que tu as dit, je l'ai malheureusement fait.
Et nada. j'vais reprendre tes question pour y réponde en QUOTE. Comme toi.
Bon, pour récapituler (tu as du faire comme ça, en tout cas moi j'aurais tenté ça comme ça ) : .... Des script et action
Ouais, t'es un bon prof. A peu de chose près à la lettre. J'ai même fait des script carrément plus simple, histoire de voir plus rapidement où il s'arrétaient.
Normalement, comme ça quand depuis ton établi tu actives un activateur grace au "activate", l'activateur en référence va exécuter ce qui est dans son bloc "OnActivate".
C'est ce qu'on a essayé de mettre en place en effet,...mais...... :(
Ensuite, en fonction, il fera ce qui est dans son bloc "GameMode", et c'est là qu'il effectuera les réparations.
Tu peux avoir besoin de variables pour passer du bloc "Begin OnActivate" à celui "GameMode" comme par exemple un short busy ou active qui prennent des valeurs binaires et bloquent une autre activation tant que l'action n'est pas terminée (valeur réinitialisée à 0 à la fin du bloc GameMode; passée à 1 dans le bloc OnActivate pour que le GameMode puisse s'exécuter. Tu saisis le concept ?)
Ouais, c'était le concept du MOD que j'ai Moddé. Et ça ne fonctionne pas. J'ai repris +/- son MODs, j'ai juste ajouté les truc et les bidules qui ont pour effet de mater dans l'inventaire du joueur et dans le conteneur. Dc, ça n'as pas changé. Mais comme l'activateur scripté ne s'active pas.... :(²
Si tu veux passer des valeurs d'un script à un autre, là, il te suffira d'utiliser des variables globales. C'est le seul moyen.
Ha, les variables globale... Elles beuguent chez moi, le GECK refuse de me laisser les moddifier. Ni même en créer.
Avec les gars de F3N, ont a mis en place un script de quête pour avoir +/- le même résultat.
Donc tu as ;
- Un établi activateur, OK
- Le premier bouton de la boite de dialogue exécute un "ACTIVATE" sur la Référence Editeur d'un activateur dans la même cell ?
- L'activateur a un script attaché comprenant un bloc "Begin onActivate" et un bloc "Begin GameMode" ?
Si c'est ce que tu as fait, que ça ne fonctionne pas comme tu voudrais, dis moi ce qu'il en est.
J'ai tout ça, et ca ne fonctionne pas.. :(

OK, j'ai pigé les LinkedRef et Parent. Je me suis baladé à fond sur le Wiki du Geck et d'Obli. Ca me paraissait en rapport avec ce que je cherchais à faire. Peut être ça serait utile. J'ai du mal avec les sens dans les script, et LinkedRef, on ne peut lier que deux truc ou si plusieurs, les uns à la suite des autres d'après ce que j'ai compris, dc, faudra repenser le script complet pour jouer avec ça.
Pour Parent, oui, et je trouve ça aussi intéressant. Après, Enable et Activé, je pense saisir la nuance. Mais c'est hors sujet.

Je vais te faire un ESP minimaliste. Avec tout ce que tu as cité là, qui est une bonne synthèse de tes orientations.

J'étais partis dans les Script quête mais c'est la même chose. J'suis confronté à l'inpossibilité d'ajouter un Bloc Onactivate ds un script d'activator parce qu'il est apelé par un script quest (pas trop compris mais bon, Rivs et M3hdi ont l'air sür d'eux). Si tu veux, tu peux jeter un oeil à notre looooongue conversation.

Je commence à perdre espoir... :D
morghoth a écrit :Recherche testeurs pour mods traduits.PM s.v.p. :)
Sherman
Confrère
Messages : 131

Re: Aide de moddeur pour scripter

Message par Sherman »

:lol:

Ok, ça a l'air d'être un sacré soucis quand même ! ;) Ce serait super que tu m'envoies l'esp, j'espère que je pourrais alors t'en dire plus ! J'aurais sûrement un peu de temps ce week end pour me pencher dessus.

Je t'envoie donc mon email par MP.
Exceteraviking
Traducteur aspirant
Traducteur aspirant
Messages : 64

Re: Aide de moddeur pour scripter

Message par Exceteraviking »

Hey mais bon sang !!

J'avais posté mais il a pas été pris en compte on dirait (ou alors le MP à moins que je t'ai envoyé un mail mais j'en doute).
Vu que ça fait bien 15jrs maintenant, j'te fais un résumé.

Les scripts sont OK avec les Quest.
Mais j'ai quand même essayé dans notre voie. Il y a une bonne et une mauvaise nouvelles:
La bonne c'est que le bloc OnActivate se déclenche et la mauvaise c'est que le bloc GameMode ne veux rien entendre.

C'est dingue, j'suis persuadé d'avoir fait en sorte que tu vois l'ESP qu'avec les activators...

il est à cette adresse

J'ai parlé de tes idées à Hawk-EyE, un moddeur sur F3Nuclear, (Quêtes, répara&tion...) et il est très intéressé. Comme il fait un MOD qui utilise l'établi, on va peut être fusionner les 2. Ca rajouteras même des fonctionnalité filles, et ça rentrerait dans le cadre de la quête.
morghoth a écrit :Recherche testeurs pour mods traduits.PM s.v.p. :)
Sherman
Confrère
Messages : 131

Re: Aide de moddeur pour scripter

Message par Sherman »

Bonsoir !

Super, merci pour le résumé !
Bon, et bah je regarderais tout ça, je suis ton mod de près.
Mais du coup, moi aussi j'ai une mauvaise nouvelle ! :lol: J'attaque mes exams à partir de lundi... donc je ne pourrais pas regarder ça avant le week end prochain ! ;)

Je te souhaite une bonne continuation dans les travaux de ton mod !
Répondre

Retourner vers « Modder Fallout 3 »