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 13:34:04


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 14/02/2003 17:52:44 Sujet du message : Une ville vivante

J'ai créé un système de scripts pour rendre une ville "vivante": A savoir par exemple que le jour un pnj pourra se balader dans la ville et la nuit il va rentrer chez lui. Ca marche assez bien et c'est simple à utiliser: il suffit de placer les scripts que j'ai écris dans le onhearbeat et le onspawn des pnj que vous voulez rendre "vivant", puis il n'y a qu'a placer des waypoints avec les bon tags aux bons endroits. J'ai créé ce système pour le besoin de mon prochain module (où il est important que les villageois ne trainent pas dehors la nuit).
Donc si quelqu'un est intéressé je suis tout à fait prêt à mettre les sources sur ce forum, ou mieux a créer des .erf tout prêt, avec un beau fichier d'instruction, et que vous n'aurez plus qu'à importer dans votre module.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Youkai
Novice
Inscrit le: 19 Jan 2003
Messages: 11
Répondre en citant
Posté le : 14/02/2003 20:17:43 Sujet du message :

Interessant, je cherchais justement à faire un tel system Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jawrill
Grand Sage du Conseil
Inscrit le: 16 Déc 2002
Messages: 621
Localisation: Divonnes01 (pres d'Annecy et Geneve)
Répondre en citant
Posté le : 14/02/2003 21:07:12 Sujet du message :

je ne veux pas faire du tord a ton boulot Serguai, mai simplement est ce qu'il fo mettre un script dans chaque onheartbeat du villageois que l'on veux "vitaliser" ?? parce que dans ce cas ca va vite devenir limite en ressources. Je precise aussi qu'il y a pas mal de systeme de ce genre disponible sur Vault, ce serait peut etre bien d'y jetter un oeil, pour ne pas faire deux fois le meme boulot et se porter plutot sur les ameliorations. Voila mon avis, ne le prend pas comme une attaque personnelle ce n'est pas le cas.
_________________
La mort est comme une prostituée on est soit son client soit son maquereau.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM Yahoo Messenger MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 15/02/2003 00:03:22 Sujet du message :

Non ne t'inquiète pas y'a pas de mal.
En fait je ne sais pas si tu as regardé mais il y'a déjà des scripts dans les onheartbeat de TOUTES les créatures, et ce n'est pas limite en ressource pour autant. Les onheartbeat qui pompent trop de ressources c'est de la légende tu peux me croire, où alors c'est que les scripts en questions sont très lourds (genre des boucles ... ou des scripts vraiment mal foutus).
Mon système de script rajoute pour chaque heartbeat 4 conditions(if) et quelques instructions alors que dans chaque heartbeat il y'a a la base une dizaines de conditions et pas mal d'instructions !
D'autre part je l'ai évidemment testé, et ca ne ralentit pas plus que la normale Smile. C'est carrément négligeable par rapport a la quantité de calculs qu'il faut pour l'affichage (Je fais de l'opengl, je sais de quoi je parle).

Voilà évidemment je défend mon script, mais si tu veux je te le donne, tu n'aura qu'à tester et tu t'en rendra compte Razz

Sinon j'ai un peu regardé ce qu'il y'avait sur nwn vault mais ca ne me convenait pas vraiment, donc j'ai fait mon propre système voilà tout.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Jedaï
Chevalier
Inscrit le: 14 Nov 2002
Messages: 89
Localisation: Le Havre, ville pourrie
Répondre en citant
Posté le : 15/02/2003 08:21:13 Sujet du message :

