Plus précisément....
-> Variables sur objets du PJ
Il s'agit de donner au PJ un objet unique, indroppable et un vendable. Il peut s'agire d'une baguette d'émote, d'un anneau de reconnaissance de faction, come de tout autre objet "indispensable" au PJ.
Toutes les variables placées sur cet objet seront sauvegardées directemetn dans le fichier .bic représentant le personnage. Ainsi, même si ton module plante, ces variables resteront.
Tu les poses avec un SetLocal<type>(object item, string nom, <type> valeure)
Et tu les récupperre avec un GetLocal<type>(object item, string nom)
Type est le type de ta variable (object, string, int ou float).
object est l'objet en question passé en argument.
nom est le nom de la variable.
exemple d'utilisation : scripte a poser sur un PNJ.
main()
{
object oPC = GetPcSpeacker();
object oItem = GetObjectByTag("mesSaves");
if( getLcocalInt(oItem, "quete1") == 1 )
{
SetLocalInt( oItem, "quete1", 2)
}
}
Ainsi, si le PJ qui parle au pnj qui a déclenché ce scripte est dans la phase 1 de la quete, alors je le passe a la phase 2.
Sur le OnEnter du module tu pourra mettre un petit bout de code vérifiant l'état des variables et recréant le journal en fonction...
-> Utilisation de la BD bioware
je la déconseille a cet usage.
Il est possible de sauvegarder en persistant via la fonction SetCampaign<type> et de reccupperer la variable lpus tard.
La variable est sauvegardé dans un fichier externe que Bioware a appelé base de donnée. Cela peut être utile a de petits scriptes, mais vu que tu n'auras pas besoin d'acceder aux variables une fois le joueur déconnecté, inutile de s'appesantir sur ce systeme.
-> Utilisation d'une BD externe (mySQL, ou autres.)
Il est possible via des outils comme nwnx2 de stoquer tes variables sur une base de donnée exterrieur a nwn. L'interet principal est que tu peux ainsi y acceder ou les modifier a la main sans meme te donner la peine de monter sur le module. Cela permet de faire beaucoup de choses diverses et variées, notemment d'interfacer avec un site écrit en PHP....