|
Le fichier (à renommer en .rar) est à télécharger ici.
Je vous mets le ReadMe : Readme - Système de Génération de Trésor --------------------------------------------------------- - Par Taern et Solaufein version du 26/09/03 * Présentation : Ce système est basé sur l'utilisation des 2DAs. Il diffère également du système de base de NWN de par le fait qu'il ne tient pas compte des niveaux et caractéristiques du joueur pour générer un trésor. Les 2DAs servent à rentrer le Resref des objets qui pourront être générés aléatoirement. Dans ces 2DAs se trouvent 3 colonnes qui représentent 3 "valeurs". Par exemple, une pièce d'équipement pourra être soit courante, peu courante ou rare. Les caractéristiques de ces 2DAs peuvent être modifiées facilement à l'intérieur du script treasure_inc.nss, malgré tout il est conseillé de réutiliser les 2DAs livrés avec ce fichier. Il est impossible (ou en tout cas peu commode) de rajouter ou de supprimer des fichiers 2DAs pour l'instant. De même, seules les 20 premières lignes du 2DA seront prises en compte. Les différents types de trésor, ainsi que leur fichier 2DA correspondant, sont : - Richesses diverses (or, gemmes) : rand_treasure.2da - Nourriture : rand_food.2da - Biens, vêtements : rand_goods.2da - Réactifs : rand_reagent.2da - Livres : rand_book.2da - Equipement : rand_equip.2da - Objets magiques : rand_magic.2da - Potions : rand_potion.2da - Parchemins : rand_scroll.2da * Installation : 1/ Importer le fichier treasure_inc.erf dans le module 2/ Mettre les fichiers 2DAs dans le hak pack du module, ou dans le dossier "override" le cas échéant. Remarque : seul le serveur a besoin de posséder ces fichier 2DAs 3/ Pour les créatures : - Créatures originales de NWN : Importer le fichier new_spawn.erf dans le module. Cela aura pour conséquence de modifier automatiquement la majeure partie des script de spawns des créatures originales du jeu (à l'exception des henchman et des animaux). - Créatures personnalisées : La fonction GenerateNPCTreasure() du fichier treasure_inc permet de génerer un trésor aléatoire de PNJ en fonction des classes et dés de vie du dit PNJ. Il suffit de l'appeler dans le script d'initialisation (OnSpawn) du PNJ. 4/ Pour les plaçables : Les plaçables utilisant ce système sont décrits par 3 paramètres : le niveau de richesse du plaçable, son type, et le nombre de tirages à effectuer. Ces informations sont contenues dans le tag du plaçable. Exemple : "blablabla_misc_avrg_2" sera le tag d'un contenant banal, de contenu moyennement riche, et sur lequel on fera 2 tirages de génération de trésor. La syntaxe est donc : "xxxxx_<type>_<richesse>_<tirages>", ou "xxxxx" peut prendre n'importe quelle valeur. Les différents mots-clé sont : - misc : contenant banal - book : bibliothèque, livres - merch : coffre de marchand - mage : coffre de mage - treas : coffre à trésor - wpn : râtelier d'arme - poor : pauvre - avrg : moyen - rich : riche Ces mots-clé sont modifiables et il est possible d'en rajouter. Ils sont définis au début de la libraire treasure_inc. Pour tirer parti du système de génération aléatoire de trésor, il suffit d'appeller la fonction GeneratePlaceableTreasure() du script treasure_inc sur l'évènement OnUsed du plaçable. * Utilisation : Les 2DAs doivent contenir les ResRefs (et non les Tags) des objets qui seront générés par le système. Le numéro de ligne ou est placé le Resref n'a aucune influence, au contraire de la colonne (qui représente la valeur de l'objet). Cependant, il est possible de mettre autre chose dans les 2DAs : - mettre un nombre (dans sa forme la plus réduite possible, c'est à dire que "12" fonctionnera, mais pas "012" ou encore "12.0") aura pour effet de faire apparaitre ce nombre en pièces d'or. - rajouter "*x" à la fin du Resref d'un objet (où x peut valoir n'importe quelle valeur numérique) aura pour effet de créer non pas 1, mais x objets empilés. Cela ne fonctionne que pour les objets empilables (gemmes, potions, munitions etc.); avec un objet non-empilable, rajouter ceci n'aura aucun effet. Il existe un moyen de définir les probabilités des colonnes d'un fichier .2da indépendamment des autres fichiers. Pour cela, il faut appeller la fonction ForceColumnChance() AVANT d'appeller GenerateRandomTreasure(). Exemple : { ForceColumnChance(TREASURE_2DA, 80, 10, 10); } force les probabilités des colonnes du fichier rand_treasure.2da à 80%, 10% et 10%, et cela indépendamment des paramètres passés à GenerateRandomTreasure(). Des routines de génération de trésor pour plaçables et créatures sont déja intégrées, mais il est possible de les modifier intégralement. Les probabilités sont stockées dans une structure nommée TREASURE_CHANCES, et qui contient les probabilités de chaque type de trésor, de chaque colonne ainsi que du nombre de tirage. Par exemple : { struct TREASURE_CHANCES sTreasure; sTreasure.rolls = 4; sTreasure.empty = 20; sTreasure.goods = 80; sTreasure.col1 = 60; sTreasure.col3 = 40; } aura pour effet de créer une structure de probabilité, de définir un nombre de tirage à 4, la probabilité de générert un trésor vide à 20%; la probabilité de générer un trésor de type marchandise à 80%, la probabilité de générer un objet de la 1ere colonne à 60% et enfin la probabilité de générer un objet de la 3e colonne à 40% (les deux dernières proba. ne tiennent pas compte d'un éventuel forçage expliqué auparavant). En plus de tout ceci vient s'ajouter un outil très utile : la consultation des probabilités de génération de trésor pour créatures et plaçables. Pour l'utiliser : - utiliser l'objet Consultation : génération de trésor (catégorie Objets de Quête) sur une créature ou un plaçable OU - créer un objet portant le tag "treasure_view", lui affecter un sort Pouvoir Unique (utilisation illimitée), et cocher la case "identifié" Pour que l'objet de consultation fonctionne, il faut en plus que le contenu du script "onactivate" soit placé sur l'évènement OnActivateItem du module A noter qu'il sera probablement nécessaire de fusionner le script "onactivate" avec le script déja associé à l'évènement OnActivateItem. Lorsque le script détecte une erreur dans un fichier 2da (resref invalide, ou pile d'objet demandée trop grande), un message de débuggage est envoyé : dans le log (précédé du tag défini par la constante ERROR_TAG), sur le canal DM, et aux personnes environnantes. Ce message précise le fichier, la ligne ainsi que la colonne ou se trouve l'erreur. REMARQUES : --------------------- 1/ Il est très fortement conseillé de reremplir les tableaux 2DAs selon ses propres besoins. En l'état actuel, leur contenu permet surtout de se rendre compte du fonctionnement du système, mais n'est sûrement pas adapté à tout le monde. Pour faire une entrée vide (qui ne renvoie pas d'erreur), il est conseillé de mettre *** dans celle-ci. 2/ Le système a été développé pour un serveur précis, Eauprofonde. Ceci explique que les catégories de trésor ne soient pas vraiment passe-partout. Cela dit, faire en sorte de pouvoir rajouter et supprimer des catégories, compliquerait énormément la chose; c'est pourquoi je pense laisser les choses en état, à moins que la demande d'en changer soit vraiment importante (disons, au point où on m'agresserait dans la rue ) 3/ Le module de test fourni dans l'archive, démontre les possiblités du système. Il est conseillé d'utiliser le module en tant que MJ, afin de pouvoir créer n'importe quelle créature et voir le trésor qui lui est assigné, mais il est aussi possible d'en voir une partie en tant que joueur. Pour cela, il suffit d'utiliser le pupitre à côté de chaque monstre présent dans le module; cela aura pour effet de tuer ce monstre et d'en créer un identique à sa place. Ces monstres sont inoffensifs puisque dépouillés de leurs scripts, mis à part le script d'initialisation bien sûr. Soyez indulgents pliz, c'est un des premiers ReadMe que je rédige Enjoy EDIT: grosse mise à jour |
01/09/2003, 17h23 |
|
Aller à la page... |
[Système] Génération de trésor
Suivre Répondre |
|
Partager | Rechercher |
|
Je savais que j'avais oublié quelquechose
Il faut renommer le .aaa en .rar (sinon Lycos bloque le téléchargement) |
01/09/2003, 17h49 |
|
|
mmh au fait c'est pas les blueprint qu'il faut mettre dans les 2DA mais bien les tag sinon ca ne marche pas...
|
07/09/2003, 21h52 |
|
|
Ahlala, encore cette histoire de resref/tag
Tout d'abord, CreateObject a besoin d'un resref pour fonctionner correctement. Vu que deux objets peuvent avoir le même tag, utiliser celui-ci n'aurait pas de sens. MAIS, et c'est de là que vient l'embrouille : Bioware utilise pour ses objets des tags et resrefs identiques (à la casse près). DE PLUS, faire "Editer et copier" sur un objet Bioware ne permet PAS de connaître son resref, car dans ce cas c'est un nouveau resref qui a été généré automatiquement (le plus souvent ... en enlevant "nw_" au début, ce qui confirme ce que j'ai dit au-dessus). Pour connaitre le resref d'un objet Bioware : 1/ Utiliser le tag de l'objet (marche dans 100% des cas avec les objets je crois) 2/ Créer un objet n'importe où dans le module, et regarder son resref. C'est un peu plus compliqué mais bon, ça permet d'être sûr A noter qu'il existe des fichiers référençant tous les objets de Bioware avec leurs resrefs, par exemple ici. Ca aide pas mal je suppose En tout cas, merci d'avoir testé |
07/09/2003, 23h11 |
|
|
uh
pourtant dans la case c'est marqué resref, c'est malfoutu leurs système quand même, ou disons que c'est pas clair... m'enfin maintenant c'est clair pour moi c'est deja ça |
09/09/2003, 03h13 |
|
|
Histoire de compléter ce joli système de génération de trésor, un chti script piqué je sais plus où, certainement sur Maskado d'ailleurs , modifié pour aller avec le travail de Taern.
Code PHP:
|
11/09/2003, 01h05 |
|
|
Euh ben le coffre ne se rempli que s'il a été ouvert et bon je connais pas bcp de joueurs qui laissent des coffres pleins
|
11/09/2003, 21h06 |
|
|
Content que le système te convienne
La constante LINES_COUNT_2DA se trouve à la ligne 53 du script treasure_inc, avec les autres constantes modifiables. Vala |
27/02/2004, 21h46 |
|
|
Je chargé le fichier a nouveau.... et j'ai bien LINES_COUNT_2DA.
va savoir Charles ! Maintenant tous semble plus clair encore merci |
28/02/2004, 17h12 |
|
Suivre Répondre |
Fil d'ariane
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|