Créer un "effet" : possible ou pas?

Répondre
Partager Rechercher
Bonjour,

J'aurai voulu savoir si il était possible de créer de nouvelles fonctions d'effect dans NWN II, similaire à EffectACIncrease et ce genre de chose mais avec un code personnalisé où si il s'agit d'un élément codé en dur et donc impossible à modifier?

Car je trouve pas la référence à ces effets etc dans les fichiers du jeu
Je crois que non cela n'est pas possible. Dans dragon age sa l'est pas contre (d'un autre cote DA tu peux pas modiffier els ui et il n'y a pas de multi vive bioware^^)
Pas sûr de bien saisir ce que tu veux vraiment. En tous cas, tu devrais pouvoir coder pas mal d'effets en te basant sur des effets déjà existants, ils sont pour la plupart assez génériques.
Pour exemple:
Code PHP:

effect EffectStrInc(int n)
{
   return 
EffectAbilityIncrease(0n);
}

void main()
{
   
object o GetFirstPC(); // Un perso au hasard
   
effect e EffectStrInc(10); // Récupère l'effet de +10 force
   
ApplyEffectToObject(2eo); // Applique l'effet de manière permanente sur o

Si tu parles des effets graphiques, là j'en sais rien.
Oui non en fait la question c'était : est-ce possible de rajouter un effet réellement (c'est à dire un effet dans la liste d'effet et pas juste un effet basé sur un effet existant) mais visiblement NWN II ne permet pas cela
Si tu parles bien des "Item Property", soit les effets qu'on peut mettre sur les armes, les armures et autres, il semblerait que ce soit possible, je ne peux pas l'affirmer vu que j'ai cherché à comprendre comment ça fonctionne pour créer le manuel des objets de nwn2.fr et non pour le jeu en lui même, mais tout semble présent dans les fichiers 2DA et les scripts pour en ajouter.

Il y a plus de 70 fichiers 2DA ainsi que 2 scripts qui gèrent le tout :

itemprops.2da

Ce fichier comporte la liste des Item Property (IP), c'est la base du système et voici son contenu :

- La première colonne correspond au numéro de l'IP, soit son ID

- Les autre colonnes (de 01_melee à 21_Glove) : ces valeurs permettent de rendre possible la liaison à une IP pour tel ou tel type d'objets, ici melee pour les armes et glove pour les gants

- StringRef : Permet de lier un nom avec le TLK

- label : Aide à la lisibilité du 2DA

itempropdef.2da

Ce fichier donne des précisions sur chaque effet, il va aussi rediriger chaque IP vers les fichiers nécessaires .

- La première colonne correspond au numéro de l'IP, soit son ID

- Name : Permet de lier un nom avec le TLK

- label : Aide à la lisibilité du 2DA

- SubTypeResRef : Nom du fichier 2DA qui contient les détails des valeurs liées à cette IP

- Cost : Valeur utilisée pour calculer le modificateur de niveau d'un objet

- CostTableResRef : Un ID qui dépendra de iprp_costtable.2da, qui va lui même vous renvoyez vers un fichier iprp_*cost.2da, c'est ici encore un détail des valeurs liées à l'IP

- Param1ResRef : Comme les deux autres options, celle ci nous renvoi vers un fichier 2DA iprp_paramtable.2da qui va renvoyer vers d'autres 2DA (encore une fois ), elle n'est utilisé que dans quelques IP

- GameStrRef : Le nom en fonction des TLK mais écrit d'une autre façon cette fois, je n'en sais pas plus

- Description : La description

- Slots : Il semblerait que ce soit un multiplicateur lié au système de craft du jeu


Petite précision concernant SubTypeResRef et CostTableResRef, si on prend pour exemple la modification des caractéristiques du personnage :

SubTypeResRef contiendra les valeurs du type (Force, dextérité, etc...)

CostTableResRef informera qu'elles peuvent être de 0 à 20


A noter que vous pouvez aussi retrouver à quel code correspond chaque IP sur cet outil :

http://www.nwn2.fr/effet-code.html

---

Nous avons vu la partie 2DA, il reste donc les deux scripts.

nwscript.nss

Ici on retrouve les CONSTANTES de chaque IP sous la forme ITEM_PROPERTY_* ainsi que toutes les fonctions liées qui sont juste déclarées, aucune action ne leur est attribué, il semble cependant possible de le faire.

x2_inc_itemprop.nss

Ici on retrouve la fonction IPGetItemPropertyByID() qui va rediriger chaque constante vers la fonction qui lui est liée ainsi que les paramètres correspondants.

Avec tout ceci, il est donc surement possible de créer de nouveaux IP, en espérant que c'est bien ce que tu cherches, dans le cas contraire ca servira bien à quelqu'un d'autre, le travail de recherche ayant été assez fastidieux autant que cela soit utile.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés