La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 22:31:26


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Attention ! Vous êtes en train de lire un message hors de son contexte. Veuillez lire le sujet Balise [Nwscript] à l'essai en entier avant de répondre à ce message.
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14066
Localisation: Quadran Alpha
Répondre en citant
Posté le : 02/11/2003 18:04:10 Sujet du message : Balise [Nwscript] à l'essai

Veuillez ne pas faire attention au contenu, ni quoi que ce soit d'autre de ce message.

NWScript :

#include "bcn_debug"
const int __DEBUG_MODE_ENABLED__ = TRUE;
/*
CutScene Function :

Il s'agit d'un set de fonction speciale pour gerer la camera
avec le NWScript.

$Idv: v1.0

Les fonctions prefixees par __ sont des fonctions PRIVEES.
Ne vous en servez JAMAIS.
**/

/* headers.start() */

// @ref SetCutsceneMode RestoreCameraFacing StoreCameraFacing
// Cette fonction place le jeu en mode CutScene pour la creature
// choisie. De plus, cela sauvegarde la camera et la restaure
// en fin de cutScene.
// - oCreature : Creature qui va "subir" la cutscene.
// - bState    : on demarre ou non la cutScene
// - fDelay    : delai avant de commencer la cutScene.
void cut_mode( object oCreature, int bState, float fDelay = 0.0 );

// @ref PlayAnimation
// Cette fonction force une creature a jouer une animation. Pour
// le joueur, le mieux reste dans la creation d'une copie de son
// personnage avec CopyObject.
// - oCreature : Creature qui va faire l'animation.
// - iAnimation: animation ANIMATION_*
// - fDuration : duree de l'animation
// - fDelay    : delai avant de commencer l'animation.
void cut_animation( object oCreature, int iAnimation, float fDuration = 0.0, float fDelay = 0.0 );

// @ref ActionJumpToLocation
// Deplace la creature sur une autre location.
// - oCreature : Creature qui va faire un voyage.
// - lLocation : Point d'arrive
// - fDelay    : delai avant de faire le voyage.
void cut_jump_to_location( object oCreature, location lLocation, float fDelay = 0.0 );

// @ref ActionMoveToLocation
// Fait se deplacer la creature sur une autre location.
// - oCreature : Creature qui va faire un voyage.
// - lLocation : Point d'arrive
// - fDelay    : delai avant de commencer de bouger.
// - bRun      : A t'on le feu au cul ? Si oui, on court, sinon...
void cut_move_to_location( object oCreature, location lLocation, float fDelay = 0.0, int bRun = FALSE );

// @ref SetCameraFacing, SetCameraMode
// Change le mode et le 'facing' de la camera
// - oCreature  : Creature qui va subir vos mouvements de camera (PC)
// - fDelay      : delai avant de commencer le mouvement de la camera.
// - iCameraType : mode de camera, typiquement : CAMERA_MODE_*
// Variable SetCameraFacing :
// 1. "-1.0" permet de garder la valeur actuelle et eviter un mouvement
// de camera.
// 2. La camera regarde toujours le joueur.
// - fFacing    : angle de placement de la camera par rapport a l'est.
//                fFacing doit etre superieure ou egal a 0.0
// - fZoom      : Distance entre le joueur et la camera.
//                fZoom doit etre entre 5.0 et 20.0
// - fPitch      : Inclinaison de la camera par rapport a l'axe z.
//                1.0  = pres de l'axe z
//                50.0 = loin de l'axe z
// - nSpeed      : vitesse du mouvement s'il y a a. Voir CAMERA_TRANSITION_*
void cut_set_camera( object oCreature, float fDelay, int iCameraType, float fFacing, float fZoom, float fPitch, int nSpeed );

// Utilise le nouvel effet VFX_DUR_CUTSCENE_INVISIBILITY et cache le
// joueur de l'ecran. Pratique pour toute les scenes d'animation !
// [note] cette fonction pourrait aussi contenir ce qu'il faut pour
//  eviter que le joueur soit attaque ou tue.
// - oPlayer    : joueur (ou creature) a rendre completement invisible.
// - fDelay      : delai avant de commencer l'animation.
//
// [note] l'effet rendu 'extraordinaire' via ExtraordinaryEffect.
//  c'est surtout pour bien distinguer cet effet lors de la
//  suppression.
void cut_player_hide( object oPlayer, float fDelay = 0.0 );

