JeuxOnLineForumsPlusConnectés : 121 (sites) | 288 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [recherche] Destruction des NPC la nuit RSS
   
Répondre
Partager Outils Rechercher
Compte #21157
Invité
 
Merci de me retraçer le fil de la disctussion mais même ces corrections appliquées et la compilation des scripts, la zone ne se dépeuple pas la nuit.

C'est surtout cela que je voulais dire.

Et quand tu me dis OnSpawn de la zone...Je ne vois pas ce que c'est.
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
mais, y a pas un bête truc à décocher dans le onspawn ?
zon pas déjà prévu la choe chez bayoère ?
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Ca serait bien, mais vu qu'il n y a effectivement pas de OnSpawn pour les zones (là j'ai l'air un peu con... )

Enfin tu peux bricoler ça avec un script de type DoOnce dans le OnHeartBeat, mais je te le donnerais pas, na, tu m'as vexé !

(@ Reyan > y a bien une possibilité, avec les WP et le OnSpawn des PNJs, mais faut un WP par tag de PNJ et surtout, où vas-tu les mettre, tous ces PNJs ? )
Lien direct vers le message - Vieux
Compte #21157
Invité
 
Citation:
Provient du message de Jedaï
Enfin tu peux bricoler ça avec un script de type DoOnce dans le OnHeartBeat, mais je te le donnerais pas, na, tu m'as vexé !
Excuse moi Jedaï mais ce n'était vraiment pas le but, j'en suis désolé. Mais ce script me prend tellement la tête que je ne sais plus quoi pensé, je l'abandonne ou pas ?

En tous cas, désolé.
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
euh, g vite parcouru le script, et en gros tu vérifie au début l'heure qu'il est, tu ajuste pour supprimer tt le monde à 22h ou aprè, pis tu delay jusqu'a que ce soit l'heure ?
ba un onenter avec une incrémentation ? genre :
Code PHP:
//onenter de la zone

void main()
{
   
int nNb GetLocalnt(OBJECT_SELF"ON_SPAWN");
if(
nNb) return;
else   
SetLocalnt(OBJECT_SELF"ON_SPAWN"TRUE);
    
float fTime HoursToSeconds(GetTimeHour()) + GetTimeMinute()*60.0 GetTimeSecond();
    if(
HoursToSeconds(22)>fTime && fTime<HoursToSeconds(7))
    {
        if(
fTime >= 0.0)
        {
            
float fFirst HoursToSeconds(7) - fTime;
        }
        else
        {
            
float fFirst HoursToSeconds(9) -(HoursToSeconds(22) - fTime);
        }
        
DelayCommand(fFirstSignalEvent(OBJECT_SELFEventUserDefined(4000));
        
SignalEvent(OBJECT_SELFEventUserDefined(4001));
    }
    else
    {
        
float fFirst HoursToSeconds(22) - fTime;
        
DelayCommand(fFirstSignalEvent(OBJECT_SELFEventUserDefined(4000));        
    }
    
    
    
//ici évidemment on peut mettre ce qu'on veut

nan ? g rien compris ? dsl, g pas trop cherché
Lien direct vers le message - Vieux
Compte #21157
Invité
 
Et bien meme en corrigant les parenthéses sur ce script et en le recompilant j'obtient une PARSING VARIABLE LIST sur cette ligne :

Code PHP:
int nNb GetLocalnt(OBJECT_SELF"ON_SPAWN"); 
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
C'est parce qu'il manque le I de Int, suffit de mettre :
Code PHP:
int nNb GetLocalInt(OBJECT_SELF"ON_SPAWN"); 
J'avoue que là c'était un peu vicieux, mais en double-cliquant sur la fonction, tu aurais pu voir qu'elle avait un problème...


Citation:
Excuse moi Jedaï mais ce n'était vraiment pas le but, j'en suis désolé.
Ne t'inquiète pas je disais ça pour rire

Sinon, l'idée de Reyan est très bonne, meilleure que la mienne en fait puisqu'elle exigera moins de charge CPU, cependant, je mettrai plutôt ça ainsi :
Code PHP:
//onenter de la zone



void main()

{

    if( ! 
GetLocalInt(OBJECT_SELF"ON_SPAWN") )
    {
    
SetLocalInt(OBJECT_SELF"ON_SPAWN"TRUE);
    
float fTime HoursToSeconds(GetTimeHour()) + GetTimeMinute()*60.0 GetTimeSecond();
    if(
HoursToSeconds(22)>fTime && fTime<HoursToSeconds(7))
    {
        if(
fTime >= 0.0)
        {
            
float fFirst HoursToSeconds(7) - fTime;
        }
        else
        {
            
float fFirst HoursToSeconds(9) -(HoursToSeconds(22) - fTime);
        }
        
DelayCommand(fFirstSignalEvent(OBJECT_SELFEventUserDefined(4000));
        
SignalEvent(OBJECT_SELFEventUserDefined(4001));
    }
    else
    {
        
float fFirst HoursToSeconds(22) - fTime;
        
DelayCommand(fFirstSignalEvent(OBJECT_SELFEventUserDefined(4000));        
    }   
    }

    
    
//ici évidemment on peut mettre ce qu'on veut

Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
pourquoi ?
non c pas du freepost
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Ben ça supprime une variable intermédiaire inutile (nNb) puisqu'on utilise une seule fois cette valeur. Puis c'est plus 'élégant' de faire ça :
Code PHP:
if( ! GetLocalInt(OBJECT_SELF"ON_SPAWN") )
{
//blabla

que ça :
Code PHP:
int nNb GetLocalnt(OBJECT_SELF"ON_SPAWN");
if(
nNb) return;
else   
SetLocalnt(OBJECT_SELF"ON_SPAWN"TRUE);
//blabla 
Avec un else qui sert à rien en plus

En fait, ma principale raison, c'est que tu avais laissé :
Code PHP:
//ici évidemment on peut mettre ce qu'on veut 
à la fin de ton script, alors qu'évidemment cette partie n'aurait pas eu le comportement d'un OnEnter classique, mais elle aussi d'un OnSpawn de zone, ce qui n'était absolument pas ce que je voulais dire quand j'ai écrit cette ligne.
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
en effet, j'avais même pas vu
merci ^_^
(ca c'en est)
Lien direct vers le message - Vieux
Compte #21157
Invité
 
En tous ca, aprés maintes éssais de correction ces deux parties ne se compilent toujours pas:

Code PHP:
if( ! GetLocalInt(OBJECT_SELF"ON_SPAWN") )
{
//blabla

Code PHP:
int nNb GetLocalnt(OBJECT_SELF"ON_SPAWN");
if(
nNb) return; 
Je les est bien intégré aux 1er script, vérifier les parenthéses ou autres et rien..

J'ai pour les deux une erreur. Franchement, je crois que je vais abandonner, dommage, ca renforce le coté réaliste d'un module ce script .
Lien direct vers le message - Vieux
Avatar de Alastor
Alastor
Alpha & Oméga
 
Avatar de Alastor
 
Citation:
Code:
int nNb = GetLocalint(OBJECT_SELF, "ON_SPAWN");
if(nNb) return;
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Vi, enfin avec une majuscule c'est encore mieux.
Désolé, j'ai édité mon message assez vite, mais tu as du copier-coller avant, actuellement, le script doit donc être bon.

Et Zariel, le petit truc du double clic sur les fonctions, ça marche très bien, j'insiste.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [recherche] Destruction des NPC la nuit
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 05h22.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite