La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/06/2024 07:48:20


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 27/06/2005 23:28:31 Sujet du message : Zones d'entropie

J'avais une idée avec un ami, j'ai chercher comment la realiser et a part en modifiant chaque script de chaque sort, je vois pas comment faire.

Notre idée est de faire une zone d'entropie: une zone ou quand on lance un sort l'effet du sort est incertain.

IL me manque comment voir si un PJ ou PNJ est en train d'incanter. Apres pour l'effet incertain un d20(minimum) et un effet different pour chaque resultat.

Voila si quelqu'un pourrait m'aider (si c'est possible).

Pour que ce post serve au cas ou, demain jy post mes 2 scripts de zone d'antimagie.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
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 : 28/06/2005 00:12:20 Sujet du message :

Lis bien ce tutorial sur le spell hooking : [http]

Il te permettra de faire à moindre frais ce que tu désires Cool

Pour ton idée précisément, ça devient très simple ! On reprend donc le spell hooking : on crée un script nommé "sort_alternatif", et on place sur le module la variable string suivante : X2_S_UD_SPELLSCRIPT, avec la valeur "sort_alternatif" (puisque c'est le nom qu'on a choisi pour le script regroupant les modifications de sorts).

Voilà, ceci étant fait, tout est très facile ! Pour la zone anti magie, il suffit de placer la variable de type integer nommée ZONE_ANTIMAGIE avec la valeur TRUE sur les zones dans lesquelles on ne veut pas de magie, et dans le script sort_alternatif, on inscrit :

NWScript :
#include "x2_inc_switches"

void main()
{
 
  int nSpell = GetSpellId();

  // retourne le niveau du lanceur
  int nLevel = GetCasterLevel(OBJECT_SELF);

  // retourne la classe du lanceur
  int nClass = GetLastSpellCastClass();

 
  int nSpellDC = GetSpellSaveDC();

 
  location lLoc = GetSpellTargetLocation();

 
  object oCible = GetSpellTargetObject();

  // si un objet lance le sort, cette fonction retourne l'objet en question
  object oItemUsed = GetSpellCastItem();

 

  if(GetLocalInt(GetArea(OBJECT_SELF), "ZONE_ANTIMAGIE") == TRUE)
  {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "La magie ne semble pas exister dans cet endroit...");
  }
}
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.


Maintenant, pour l'effet aléatoire, on utilise le même principe. Si la zone possède la variable "ZONE_ENTROPIE" à TRUE, alors c'est une zone dans laquelle la magie est aléatoire. On ajoute à la suite du précédent, toujours dans le script "sort_alternatif" le code (je remets le script entier donc) :

NWScript :
#include "x2_inc_switches"

void main()
{
 
  int nSpell = GetSpellId();

  // retourne le niveau du lanceur
  int nLevel = GetCasterLevel(OBJECT_SELF);

  // retourne la classe du lanceur
  int nClass = GetLastSpellCastClass();

 
  int nSpellDC = GetSpellSaveDC();

 
  location lLoc = GetSpellTargetLocation();

 
  object oCible = GetSpellTargetObject();

  // si un objet lance le sort, cette fonction retourne l'objet en question
  object oItemUsed = GetSpellCastItem();

 

  ////////////////////
  // ZONE ANTIMAGIE //
  ////////////////////
  if(GetLocalInt(GetArea(OBJECT_SELF), "ZONE_ANTIMAGIE") == TRUE)
  {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "La magie ne semble pas exister dans cet endroit...");
  }

  //////////////////////////
  // ZONE MAGIE ALEATOIRE //
  //////////////////////////
  if(GetLocalInt(GetArea(OBJECT_SELF), "ZONE_ENTROPIE") == TRUE)
  {
    switch(d20());
    {
      case 1:
     
      case 2:
     

      // ...

      case 19:
     
      case 20:
     
    }
  }
}
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.


Et le tour est joué Cool
_________________
» 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
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 28/06/2005 08:24:40 Sujet du message :

Merci beaucoup, je l'ai vu ton tutorial et il est genial on peut faire enormement de choses avec. Super!!!!
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 28/06/2005 09:08:25 Sujet du message :

J'ai testé le Spell-Hooking j'ai mis ton 1er exemple avec la boule de feu, mais ca sest appliqué a tous les sorts. Pour chaque sort il me dit quil faut le composant. Bizarre j'ai fais copier coller^^.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Joubinator
Ecuyer
Inscrit le: 07 Jan 2003
Messages: 42
Localisation: Yvelines
Répondre en citant
Posté le : 28/06/2005 09:33:28 Sujet du message :

Un mappeur m'a dit dernierement que pour les zones d'entropie, il suffusiait de cocher un case dans les propriétés de la zone .......... à voir et à confirmer ! Very Happy
_________________
M'enfous si les pjs tuent mes monstres,.... j'en ai plein (paroles d'un DM d'expérience Wink )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 28/06/2005 09:56:49 Sujet du message :

J'ai trouvé pourquoi tas fais une petite erreur dans ta condition(une erreur que j'ai souvent fait).

Dans les conditions il faut toujours mettre == jamais =.
==: sert a verifier une egalité entre 2 variables
=: sert a definir une variable

donc ca donne:
NWScript :

  if(nSpell == SPELL_FIREBALL)
  {
    if(!GetIsObjectValid(GetItemPossessedBy(OBJECT_SELF, "COMPO_BDF")))
    {
      SetModuleOverrideSpellScriptFinished();
      SendMessageToPC(OBJECT_SELF, "");
    }
  }
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.



Voila le premier exemple corrigé, tu as fais la meme erreur pour le 3eme...
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
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 : 28/06/2005 12:39:47 Sujet du message :

Hop, encore une des erreurs à la con habituelle, merci de l'avoir signalé, c'est corrigé 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
 
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 30.573ms