Hors-sujet
Bonjour, pour commencer, tu postes dans la mauvaise section du forum, ce sous-foruim étant dédié à la présentation des mods en cours de réalisation.
Ce sujet serait plus à sa place dans la Forge, sous-forum caché dévolu aux moddeurs, catégorie "les scripts". Pour avoir accès la Forge, il faut envoyer un MP demandant le statut de "moddeur en herbe" à un administrateur. Nul doute qu'un fois le statut obtenu, Paneb déplacera ce sujet, vu que je ne peux le faire de ce forum.
En général, j'évite les consultations à domicile mais, vu que tu n'as pas encore le statut te permettant de lire la Forge, je vais faire un exception.
Sans rentrer dans les détails, dans ton cas, ne pas modifies le "extends objectreference" de la 1ère ligne sinon, ton script ne fonctionnera pas.
La ligne "TextureSet FemaleEyesHumanDemon" te permet de déclarer une variable de type textureset au sein du script. Cependant, cette variable est vide donc inutile. Il faut supprimer cette ligne.
Il faut déclarer une propriété en début de script (après la ligne "scriptname...") :
texturesset property FemaleEyesHumanDemon auto
Il faut également tester si c'est bien le joueur qui équipe l'objet, ce sera fait avec un blic if-endif.
Afin de prendre de bonnes habitudes niveau optimisation, on retire le game.getplayer() et on le remplace par playerref après avoir déclaré la propriété en début de script.
Le script devient :
Code : Tout sélectionner
Scriptname DMN_Scripte_Dague extends ObjectReference
actor property playerref auto ; je déclare une propriété de type actor appelée playerref
texturesset property FemaleEyesHumanDemon auto ; déclaration d'un rpropriété de type textureset
Event OnEquipped(actor akActor) ;l évènement : 'objet sur lequel est placé le script est équipé
if akActor == playerref ;si c'est le joueur qui l'a équippé
playerref.SetEyeTexture(FemaleEyesHumanDemon) ;j'applique le textureset au joueur
endif ; fin de mon bloc if
EndEvent
;fin de mon évènement
Pour l'instant, aucune valeur n'est associée à nos propriétés playerref et FemaleEyesHumanDemon. Il faut donc préciser les valeurs.
Pour ce faire, il faut compiler le csript et fermer la fenêtre d'édition du script. On se retrouve dans la fenêtre d'édition de l'objet sur lequel le script est placé.
En double-cliquant sur le nom du script, on arrive à la page des propriétés( 3colonnes : nom, type et valeur).
Il faut cliquer sur le bouton auto-fill. La propriété playerref se remplira automatiquement.
La propriété FemaleEyesHumanDemon ne se remplira automatiquement que s'il existe un objet de type textureset dans le CK portant ce nom. Si elle n'est pas remplie, il faut entrer la valeur à la main en la sélectionnant dans le menu déroulant de droite, une fois la propriété sélectionnée.
Il faut donc, avant de faire cette étape, s'assurer que le textureset que tu comptes employer soit créé dans le CK. S'il n'existe pas, il faut le créer.
Il faut également faire attention avec l'instruction SetEyeTexture. Il est indiqué dans le site du CK :
"This will only last until the actor reloads their 3D. ". Cela veut dire, même si mon anglais est loin d'être parfait, que le changement de texture ne sera effectif que jusqu'au prochain chargement des éléments 3D de l'actor playerref.
En théorie, le fait de sauvegarder avec le textureset FemaleEyesHumanDemon appliqué sur le joueur ne suffit pas à ce que le textureset soit à nouveau appliqué en chargeant le jeu. Je pense qu'il y aura le même soucis en cas de transformation du joueur (en loup-garou, en seigneur vampire, en loutre...)
Un textureset est un objet créé dans le CK comprenant une ou plusieurs textures et les informations suivantes :
https://www.creationkit.com/index.php?title=TextureSet
Une texture est un fichier *.dds présent sur le disque dur et un textureset est un objet du CK comprenant des liens vers ces textures. On ne peux déclarer directement une texture et l'utiliser avec une instruction seteyetexture().
Lors du test en jeu, si l'objet est déjà présent dans l'inventaire du joueur, il faut s'en débarasser et en ajouter un à partir de la console. Les propriétés des scripts attachés aux objets de l'inventaire étant sauvegardées, si tu les modifies dans le CK, les changements ne seront pas pris en compte.
Pour ajouter un objet à partir de la console, tu tape help "nom del'objet". Cela donne un code. Ensuite tu fais : player.additem code 1
Il y a une petite présentation de quelques trucs de scripting
ICI. Cette présentation provient d'ailleurs de la Forge mais, comme tu ne peux lire les tutoriels présents ici, je préfère t'envoyer vers ce lien externe plutôt que te faire attendre ton changement de statut.