?
| Nos forums | NwN2.fr | Lyncya | Notre channel IRC |
La Bibliothéque de Neverwinter Nights
La Bibliothéque de Neverwinter Nights
 
 
 
 
 
Bienvenue, connectez vous ou créez votre compte. Changer d'interface
 
Se connecter:
Login:

Password:


 
Neverwinter Nights 2
  Compendium NWN/NWN2
Classe, Warlock
Classes de Base
Classes de Prestige
Forum Joueur NWN2
Forum Concepteur NWN2
Bestiaire (Créatures)
Races
Tests
 - Collector Chaotique Mauvais (bbnwn, 4 nov 2006)
 - Mask of the Betrayer
 - Storm of Zehir
 - Mysteries of Westgate
Mondes
 - Les Artisans du Mitan
 - Les Légendes de Luiren
 - LanceDragon
 - La Bataille pour Cormanthor
 - Man O'War
 - Sendarie Nouvel Âge
Preview
 - 29 Mars 2006 (BBNWN)
 - 2 mai 2006 (Gamespot)
 - 17 Mai 2006 (WarCry)
 - 19 Mai 2006 (NWVault)
 - Designer Diary #1 (Gamespot, 1er Juin 2006)
Interview
 - Dorian Richard (20/02/2006)
 - Ferret Baudoin (22/02/2006)
 - Feargus Urquhart (2 mai 2006)
 - La Lettre Ouverte de Papermonk
 - Chris Avellone (Total Video Games)
Logs IRC
 - Warcry (27/01/2006)
 - NWVault / NWC (3 Juin 2006)
 - NWN2News.net (30 Juin 2006)
Faciliter la diffusion et l'installation de vos créations

 
Communauté
  Forums
Channel #nwnights-fr
Guide IRC
Liens
CEP

 
Fichier
  Tileset
Module
Hakpak
Objets
Portraits
Créatures
Scripts
Tutoriaux
Autres
Wallpapers

 
Editeur
  Tutorial Editeur
Cinématiques
Musiques
Textures
Tutoriaux NWScripts
Scripts

 
Le jeu
  Solution
Sorts
Classes
Dons (feat)
Aptitudes (skill)
Bestiaire
Règles 3e Edition
Jouer en multiplayer

 
Hordes of the Underdark
  Informations Générales
Solution [forum]

 
Shadows of Undrentide
  Preview
Informations générales
Classes de Prestige
'Lisez Moi.txt' de la Démo
FAQ
Nouveaux tilesets
Solution [forum]

 
Divers
  Traductions Logs Irc
Guides divers

 
Présentation
  Généralités
Configuration minimale
Serveur Dédié
Traduction FAQ
Historique (nwn et bioware)
Contrats de Bioware (vf)

 
Site
  Copyrights
Webmasters

 
     
 
Dîtes non aux inutiles protections contre la copie dans les jeux (SecuROM, StarForce, etc) !!
HADOPI - Le Net en France : black-out

Scripting Tutorial: Sitting In Chairs and Sleeping
Tutorial de Script : s'asseoir dans les fauteuils et dormir
Par David Gaider

Comment faire pour que mon PJ s'assoie sur une chaise ?

Il n'y a pour le moment aucun emote pour s'asseoir. En attendant qu'ils soient ajoutés aux caractères des PJs, le script pour faire s'asseoir un personnage doit être sur l'objet, lui-même.