// Enleve l'effet VFX_DUR_CUTSCENE_INVISIBILITY.
// - oPlayer    : joueur (ou creature) a rendre completement visible.
// - fDelay      : delai avant de commencer l'animation.
// [note] en fait, cela supprime certains types d'effet. Il y a donc
//    des risques (faibles) que des effets soient effaces alors qu'ils
//    ne devraient pas l'etre.
void cut_player_show( object oPlayer, float fDelay = 0.0 );

// @ref GetLocation, GetObjectByTag
// Cette fonction permet d'obtenir la location d'un objet par son tag.
// - sTag : tag de l'objet.
// - nNth : a utiliser si plusieurs objets ont le meme tag.
location cut_get_location( string sTag, int nNth=0 );

// @ref SpeakOneLinerConversation
// Utilise le dialogue sDialog pour faire parler oCreature.
// - oCreature : creature qui va parler.
// - sDialog  : dialogue de la creature.
// - fDelay    : delai avant de parler.
void cut_say( object oCreature, string sDialog, float fDelay = 0.0 );

// @ref ActionSpeakStringByStrRef
// Fait parler une creature en utilisant une reference du tlk.
// - oCreature : creature qui va parler.
// - iRef      : reference du tlk.
// - fDelay    : delai avant de parler.
// - iVolume  : variable TALKVOLUME_*
void cut_say_by_ref( object oCreature, int iRef, float fDelay = 0.0, int iVolume = TALKVOLUME_TALK );

// @ref ActionSpeakString
// Fait parler une creature en utilisant une chaine quelconque
// - oCreature : creature qui va parler.
// - sMessage  : ce quelle doit dire.
// - fDelay    : delai avant de parler.
// - iVolume  : variable TALKVOLUME_*
void cut_say_string( object oCreature, string sMessage, float fDelay = 0.0, int iVolume = TALKVOLUME_TALK );

// @ref Get2DAString ActionSpeakString
// Fait parler une creature en utilisant une chaine provenant d'un fichier 2da.
// - oCreature : creature qui va parler.
// - i2DAId    : numero de la rangee (premiere colonne du 2da).
// - fDelay    : delai avant de parler.
// - s2DAFile  : fichier 2da a lire.
// - s2DAField : champs TEXTE a extraire.
// - iVolume  : variable TALKVOLUME_*
// [note] evitez des gros 2da, et pensez a faire des sauvegardes
//    des variables en cas de multiple appel. C'est mieux.
void cut_say_by_2da( object oCreature, int i2DAId, float fDelay = 0.0, string s2DAFile = "tlk2da", string s2DAField = "dialog", int iVolume = TALKVOLUME_TALK );

// Definit un entier local sur une creature.
// - oCreature : creature ou l'on definit l'entier
// - sVarname  : nom de la variable stockee
// - iValue    : valeur de la variable
// - fDelay    : delai avant de definir la variable.
void cut_set_int( object oCreature, string sVarname, int iValue, float fDelay = 0.0 );

// Demarre l'objet-son denomme par le tag sSoundTag au bout
// de fDelay secondes.
// - sSoundTag : tag de l'objet
// - fDelay    : second avant declenchement du son
// - nNth      : si plusieurs objets ont le meme tag...
void cut_sound_play( string sSoundTag, float fDelay = 0.0, int nNth = 0 );

// Stop l'objet-son denomme par le tag sSoundTag au bout
// de fDelay secondes.
// - sSoundTag : tag de l'objet
// - fDelay    : second avant declenchement du son
// - nNth      : si plusieurs objets ont le meme tag...
void cut_sound_stop( string sSoundTag, float fDelay = 0.0, int nNth = 0 );

// Force une creature a faire face a une autre (ou un objet).
// - oCreature    : creature qui doit faire face a une autre.
// - oObjectToFace : objet a regarder.
// - fDelay        : delai avant de regarder oObjectToFace
void cut_face_to( object oCreature, object oObjectToFace, float fDelay = 0.0 );

