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 22:31:26
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 |
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 Messages: 14066 Localisation: Quadran Alpha |
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 _________________ #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 | |
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