Aller au contenu


Une Ouverture Sous Conditions

Scripting Event Modding Anglicismes à gogo

  • Veuillez vous connecter pour répondre
6 réponses à ce sujet

#1 Svartalfar

Svartalfar

Posté 22 novembre 2017 - 01:10

Bonjour, bonsoir à toutes et à tous.

Je m'initie aux donjons et au codage et j'aimerai proposer des énigmes dans l'un d'entre eux. Le principe est très simple : un accès est caché et clos, et ne s'ouvrira que lorsque le PJ aura présenté trois objets aux trois "gardiens". Cependant, j’achoppe un peu sur la marche à suivre.

Il me faut un script qui puisse vérifier si tel objet a été présenté à tel gardien et valider l'action en cas de réponse positive cependant, je ne sais pas trop comment procéder. Dois-je préférer des activators, qui vérifieront l'inventaire du joueur lors de leur activation et qui réagiront si l'objet recherché est à l'intérieur, ou plutôt des Containers qui vérifieront eux s'ils contiennent bien l'objet indiqué (le premier a ma préférence) ?
Difficulté supplémentaire, je ne compte pas donner d'indications au PJ via des entrées journal validant ses actions, il devra débrouiller l'énigme sans.

Si je visualise plus ou moins bien la structure du script et les moyens que je devrais mettre en oeuvre (choix, variables, etc), ça reste flou dans le détail aussi, j'aimerai profiter de vos lumières.

Pour faciliter la compréhension, voici l'énigme que les joueurs devront résoudre (rien de difficile s'ils ont été un brin attentifs) :

Citation

Pour contempler le visage de Dieu
Ornez de pourpre la gueule du Dragon
D'albâtre l'oeil du croyant
Et offrez le vert aux bûchers du dévôt.
Alors la voie te sera dévoilée.


Enigme du même genre mais avec un seul "objet vérificateur" cette fois-ci :

Citation


Pour ouvrir les portes du Temple, il te faut te munir
Des restes d'un de nos enfants
De l'âme d'un de nos enfants
Du coeur d'un parent
Pénètre alors par les portes entrouvertes, et joue avec nos enfants, dans le lieu que vos semblables ont bâti pour notre mutuel divertissement.


Modifié par Svartalfar, 22 novembre 2017 - 01:11.


#2 Chapichapo

Chapichapo

Posté 22 novembre 2017 - 23:47

Salut,

Je n'y connais strictement rien en script mais ton problème me semble pouvoir être résolu avec une idée simple. Il me semble que dans le CK de Morro, on peut placer plusieurs éléments les uns sur les autres sans trop de soucis. Ainsi tu pourrais mettre 3 "portes" au même endroit avec chacune un activateur distinct correspondant à ton énigme. Si le joueur ne résout que une ou deux énigmes (et donc active un ou deux activateurs) seules une ou deux "portes" s'ouvrent. La troisième n'étant pas ouverte, elle reste un mur caché que le joueur ne voit pas.

Si tu veux apprendre à coder ça ne t'aidera surement pas (vu que j'y connais rien) mais ça pourrait résoudre ton problème. Après c'est une idée que j'ai eue comme ça, si ça se trouve ça marchera pas, faut voir ^^

#3 Elenwel

Elenwel

    Granny Smith Wiwi


Posté 23 novembre 2017 - 18:21

Je sais pas trop à quel point tu en es dans tes réflexions Svartalfar, du coup je fais basique :P

Tu peux tout simplement utiliser des variables globales pour valider les différentes étapes de tes énigmes. Chaque activator/container modifiant sa propre variable et la porte faisant un test du style :

if v1
  if v2
	if v3
	  //blabla
   endif
  endif
endif

Voir le messageD.A.D., le 29 avril 2013 - 21:21, dit :

Un avertissement d'Elenwel, c'est un avertissement qui en vaut deux : si tu n'en tiens pas compte, c'est toujours pour TA pomme, et en général, il ne fait pas de quartier. Mieux vaut éviter les pépins, ça empêche d'y laisser sa peau.

#4 Svartalfar

Svartalfar

Posté 28 novembre 2017 - 14:30

Merci pour vos réponses. La tienne chapi' est très astucieuse quand comme moi on n'y connait pas grand chose, mais je pense qu'elle est un peu lourde.

Elenwel, si je comprends bien, ce serait le script global qui vérifie que les variables sont bien modifiées et qui ouvre le passage quand c'est fait. Mais du coup, ne faut-il pas un script pas activator/container pour modifier ces variables ?
Tel que je vois ton système, on aurait, pour la première énigme, le script global, plus le script "gueuledragon" accolé à l'objet "gueule du Dragon", qui vérifie et change la valeur de la variable "rouge"  ; plus le script oeildevot accolé à l'objet "oeil du croyant" qui vérifie et change la valeur de la variable "blanche" ; plus le script "bucher" accolé aux objets "bûcher du dévôt" qui vérifie et change la valeur de la variable "vert".

A moins que ce ne soit pour la seconde énigme. Là je pense que l'on peut tout résumer en un script.

#5 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 28 novembre 2017 - 15:05

Le plus simple est je pense d'avoir un script local lié à ce qui sert de porte, 1 script local à chaque activator et une variable globale pour controler le tout.
Chaque script local d'activator incrémente la variable globale de 1 si sa condition est vérifiée (et la décrémente de 1 si elle ne l'est plus si on peut revenir en arrière) et ceci une seule fois par changement d'état de validation (utiliser une variable de type doonce).
Le script sur la porte l'ouvre si la variable globale a pour valeur le nombre d'activator nécessaire (dans ton premier exemple trois).
Je n'ai pas le temps de faire les scripts complets immédiatement et je ne me souviens plus trop de la syntaxe de Morrow mais en gros l’algorithme serait le suivant :
Supposons que ta variable globale soit nommée vg_activeporte1
Sur les activator tu mets :
script toto

short v_state;

if v_state == 0 then
  if onactivate==1 then
	if getitemcount(l'objet à vérifier dans l'inventaire du pj)>0 then
	  vg_activeporte1 = vg_activeporte1 + 1
	  v_state = 1
	end if;
  end if;
else
  if onactivate==1 then
	if getitemcount(l'objet à vérifier dans l'inventaire du pj)=0 then
	  vg_activeporte1 = vg_activeporte1 - 1
	  v_state = 0
	end if;
  end if;

end if;
end toto;

Si tu as besoin d'un script plus précis, j'aurais plus de temps fin de semaine prochaine mais dans l'immédiat je ne peux pas faire plus.

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#6 Svartalfar

Svartalfar

Posté 01 décembre 2017 - 16:55

Merci de bien vouloir voler à mon secours. ^^
J'ai beau commencer à mettre le nez dans tout ça et avoir une vague idée de comment ça marche, je bois tout de même souvent la tasse. Rien que les scripts qui activent et désactivent des objets en fonction des entrées journal ne marchent pas toujours.

#7 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 06 décembre 2017 - 10:16

Je vais voir si j'ai un peu de temps ce WE.

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...






Aussi étiqueté avec Scripting, Event, Modding, Anglicismes à gogo

0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)