Bah mets le à disposition, de toutes façon ce genre de système est toujours intéressant (d'autant que celui-ci n'a pas besoin d'être traduit...), chacun a des goûts différents point de vue animation donc... Very Happy

Pour le OnHeartBeat, tout dépend de ce qui est fait et surtout des fonctions qui y sont utilisés (les boucles ne font pas de bien non plus...), certaines étant très gourmandes, particulièrement les fonctions d'acquisition d'objet ou de recalcul des lumières. En bref, l'idée c'est qu'il ne faut farfouiller dans le OnHeartBeat qu'en dernier recours, et surtout savoir ce qu'on fait. Very Happy . Mais au vu des quelques scripts postés, je pense que Serquai sait ce qu'il fait ! Razz

Par ailleurs, si tu m'envoit ces scripts au format .nss et pas .erf, je serai content de t'en dire ce que j'en pense, et peut-être que je les utiliserai dans un prochain module. Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 15/02/2003 13:28:23 Sujet du message :

Voui en fait le heartbeat est quelque chose qui s'exécute en boucle donc y rajouter des boucles c'est la mauvaise idée (complexité n² pour les connaisseurs).
Et en effet tu as raison il ne vaut mieux pas y mettre de RecomputeStaticLightning (même quand on le met dans une action "simple" on sent le temps de calcul !).
En fait vous verrez qu'il n'y a pas de soucis parce que les instructions ne sont exécutés que deux fois par jour (à savoir au lever et au coucher du soleil). Le reste du temps ca ne rajoute que deux tests, ce qui est assez négligeable.
Donc je vous met les scripts tout à l'heure parce que pour le moment je dois partir Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 15/02/2003 17:26:06 Sujet du message :

En effet ça m'intéresse aussi, je vais justement devoir modéliser une grande ville pour Loup Solitaire 2, et j'aimerais bien la rendre un tant soit peu vivante Wink


Sinon, je rappelle aux gens qui fréquentent ce forum qu'il y a un topic dédié à vos scripts, en post-it, et qu'il n'est pas rempli très souvent... Wink
(par contre évitez de poster des commentaires dans ce topic, ça deviendrait vite le bordel... Confused )
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
PetitPrince
Super-Mouton
Inscrit le: 12 Sep 2002
Messages: 2043
Localisation: Asteroïde B-612 actuellement crashé en Suisse
Répondre en citant
Posté le : 15/02/2003 18:43:18 Sujet du message :

Ca m'interesse Smile. C'est compatible avec un module persistant ?
_________________
b-612.yi.org (chez moi) | tetrisconcept.com (LE site sur Tetris) | Grospixels (c'était mieux avant) | Geekzone (for and by crazy geeks)

Securom, ça suxe
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Jawrill
Grand Sage du Conseil
Inscrit le: 16 Déc 2002
Messages: 621
Localisation: Divonnes01 (pres d'Annecy et Geneve)
Répondre en citant
Posté le : 15/02/2003 21:27:40 Sujet du message :

pourquoi veux tu que ce ne soit pas compatible ?
theoriquement le principe de ce genre de scripts c de faire bouger des personnages aleatoirement, avec des actions en plus. le scipt est actif tous le temps donc meme si les personnages ne sosnt pas a la meme place qd tu relance ton serveur, avec l'effet de mouvement continu, je pense que personne n'y ferra attention, par contre pour ta ville ca donne un exellent rendu.
_________________
La mort est comme une prostituée on est soit son client soit son maquereau.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM Yahoo Messenger MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
PetitPrince
Super-Mouton
Inscrit le: 12 Sep 2002
Messages: 2043
Localisation: Asteroïde B-612 actuellement crashé en Suisse
Répondre en citant
Posté le : 15/02/2003 23:59:51 Sujet du message :

Bah c'était juste comme ça hein, des fois que ça utilise des trucs super-bouffeur de ressource ...
_________________
b-612.yi.org (chez moi) | tetrisconcept.com (LE site sur Tetris) | Grospixels (c'était mieux avant) | Geekzone (for and by crazy geeks)

Securom, ça suxe
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 16/02/2003 20:25:25 Sujet du message :

Je l'ai mis dans le thread script:

http://www.system-tek.com/nwinter/phpbb2/viewtopic.php?p=17821#17821

Postez vos commentaire ici, c'est plus adapté. J'ai fait une petite modif de dernière minute (j'ai enlevé un truc spécifique a mon module) mais j'ai fait attention. Toutefois si ca ne compile pas correctement, c'est juste une accolade a enlever ou a rajouter. Dites le moi et je testerai.

En ce qui concerne les modules persistant, évidemment ca fonctionne sans pb, et ca n'utilise pas de truc super bouffeur de ressources. Le script ne fait appel a des fonctions que deux fois par jour, le reste du temps il fait juste des tests.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 16/02/2003 23:39:03 Sujet du message :

bah tu pouvais pas faire une fonction récursive (avec un DelayCommand de 12 heures) qui serait lancée au début du module ?(aube et crépuscule)

comme ca ca ne boufferait pas des ressources à faire des tests ? bon ok, le récursif ce n'est pas la panacée mais bon ....

surtout que pour les histoires de calcul faut voir ça avec 10 joueurs dans une zone 12*12 et plein de PNJ .. bref, c'est pas facile à tester .....
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 17/02/2003 04:05:42 Sujet du message :

Euh oui pas très réalisable, ca risque de poser des problèmes de synchronisation avec le lever et coucher de soleil ...
D'autre part je ne suis vraiment pas certain que ca bouffe moins de ressources ...
Puisque vous aimez bien l'optimisation, je modifie un petit détail qui devrait gagner en ressource (c'est négligeable mais bon ...)
je change le
Code :
if(!GetLocalInt(OBJECT_SELF,"movedinside") && (GetIsNight() || GetIsDusk())){

en
Code :
if((GetIsNight() || GetIsDusk()) && !GetLocalInt(OBJECT_SELF,"movedinside")){

De cette facon on économise la plupart du temps (sauf au lever ou au coucher de soleil) un test (celui du localint) qui en réalité n'a besoin d'être exécuté que beaucoup plus rarement (parce que lorsque la machine detecte que la première condition est fausse, elle n'essaye pas de tester la deuxième puisque de toute facon le résultat du && sera faux).
Idem pour le
Code :
if(!GetLocalInt(OBJECT_SELF,"movedoutside") && (GetIsDay() || GetIsDawn())){
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 49.959ms