La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 10:23:12
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
cbil Novice Messages: 5 |
Salut tout le monde ! Ca fais plusieurs semaines que je viens, d'abord sur le site system-tek puis le forum, enfin je me decide à poster mon premier message. Je suis un nouveau scripteur NWN ^^.
Donc voila, j'ai vu plusieurs script de levier qui ouvre une porte mais celui-ci (ce que je n'ai pas trouvé ailleurs) est plus général...vous pouvez vous en servir pour n'importe quel combinaison levier/porte, aucune changement dans le script ne sera necessaire. En revanche, il est necessaire d'avoir une cohérence entre le tag du levier et le tag de la porte. Explication des tags : Pour le tag d'un levier : levier01, le tag de la porte devra etre : door_levier01 Placement du script : Le script est à placer dans le onUsed du levier Remarque : On peut avoir (si je me trompe pas), plusieurs levier pour une meme porte (les leviers auront le meme tag).....et si mon raisonnement est bon, si on active un levier, tous les autres seront activés également. Le Script : NWScript :
void animLevier(int valeur, object levier); void main() { //on recupere l'objet levier object oLevier = OBJECT_SELF; //on recupere le tag du levier string tag = GetTag(oLevier); //on modifier le tag pour avoir door_tagdulevier tag = "door_"+tag; //on chercher l'objet porte ayant ce nouveau tag object oDoor = GetObjectByTag(tag); //si la porte n'a pas ete trouve on s'arrete if(oDoor==OBJECT_INVALID) return; //si la porte est fermee, on l'ouvre (! signifie le contraire) if(!GetIsOpen(oDoor)) { //on ouvre la porte ActionOpenDoor(oDoor); //on anim le levier vers active animLevier(TRUE,oLevier); }else{ //sinon on ferme la porte //on ferme la porte ActionCloseDoor(oDoor); //on anim le levier vers desactiver animLevier(FALSE,oLevier); } } void animLevier(int valeur, object levier) { if(valeur==TRUE) { //on anim vers active apres un delai de 0.1 s DelayCommand(0.1, AssignCommand(levier, PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE))); }else{ //on anim vers desactive apres un delai de 0.1 s DelayCommand(0.1, AssignCommand(levier, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE))); } } N'hésitez pas a faire vos remarques, c'est ideale pour s'ameliorer dans les scripts ^^ a+ All Cbil |
Revenir en haut | |
cbil Novice Messages: 5 |
Ah oui j'oubliais....
J'ai mis un DelayCommand pour les anims du levier car quand je met l'animation des levier directemnt, il n'execute pas les autres actions (meme si le code de l'animation est placé tout à la fin) mais uniquement l'animation. Avec un DelayCommand, le probleme est resolu, le temps est tres court (0.1s) pour garder l'impression d'une ouverture de la porte et une activation du levier executé en meme temps. a+ Cbil |
Revenir en haut | |
Djezebel Héros Messages: 252 |
Ca fonctionne très bien, très bonne initiative. ^^
Cela évite d'avoir plusieurs scripts pour chaque levier. Continue comme ça ! |
Revenir en haut | |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
NWScript :
void animLevier(int valeur, object levier) { DelayCommand(0.1, AssignCommand(levier, PlayAnimation(201-valeur))); } Le top de l'optimisation : ANIMATION_PLACEABLE_ACTIVATE c'est 200 ANIMATION_PLACEABLE_DEACTIVATE c'est 201 TRUE c'est 1 FALSE c'est 0 |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
|
Revenir en haut | |
cbil Novice Messages: 5 |
En effet, c plus simple comme ca et mieux pour les calculs ^^
Merci a+ Cbil |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum