La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/09/2024 06:24:55


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 14/01/2004 10:44:59 Sujet du message : repos et pdv

Boulet !

encore moi, encore pour une question stupide !

voila :
lors du repos, le personnage recupere tout ses pdv. Mais voila, dans le RPJ Donjons et dragons 3eme edition, le personnage ne recupere que son niveau (si il est niveau 3, il recupere que 3 pdv).

Je voudrai que cela fasse pareil dans mon module !

Vous pouvez m'aider ?
Merci a vous !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Tzeentsh
Ecuyer
Inscrit le: 01 Déc 2002
Messages: 41
Répondre en citant
Posté le : 14/01/2004 12:42:03 Sujet du message :

Ca m'interesse aussi beaucoup et j'ai déjà réfléchis à cette question. Je n'ai malheureusement pas trouvé de solution "propre". Le mieux, je pense, est d'infliger des dommages au pj lors du repos.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 14/01/2004 14:16:05 Sujet du message :


Tzeentsh a écrit :
Ca m'interesse aussi beaucoup et j'ai déjà réfléchis à cette question. Je n'ai malheureusement pas trouvé de solution "propre". Le mieux, je pense, est d'infliger des dommages au pj lors du repos.
Non, pas lors du repos, mais à la fin de celui-ci en se renseignant, dès le début du repos, sur son statut courant et en le stockant. On peut également considéré qu'un temps de repos qui n'aura pas été respecté jusqu'au bout empêchera le personnage de récupérer le moindre point de vie. Voici une solution basée sur le OnPlayerRest du module :
NWScript :

void SetCreatureHitPoints(object oCreature, int nAmount)
{
 
  effect eSetHP;
  int nCurHP = GetCurrentHitPoints(oCreature);
  int nMaxHP = GetMaxHitPoints(oCreature);
  if (nAmount > nMaxHP)
  {
    nAmount = nMaxHP;
  }
  else if (nAmount < -10)
  {
    nAmount = -10;
  }
  int nDelta = nAmount - nCurHP;
  if (nDelta > 0)
  {
    eSetHP = EffectHeal(nDelta);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSetHP, oPC);
  }
  else if (nDelta < 0)
  {
    eSetHP = EffectDamage(abs(nDelta), DAMAGE_TYPE_DIVINE, DAMAGE_POWER_ENERGY)
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSetHP, oPC);
  }
}

void main()
{
  object oPC = GetLastPCRested();
  int nRestEvent = GetLastRestEventType();
 
  switch (nRestEvent)
  {
    case REST_EVENTTYPE_REST_CANCELLED :
    {
      int nNewAmount = GetLocalInt(oPC, "CURRENTHP");
      SetCreatureHitPoints(oPC, nNewAmount);
      SendMessageToPC(oPC, "");
    }break;
    case REST_EVENTTYPE_REST_FINISHED : // Le repos se termine normalement
    {
      int nNewAmount = GetLocalInt(oPC, "CURRENTHP") + GetHitDice(oPC);
      SetCreatureHitPoints(oPC, nNewAmount);
      SendMessageToPC(oPC, "");
    }break;
    case REST_EVENTTYPE_REST_INVALID :
    {
     
    }break;
    case REST_EVENTTYPE_REST_STARTED :
    {
      SetLocalInt(oPC, "CURRENTHP", GetCurrentHitPoints(oPC)); // Sauvegarde des PV courants.
    }break;
  }
}
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.

_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ 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 52.07ms