La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 11/11/2024 21:47:54


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 07/07/2004 20:47:34 Sujet du message : Reveillez vous! On nous attaque!

Le module que je suis en train de créer suis la trame de Baldur's gate premier du nom.
Vous le savez tous, dans Baldur's Gate quant on décider de dormir en pleine nature on dans un donjon, il y avait des chances que des créatures viennent nous attaquer pendant notre sommeil.

Voila ma question: comment faire pour que, dans une zone donnée, il y ais ( par exemple ) 50% de chance que des monstres nous attaquent pendant le repos? ( bien sur quant je dis "attaque" j'entends par la: apparition à porximité du PJ et ensuite comportement hostile).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 08/07/2004 09:46:00 Sujet du message :

Voila un script que j'ai fais vite-fait ( rien que pour toi Very Happy ), je ne suis pas sur du tout qu'il marche, mais au moi il se compile : ( a mettre dans le OnPlayerRest du module )

NWScript :
void main()
{
  object oPlayer = GetLastPCRested();

 

  if ( GetSubString( GetTag( GetArea( oPlayer ) ), 0, 3 ) == "don" )
  {
    int nEnnemi = 0;
    int nEnnemis = 3; //nombre d'ennemis qui apparaissent
    int nRandom = Random( 2 );
    vector vEmplacement = Vector( -1.0, 1.0, 0.0 );

    switch ( nRandom )
    {
      case 1:
        while( nEnnemi < nEnnemis )
        {
          CreateObject( OBJECT_TYPE_CREATURE, "ResRef_de_la_creature", Location( GetArea( oPlayer ), GetPosition( oPlayer ) + vEmplacement, 0.0 ), TRUE );
          vector vEmplacement = vEmplacement + Vector ( 1.0, 0.0, 0.0 );
          nEnnemi++;
        }
    }
  }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 08/07/2004 20:08:56 Sujet du message :

Heu merci c'est gentil comme tout mais... je comprends pas... le préfixe "don" je le met devant le "tag" de mes zones? genre "Foret" devient "don_foret" c'est bien ça?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 08/07/2004 20:22:08 Sujet du message :

Ah ben oui c'est bien ça! Je viens de tester ça marche merci beaucoup beaucoup tout plein! Mais... il y a un détaille qui me chagrinne encore: les "monstres" qui attaquent sont... uniquement des blaireaux... ça fait un peut limite dans une crypte par exemple. Comment puis-je changer le script pour qu'il apparaisse des créatures que j'ais crée moi même?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 08/07/2004 20:37:56 Sujet du message :

Hum, hum...

Citation :
Comment puis-je changer le script pour qu'il apparaisse des créatures que j'ais crée moi même?
Tout d'abord sais-tu faire des créatures personnalisées ? Créer une créature, bouton droit dessus, ajouter à la palette.. Pour récupérer le ResRef de cette créature personnalisée:
1. Colonne de droite, Onglet créature, partie personnalisée... tu repères ta crature dans les différentes rubriques.
2. Bouton droit dessus / Propriétés / Avancées / Tu trouves le ResRef (ex macpoil)
3. Dans le script (fort à propos au passage) de Klemmth, tu places ce ResRef entre les guillemets de CreateObject
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 08/07/2004 20:48:52 Sujet du message :

Merci Longbow. Au passage, ton explcation sur la création des créatures n'étais pas necéssaire. Ben oui j'ais déjà créer tout les montres et pnj pour mes 30 premiéres zones donc je pense que sais maintenant comment m'y prendre.

Ah oui les resref, je confond souvent avec les tag! C'est enervant!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 08/07/2004 21:17:56 Sujet du message :

Hummm voilà j'ais changé un peu le script pour que ce soit des bandits qui apparaissent. Mais j'amerais changer quelques petites choses:

- Tout d'abord, j'aimerais qu'il y ais 2 type de crétures qui apparaissent au lieu d'une. Par exemple: bandit001 et bandit002.

- Ensuite les créatures apparaissent trop prés ( ben oui quasiment au corps à corps ). Ca serait bien si ils apparaissaient à... disons 5 métres du PJ.

Comment dois-je changer le script pour faire tout ça?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 08/07/2004 22:40:30 Sujet du message :

Hum, hum...

Je me permet de modifier le script, mais sous toute réserve

NWScript :
void main()
{
  object oPlayer = GetLastPCRested();

 

  if ( GetSubString( GetTag( GetArea( oPlayer ) ), 0, 3 ) == "don" )
  {
    int nEnnemi = 0;
    int nEnnemis = 3;
    int nRandom = Random( 2 );
    vector vEmplacement = Vector( -5.0, 5.0, 0.0 );

    switch ( nRandom )
    {
      case 1:
        while( nEnnemi < nEnnemis )
        {
          CreateObject( OBJECT_TYPE_CREATURE, "bandit001", Location( GetArea( oPlayer ), GetPosition( oPlayer ) + vEmplacement, 0.0 ), TRUE );
          CreateObject( OBJECT_TYPE_CREATURE, "bandit002", Location( GetArea( oPlayer ), GetPosition( oPlayer ) + vEmplacement, 0.0 ), TRUE );
          vector vEmplacement = vEmplacement + Vector ( 1.0, 0.0, 0.0 );
          nEnnemi++;
        }
    }
  }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 09/07/2004 09:04:14 Sujet du message :

Le probleme avec ce genre de script, c'est que si tu es dans le couloir d'un donjon, et qu'il y a par exemple une pièce juste a coté de toi, il se peut que les monstres apparaissent dans la pièce, plus tu augmente la distance a laquelle apparaissent les monstres du joueur, plus les risques que ca arrive augmente, mais si ca te gêne pas Smile
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 09/07/2004 20:39:04 Sujet du message :

Non ce n'est pas génant, mes bandits attaquent seulement dans des zone de type campagne ou foret donc il y a de la place!

Merci pour ton script il est vraiment génial!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 09/07/2004 20:42:43 Sujet du message :

Y a pas de quoi, j'aime bien me rendre utile Very Happy
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 39.281ms