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


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 16/05/2006 12:43:18 Sujet du message : Respawn de portes

Du à une modification des derniers patchs nwn (et contrairement à ce que dit le lexicon), on peut soigner les portes.
Positionnez la variable local RDELAI (multiple de 5 minutes)
Je vous fait une version autonome, en ce qui me concerne, je l'ai intégré à ma gestion centralisée d'évênements.

NWScript :

// library for time functions
// ly_lib_time.nss (partial)
int ly_day()
{
    int iCTY = GetCalendarYear() ;
    int iCTM = GetCalendarMonth() ;
    int iCTD = GetCalendarDay() ;
    int iCDay = iCTY*12*28 + iCTM*28 + iCTD ;
    return iCDay ;
}

int ly_time()
{
    int iTH = GetTimeHour();
    int iTM = GetTimeMinute();
    int iTS = GetTimeSecond();
    int iCTime = FloatToInt(HoursToSeconds(iTH)) + iTM*60 + iTS ;
    return iCTime ;
}
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.


NWScript :

// OnDeath de la porte
//:: ////
//:: Added Lylver 2006-06-12
//:: Respawn des Portes, condition de delai
//:: ////
#include "ly_lib_time"
void main()
{
    object oSelf = OBJECT_SELF;
    SetIsDestroyable(FALSE);
    ExecuteScript("x2_door_death",oSelf);
    SetLocalInt(oSelf,"DEAD",TRUE);
    int iCDay = ly_day() ;
    int iCTime = ly_time() ;
    SetLocalInt(oSelf, "DEATH_D",ly_day());
    SetLocalInt(oSelf, "DEATH_S",ly_time()) ;
}
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.


NWScript :

// * DOORS *
// On AreaTransition Click
#include "ly_lib_time"
void main(){
  object oObj = OBJECT_SELF;
  if( GetLocalInt(oObj,"DEAD") ){
      int RDELAI = GetLocalInt(oObj,"RDELAI");
      if( RDELAI != 0 ){
        nCost++ ;
        int iDeathDay = GetLocalInt(oObj, "DEATH_D");
        int iDeathSecond = GetLocalInt(oObj, "DEATH_S") ;
        int iDeathDelay = iCTime - iDeathSecond +
                FloatToInt(HoursToSeconds((iCDay - iDeathDay) * 24));
        if( iDeathDelay >= RDELAI*300 ){
            int nHeal = GetMaxHitPoints(oObj) - GetCurrentHitPoints(oObj);
            ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHeal), oObj);
            AssignCommand(oObj,PlayAnimation(ANIMATION_DOOR_CLOSE));
            AssignCommand(oObj,ActionCloseDoor(oObj)); // ca fait un peu doublon
           
            DeleteLocalInt(oObj,"DEAD");
        }
      }
  }
}
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
 
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 51.238ms