// @ref FadeToBlack
void cut_fade_to_black( object oCreature, float fSpeed = FADE_SPEED_MEDIUM, float fDelay = 0.0 );
// @ref FadeFromBlack
void cut_fade_from_black( object oCreature, float fSpeed = FADE_SPEED_MEDIUM, float fDelay = 0.0 );
// @ref BlackScreen
void cut_black_screen( object oCreature, float fDelay = 0.0 );
// @ref StopFade
void cut_fade_stop( object oCreature, float fDelay = 0.0 );
// @ref DestroyObject
void cut_destroy_object( object oObject, float fDelay = 0.0 );
// @ref ActionStartConversation
void cut_speak( object oCreature, object oSpeakTo, string sDialog, float fDelay = 0.0, int bPrivateConversation=FALSE );
// @ref PlayVoiceChat
void cut_voice( object oCreature, int nVoiceChatID, float fDelay = 0.0 );
/* headers.end() */
/* body.start() */

/* cut_mode.start() */
void cut_mode( object oCreature, int bState, float fDelay = 0.0 )
{
  if ( bState == TRUE )
    DelayCommand( fDelay, AssignCommand( oCreature, StoreCameraFacing() ) );
  DelayCommand( fDelay, SetCutsceneMode( oCreature, bState ) );

  if ( bState == FALSE )
    DelayCommand( fDelay, AssignCommand( oCreature, RestoreCameraFacing() ) );
}
/* cut_mode.end() */

/* cut_animation.start() */
void __cut_animation( object oCreature, int iAnimation, float fDuration )
{
  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, PlayAnimation( iAnimation, 1.0, fDuration ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, PlayAnimation( iAnimation, 1.0, fDuration ) );
}

void cut_animation( object oCreature, int iAnimation, float fDuration = 0.0, float fDelay = 0.0 )
{
  DelayCommand( fDelay, __cut_animation( oCreature, iAnimation, fDuration ) );
}
/* cut_animation.end() */

/* cut_move_to_location.start() */
void __cut_move_to_location( object oCreature, location lLocation, int bRun )
{
  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, ActionMoveToLocation( lLocation, bRun ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, ActionMoveToLocation( lLocation, bRun ) );
}

void cut_move_to_location( object oCreature, location lLocation, float fDelay = 0.0, int bRun = FALSE )
{
  DelayCommand( fDelay, __cut_move_to_location( oCreature, lLocation, bRun ) );
}
/* cut_move_to_location.end() */

/* cut_jump_to_location.start() */
void __cut_jump_to_location( object oCreature, location lLocation )
{
  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, ActionJumpToLocation( lLocation ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, ActionJumpToLocation( lLocation ) );
}

void cut_jump_to_location( object oCreature, location lLocation, float fDelay = 0.0 )
{
  DelayCommand( fDelay, __cut_jump_to_location( oCreature, lLocation ) );
}
/* cut_jump_to_location.end() */

/* cut_set_camera.start() */
void __cut_camera_set( object oCreature, int iCameraType, float fFacing, float fZoom, float fPitch, int nSpeed)
{
  if ( __DEBUG_MODE_ENABLED__ == TRUE )
  {
    print( "Camera Debug Mode :" );
    print( "-------------------------------------------" );
    print( "camera.type := " + IntToString( iCameraType ) );
    print( "camera.facing := " + FloatToString( fFacing ) );
    print( "camera.zoom := " + FloatToString( fZoom ) );
    print( "camera.pitch := " + FloatToString( fPitch ) );
    print( "camera.speed := " + IntToString( nSpeed ) );
    print( "-------------------------------------------" );
  }

  SetCameraMode( oCreature, iCameraType);
  AssignCommand( oCreature, SetCameraFacing( fFacing, fZoom, fPitch, nSpeed ) );
}

void cut_set_camera( object oCreature, float fDelay, int iCameraType, float fFacing, float fZoom, float fPitch, int nSpeed)
{
  DelayCommand( fDelay, __cut_camera_set( oCreature, iCameraType, fFacing, fZoom, fPitch, nSpeed ) );
}
/* cut_set_camera.end() */

