begin A_P_lamp_palais_gouv ; merci a3jv short jour if ( jour == 0 ) if ( GameHour >= 8 ) if ( GameHour < 20 ) disable set jour to 1 endif endif endif if ( jour == 1 ) if ( GameHour < 8 ) enable set jour to 0 elseif ( GameHour >= 20 ) enable set jour to 0 endif endif end
Ce script active ou désactive des lampes qui diffusent du noir pendant la nuit uniquement dans des cells intérieures. Le problème c'est que le disable fonctionne mal avec les npcs: sur ces derniers, la lumière négative se diffuse même quand la lampe est disable et que la lumière sombre n'est plus dans la pièce.
La solution, que j'ai déjà expérimentée, est de baisser les lampes (de 2000 unités au moins). Il suffit à la place du "disable" de mettre "move z -2000" pour descendre et "move z 2000" pour remonter le jour venu.
J'en arrive à la difficulté: il arrive que cette instruction ne fonctionne pas (quand on change de cell alors que le jour est devenu nuit, ou l'inverse) et je pense que le souci vient du fait que le "move" doit impérativement s'exécuter une fois et une seule... Je pense que parfois, à cause de fluctuation aléatoire du framerate, soit l'instruction ne s'éxécute pas complètement (la lampe baisse moins de 2000), soit il s'exécute trop (la lampe baisse plus de 2000), et du coup ça dérègle tout. Résultat, il fait nuit en plein jour et vice-versa...
J'aurai besoin de votre aide pour améliorer ce script, je supose, en établissant un système de contrôle pour que la lampe descende bien une seule fois de 2000 et remonte pareil.
Je précise, parce qu'il faut compliquer un peu, que je suis morro seul, et donc impossible d'utiliser setpos avec des variables...
Merci beaucoup aux courageux!
Modifié par Orann, 02 juillet 2009 - 08:47.