Si vous posez une chaise usuelle plaçable (la chaise a la case Useable box cochée, et assurez vous que le PJ aura la place de manier la chaise pour s'asseoir), mettez ce script dans l'événement OnUsed du volet script:

void main()
{
  object oChair = OBJECT_SELF;
  if(!GetIsObjectValid( GetSittingCreature(oChair)))
  {
    AssignCommand(GetLastUsedBy(), ActionSit(oChair));
  }
}

Quand je place une créature dans la zone il reste debout. N'y a-t-il a aucun moyen de les faire s'asseoir ?

Non, dans le toolset, non... la créature doit rester debout. La créature devrait être scriptée de sorte que lorsque le jeu commence elle trouve une chaise et exécute la commande ActionSit.

Créez une chaise et donnez lui le tag "CHAIR". Placez le PNJ près de la chaise. Copiez et sauvegardez leur script OnSpawn sous un autre nom, et ajoutez la ligne ci dessous:

ActionSit( GetNearestObjectByTag( "CHAIR", OBJECT_SELF ));

Notez que quand un PJ parlera aux PNJs, il se lèveront. Pour les faire se rasseoir, vous devrez allez dans l'onglet Other Files de leur dialogue. Vous verrez l'emplacement pour deux scripts, un lorsque le dialogue commence et l'autre qand il se termine ou est annulé. Faites un script qui appelle la ligne ci-dessus et ils se rassoiront lorsque le dialogue sera terminé.

C'est bien mais si je veux que le PNJ soit déjà assis dans le tileset ?

Des utilisateurs ont eu du succès en utilisant la méthode ci-dessus... mais en mettant un objet placeable invisible object placé sur le siège de la chaise. Donnez le tag "CHAIR" à l'objet et utilisez la même ligne ActionSit et ils s'assiéront de la même manière qu'au dessus.

Si je veux que mon PNJ dorme sur un lit?

Il n'y a actuellement aucune manière de placer un PNJ dans un lit ou dans un lit d'un tileset. Un objet placeable peut être mis dans un lit mais pas une créature.

Une créature peut cependant dormir sur un objet bedroll ou par terre. Si vous voulez que le PNJ commence le jeu en dormant, vous devriez copier le script OnSpawn, le sauver sous un nom différent, et ensuite ajouter ceci en haut du script :


  effect eLieDown = EffectSleep();
  effect eSnore = EffectVisualEffect (VFX_IMP_SLEEP);
  effect eSleep = EffectLinkEffects (eLieDown, eSnore);
  ApplyEffectToObject (DURATION_TYPE_PERMANENT, eSleep, OBJECT_SELF);
< br />

Réveiller votre PNJ

Si vous voulez que votre PNj se réveille à un certain moment, vous devrez utilisez la commande RemoveEffect. Un effet, une fois appliqué, ne peut pas avoir une variable définie comme EffectSleep, et être désactivé par cette commande. Le pointeur doit être sur cet effet particulier. Si l'effet correspond à la même variable dans le même script que quand il est utilisé, vous pouvez simplement utiliser ceci :

RemoveEffect( OBJECT_SELF, eSleep);

Normalement, vous devrez cependant chercher parmi les effet d'objets et trouvez celui que vous cherchez parmi les autres. Ce qui suit est un script simple pour enlever l'effet sleep (il est dans le OnHeartbeat de la créature et la réveille si un hostile approche a moins de 5m) :

// wake-up script
#include "NW_I0_GENERIC"
void main()
{
    // if I am asleep
    if (GetHasEffect( EFFECT_TYPE_SLEEP))
    {
        // get the nearest enemy creature to me
        object oTarget = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
        // and if there is one and it is less than 5 meters away
        if ( ( GetDistanceToObject( oTarget ) < 5.0) && ( GetIsObjectValid( oTarget ) ) )
        {
            effect eSleep = GetFirstEffect( OBJECT_SELF );
            // scroll through my current effects
            while ( GetIsEffectValid( eSleep ) )
            {
                // and if one of them if the effect sleep but but didn't come from a sleep spell
                if ( ( GetEffectType( eSleep ) == EFFECT_TYPE_SLEEP ) && ( GetEffectSpellId( eSleep ) != SPELL_SLEEP ) )
                {
                    // remove it
                    RemoveEffect( OBJECT_SELF, eSleep );
                }
                eSleep = GetNextEffect( OBJECT_SELF );
            }
        }
    }
}



Traduit en Francais par Jawrill de la guilde des Highlands.
Consulter ce tutorial en version originale.

 
 
Revenir à la page d'accueil du site Ajouter la Bibliothéque de Neverwinter dans vos favoris Afficher une version imprimable de la page
  NeverList - Liste ...
Lyncya 3 - La Gue ...
Sarmates!
Le dernier des fi ...
Bonne année
Joyeux Noël 2010
The Witcher 2 en ...

Archives
Rechercher
 
 
Le Site



NwN 2 - Support des Modules Solos


Groupes
Archives
 

:: design by ghaxir :: coding by baldurien :: la bibliothèque de neverwinter :: tous droits réservés ::