/* cut_player_hide.start() */
void __cut_player_hide( object oPlayer )
{
  effect eHide = ExtraordinaryEffect( EffectVisualEffect( VFX_DUR_CUTSCENE_INVISIBILITY ) );
  ApplyEffectToObject( DURATION_TYPE_PERMANENT, eHide, oPlayer );

  /*
  // Enlever les commentaires pour appliquer un
  // effet eEtheral la creature.
  effect eEtheral = ExtraordinaryEffect( EffectEthereal() );
  ApplyEffectToObject( DURATION_TYPE_PERMANENT, eEtheral, oPlayer );
  */
}

void cut_player_hide( object oPlayer, float fDelay = 0.0 )
{
  DelayCommand( fDelay, __cut_player_hide( oPlayer ) );
}
/* cut_player_hide.end() */

/* cut_player_show.start() */
void __cut_player_show( object oPlayer )
{
  effect eEffect = GetFirstEffect( oPlayer );
  int iType, iSubType;

  while ( GetIsEffectValid( eEffect ) )
  {
    iType = GetEffectType( eEffect );
    iSubType = GetEffectSubType( eEffect );
/* // Si vous avez mis un effet 'ethereal' :
          iType == EFFECT_TYPE_ETHEREAL ||
          iType == EFFECT_TYPE_SANCTUARY
*/

    if ( ( iType == EFFECT_TYPE_VISUALEFFECT ||
          iType == EFFECT_TYPE_IMPROVEDINVISIBILITY ) &&
          iSubType == SUBTYPE_EXTRAORDINARY )
    {
      RemoveEffect( oPlayer, eEffect );
    }
    eEffect = GetNextEffect( oPlayer );
  }
}

void cut_player_show( object oPlayer, float fDelay = 0.0 )
{
  DelayCommand( fDelay, __cut_player_show( oPlayer ) );
}
/* cut_player_show.end() */

/* cut_get_location.start() */
location cut_get_location( string sTag, int nNth=0 )
{
  return GetLocation( GetObjectByTag( sTag, nNth ) );
}
/* cut_get_location.end() */

/* cut_say.start() */
void __cut_say( object oCreature, string sDialog )
{
  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, SpeakOneLinerConversation( sDialog, oCreature ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, SpeakOneLinerConversation( sDialog, oCreature ) );
}

void cut_say( object oCreature, string sDialog, float fDelay = 0.0 )
{
  DelayCommand( fDelay, __cut_say( oCreature, sDialog ) );
}
/* cut_say.end() */

/* cut_say_by_ref.start() */
void __cut_say_by_ref( object oCreature, int iRef, int iVolume )
{
  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, ActionSpeakStringByStrRef( iRef, iVolume ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, ActionSpeakStringByStrRef( iRef, iVolume ) );
}

void cut_say_by_ref( object oCreature, int iRef, float fDelay = 0.0, int iVolume = TALKVOLUME_TALK )
{
  DelayCommand( fDelay, __cut_say_by_ref( oCreature, iRef, iVolume ) );
}
/* cut_say_by_ref.end() */

/* cut_say_string.start() */
void __cut_say_string( object oCreature, string sMessage, int iVolume )
{
  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, ActionSpeakString( sMessage, iVolume ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, ActionSpeakString( sMessage, iVolume ) );
}

void cut_say_string( object oCreature, string sMessage, float fDelay = 0.0, int iVolume = TALKVOLUME_TALK )
{
  DelayCommand( fDelay, __cut_say_string( oCreature, sMessage, iVolume ) );
}
/* cut_say_string.end() */

/* cut_say_by_2da.start() */
// @use __cut_say_string
void cut_say_by_2da( object oCreature, int i2DAId, float fDelay = 0.0, string s2DAFile = "tlk2da", string s2DAField = "dialog", int iVolume = TALKVOLUME_TALK )
{
  string sMessage = Get2DAString( s2DAFile, s2DAField, i2DAId );

  DelayCommand( fDelay, __cut_say_string( oCreature, sMessage, iVolume ) );
}
/* cut_say_by_2da.end() */

/* cut_set_int.start() */
void cut_set_int( object oCreature, string sVarname, int iValue, float fDelay = 0.0 )
{
  DelayCommand( fDelay, SetLocalInt( oCreature, sVarname, iValue ) );
}[/nswcript]
[nwscript]/* cut_set_int.end() */

