La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 28/12/2024 11:11:15
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Serguai Grand Chevalier Messages: 104 |
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 | |
Youkai Novice Messages: 11 |
Interessant, je cherchais justement à faire un tel system
|
Revenir en haut | |
Jawrill Grand Sage du Conseil Messages: 621 Localisation: Divonnes01 (pres d'Annecy et Geneve) |
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 | |
Serguai Grand Chevalier Messages: 104 |
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 . 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 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 | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
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...
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. . Mais au vu des quelques scripts postés, je pense que Serquai sait ce qu'il fait ! 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. |
Revenir en haut | |
Serguai Grand Chevalier Messages: 104 |
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 |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
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
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... (par contre évitez de poster des commentaires dans ce topic, ça deviendrait vite le bordel... ) _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
PetitPrince Super-Mouton Messages: 2043 Localisation: Asteroïde B-612 actuellement crashé en Suisse |
Ca m'interesse . 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 | |
Jawrill Grand Sage du Conseil Messages: 621 Localisation: Divonnes01 (pres d'Annecy et Geneve) |
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 | |
PetitPrince Super-Mouton Messages: 2043 Localisation: Asteroïde B-612 actuellement crashé en Suisse |
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 | |
Serguai Grand Chevalier Messages: 104 |
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 | |
Wololo Légende vivante Messages: 385 |
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 | |
Serguai Grand Chevalier Messages: 104 |
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 | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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