La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 29/12/2024 18:42:34


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Tuyen
Demi-dieu
Inscrit le: 23 Nov 2002
Messages: 460
Localisation: Chez moi
Répondre en citant
Posté le : 17/05/2003 22:40:10 Sujet du message : Où faut-il mettre les scripts pour les placeables??

Bonjour! Je voulais créer un placeable qui s'allume ( pour l'instant il s'allume tout le temps, je verrais par la suite comment faire pour qu'il ne s'allume que le soir ). Mais quand j'ai ouvert les propriétés du placeables, section script, je n'ai pas trouvé de "OnSpawn". Donc je voulais savoir où mettre mon script, toutes les autres conditions me paraissent pas correspondre avec ce que je veux.
Je veux juste que quand il est là, il s'allume. Je veux pas que le PJ ait à cliquer dessus pour ce faire. Voici mon script :
Code :
void main()
{
    effect Lumiere001;
    Lumiere001 = EffectVisualEffect (VFX_DUR_LIGHT_BLUE_20,FALSE );
    ApplyEffectToObject (DURATION_TYPE_PERMANENT, Lumiere001, OBJECT_SELF, 0.0 );
}

Dans quelle section je dois le mettre svp???
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 17/05/2003 22:55:42 Sujet du message :

et bien .. ca dépend ...
en fait tu as l'air de le créer dynamiquement, donc allume le juste après la création.
si ce n'est pas le cas, ben met le dans la zone sur le OnEnter (avec un test sur un flag histoire de ne pas l'allumer 40 fois ...)

sinon pour le faire que le soir, tu peux faire une fonction récursive qui s'appelle avec un délai égale au délai entre l'instant où le pj rentre, et le moment où la nuit tombe ..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 18/05/2003 05:18:33 Sujet du message :

Un autre truc aussi, juste un petit détail, prends l'habitude pour tes variables de mettre :

eNomDeVariable pour les effets
sNomDeVariable pour les strings
vNomDeVariable pour les vecteurs
oNomDeVariable pour les objets

etc...

C'est peut-être tout bête, mais dans les scripts assez longs, c'est utile pour pas se perdre Wink !
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Tyrion
Ecuyer
Inscrit le: 23 Fév 2003
Messages: 43
Répondre en citant
Posté le : 18/05/2003 08:18:03 Sujet du message :

pour si il fait jour ou nuit tu peux utiliser ceci :

Code :
if (GetIsDusk())//si il fait nuit
{
//lampe alumé
}

else if (GetIsDawn())//ou si il fait jour
{
//lampe éteinte
}


Tyrion
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 18/05/2003 08:31:44 Sujet du message :

Attention ce n'est pas complet : GetIsDusk() c'est pour le crépuscule, et GetIsDawn() c'est pour l'aube. Donc le script ne se déclenchera que si le joueur se trouve dans la zone des placeables au moment où l'aube ou le crépuscule arrive, et pas s'il y arrive quand il fait déjà jour ou déjà nuit. J'ajoute qu'il faudrait également vérifier si le placeable est allumé/éteint selon le cas, pour éviter que le script se déclenche sans arrêt, puisque pour faire tout ça il faut un script sur le onHeartBeat.

Il faut donc mettre sur le onHeartBeat de la zone des placeables :

Code :

if (GetIsDusk() || GetIsNight()) // s'il fait nuit OU si c'est le crépuscule
{
  if(GetLocalInt(GetModule(), "jour") == 0) // Si c'était éteint...
  {
  // commande lampe allumée
  SetLocalInt(GetModule(), "jour", 1); // ...c'est maintenant allumé !
  }
}

if (GetIsDawn() || GetIsDay()) // s'il fait jour OU si c'est l'aube
{
  if(GetLocalInt(GetModule(), "jour") == 1) // Si c'était allumé...
  {
  // commande lampe éteinte
  SetLocalInt(GetModule(), "jour", 0); // ...c'est maintenant éteint !
  }
}


Voilà voilà Smile
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 18/05/2003 10:52:11 Sujet du message :

mouais, sauf qu'avec votre méthode vous faites le calcul toutes les 6 secondes ...
alors que moi je ne le fais qu'une seule fois (mais j'utilise une fonction récursive ..)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 18/05/2003 15:13:12 Sujet du message :

Je pense que c'est pas gênant, la condition est assez sélective pour que la charge CPU soit négligeable. Enfin je pense, j'ai déjà utilisé un script dans ce genre là (jour/nuit) et ça posait aucun problème.
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
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 26.872ms