/* cut_sound_play.start() */
void cut_sound_play( string sSoundTag, float fDelay = 0.0, int nNth = 0 )
{
  DelayCommand( fDelay, SoundObjectPlay( GetObjectByTag( sSoundTag, nNth ) ) );
}
/* cut_sound_play.end() */
/* cut_sound_stop.start() */
void cut_sound_stop( string sSoundTag, float fDelay = 0.0, int nNth = 0 )
{
  DelayCommand( fDelay, SoundObjectStop( GetObjectByTag( sSoundTag, nNth ) ) );
}
/* cut_sound_stop.end() */

/* cut_face_to.start() */
void cut_face_to( object oCreature, object oObjectToFace, float fDelay = 0.0 )
{
  vector vObjectToFace = GetPosition( oObjectToFace );
  DelayCommand( fDelay, AssignCommand( oCreature, SetFacingPoint( vObjectToFace ) ) );
}
/* cut_face_to.end() */

/* cut_fade_to_black.start() */
void cut_fade_to_black( object oCreature, float fSpeed = FADE_SPEED_MEDIUM, float fDelay = 0.0 )
{
  DelayCommand( fDelay, FadeToBlack( oCreature, fSpeed ) );
}
/* cut_fade_to_black.end() */

/* cut_fade_from_black.start() */
void cut_fade_from_black( object oCreature, float fSpeed = FADE_SPEED_MEDIUM, float fDelay = 0.0 )
{
  DelayCommand( fDelay, FadeFromBlack( oCreature, fSpeed ) );
}
/* cut_fade_from_black.end() */

/* cut_black_screen.start() */
void cut_black_screen( object oCreature, float fDelay = 0.0 )
{
  DelayCommand( fDelay, BlackScreen( oCreature ) );
}
/* cut_black_screen.end() */
/* cut_fade_stop.start() */
void cut_fade_stop( object oCreature, float fDelay = 0.0 )
{
  DelayCommand( fDelay, StopFade( oCreature ) );
}
/* cut_fade_stop.end() */

/* cut_destroy_object.start() */
void cut_destroy_object( object oObject, float fDelay = 0.0 )
{
  DestroyObject( oObject, fDelay );
}
/* cut_destroy_object.end() */

/* cut_speak.start() */
void __cut_speak( object oCreature, object oSpeakTo, string sDialog, int bPrivateConversation )
{
  if ( __DEBUG_MODE_ENABLED__ == TRUE )
    print( GetName( oCreature ) + " [" + GetTag( oCreature ) + "] is trying to use <" + sDialog + "> as dialog to speak with " + GetName( oSpeakTo ) + " [" + GetTag( oSpeakTo ) + "]" );

  if ( GetCommandable( oCreature ) == FALSE )
  {
    SetCommandable( TRUE, oCreature );
    AssignCommand( oCreature, ActionStartConversation( oSpeakTo, sDialog, bPrivateConversation ) );
    SetCommandable( FALSE, oCreature );
  }
  else
    AssignCommand( oCreature, ActionStartConversation( oSpeakTo, sDialog, bPrivateConversation ) );
}

void cut_speak( object oCreature, object oSpeakTo, string sDialog, float fDelay = 0.0, int bPrivateConversation=FALSE )
{
  DelayCommand( fDelay, __cut_speak( oCreature, oSpeakTo, sDialog, bPrivateConversation ) );
}
/* cut_speak.end() */

/* cut_voice.end() */
void cut_voice( object oCreature, int nVoiceChatID, float fDelay = 0.0 )
{
  DelayCommand( fDelay, PlayVoiceChat( nVoiceChatID, oCreature ) );
}
/* cut_voice.end() */

/* body.end() */

////////////////////////////////////////////////////////
//
//  NWScript
//
//  The list of actions and pre-defined constants.
//
//  (c) BioWare Corp, 1999
//
////////////////////////////////////////////////////////

#define ENGINE_NUM_STRUCTURES  5
#define ENGINE_STRUCTURE_0      effect
#define ENGINE_STRUCTURE_1      event
#define ENGINE_STRUCTURE_2      location
#define ENGINE_STRUCTURE_3      talent

// Constants

int    NUM_INVENTORY_SLOTS      = 18;

int    TRUE                 

Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.

_________________
#nwnights-fr @ irc.darkmyst.org TitanQuest-FR
Dernière édition par Baldurien le 02/11/2003 21:09:26; édité 3 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 39.247ms