Alors voilà, j'ai créé un script qui permet d'ouvrir une porte seulement grâce à la clef qui lui est est associée, ainsi pas d'ouverture via un crochet ou encore la console avec "unlock".
Voici le script :
Begin THO_Almoria_auberge01 short controlvar If ( controlvar == 1 ) return Endif If ( OnActivate == 1 ) If ( GetItemCount, "key_tho_almoria01" == 0 ) PlaySound "LockedDoor" messagebox "Cette porte est fermée à clef." Elseif ( GetItemCount, "key_tho_almoria01" == 1 ) Activate set controlvar to 1 Endif Endif End
Donc, en principe, si j'essaie d'ouvrir la porte et que je n'ai pas la clef, ça m'affiche "Cette porte est fermée à clef." et me joue le son "LockedDoor". Jusque là, pas de problème, ça marche à merveille.
J'ajoute donc la clef "key_tho_almoria01" dans mon inventaire via la console, et là le drame, quand j'essaie d'ouvrir la porte, ça m'affiche toujours le message et joue le son, et ne m'ouvre toujours pas la porte.
J'ai également essayé en remplaçant la ligne
Elseif ( GetItemCount, "key_tho_almoria01" == 1 )par un simple
ElseMais ça ne marche pas non plus.
J'avais vu dans le tutoriel de scripting for dummies qu'il y avait également ceci avec :
Short nombre_d_objets Set nombre_d_objets to ( "Mob_ID" -> GetItemCount, "ID_objet" )Cependant, n'ayant pas compris à quoi cela servait et quel était son intérêt, j'ai décidé de ne pas l'inclure dans le code.
Alors, est-ce que quelqu'un a une idée concernant mon problème ?
Modifié par Duc Moquette, 10 octobre 2010 - 17:47.