[Tutorial] Installation du PUMA

Répondre
Partager Rechercher
Le PUMA par RAT et Iridian

Le Puma est un système de gestion de la persistance de module Online basé sur le PWUM qui présente l'avantage de d'être automatique. Le PWUM original demandait beaucoup de manipulation de log manuellement ce qui était fastidieux et source d'erreurs.
Le PUMA une fois correctement paramètre permet juste par le lancement du serveur via PUMA.exe de faire automatiquement toute ces manipulations de fichiers.
Vous pouvez le télécharger ici


L'installation automatique est un peu litigieuse, le mieux c'est de le faire manuellement.
- Tu copie les fichiers nwnnsscomp.exe et PUMA.exe dans le répertoire du nwserver.
- Tu copie les fichiers pwum_functions.ncs et pwum_functions.nss dans ton répertoire override
- Tu copie test_PWUM2.mod dans ton fichier module (pour voir comment ça marche)
- Et tu copie ton .erf dans erf.

Ensuite tu ouvre ton module et tu importe le fichier puma.erf

Dans les propriétés de ton module, dans OnClientEnter tu mets le fichier pwcliententer si tu n'a rien déjà dans cette événement.
Si tu as déjà quelque chose dans ton OnClientEnter il va falloir que ça ressemble a ça

Code PHP:

#include "pwum_functions"

void main()
{
    
object oPC;
    
oPC GetEnteringObject();
    
ResumePCLocation(oPC);
    
// tes lignes de code

dans ton OnModuleLoad tu met le fichier pwmoduleload, si tu as quelque chose déjà dedans il va falloir que ton script ressemble à ça.
Code PHP:

#include "pwum_initialize"

void main()
{
  
/* This example call to initialize sets the Location Storage
     Timer to 300 seconds (five minutes), the default expiration
     of variables to 84 game days (three game months), and the
     Date Storage Timer to 300 seconds (five minutes). */
  
InitializeUniversalMind(300.084300.0);
  
ExecuteScript("variables",GetModule());
  
ExecuteScript("banques",GetModule());
  
ExecuteScript("chasses",GetModule());
  
// mettez votre code ici.


Une fois tout ça fait il faut encore que tu crée ton module dans Créer/Créer module en cochant bien toute les cases.
Une fois créé tu sauvegarde.

Tu lance ton PUMA et tu paramètre.
Y'a une chose à savoir, c'est que le PUMA ne supporte pas les espaces dans le nom de serveur.
Exemple:
[FR]Valbattle
ça fonctionne
[FR] Valbattle
ne marche pas tout ça à cause du petit espace .

Il est a noter que certains problèmes peuvent survenir si le nom de votre module est trop long.

Pour l'utilisation du PWUM tout est dans les docs, et tu peux t'aider du module de test livré avec pour voir comment on script avec le PWUM.

Un des problèmes fréquemment rencontrés est que le serveur n'apparait pas dans la liste des serveurs sur GameSpy. Et les trois quart du temps, c'est parceque le nom du serveur comporte des espaces ou que le nom du module est trop long. Ce problème est facilement repérable car le nom du serveur est tronqué dans NWNServer, il vous suffit de les modifier et de recommencer la manip.

Jaha Effect
Tu as rien a copier dedans, tu as juste a coller les fichiers nwnnsscomp.exe et PUMA.exe dans le même répertoire, tu devrais essayer de te concentrer un peu plus sur ce qui est marqué sinon tu risque de pas t'en sortir.
Car le PUMA utilise ce fichier mais ne le modifie pas.

Jaha Effect
Hmmm 3 lignes???

En résumé le PUMA permet de créer un vrai module persistant automatiquement. PUMA veut dire Persistant Universal Mind Automatique. En un petit logiciel, il va te permettre grâce aux fonctions du pwum et de nouvelles fonctions de créer de véritables sauvegardes Voilà en gros
Tu as configuré l'emplacement de ton NWServer dans le PUMA?
en fait il faut lui indiquer ou se trouve ton NWServer puis redémarre le PUMA pour qu'il prenne en compte la modif et là tu devrait l'avoir a dispo dans ta liste.

Jaha Effect
Quand tu sauvegarde un module, tu sauvegarde bien sûr son état et donc toutes les variables locales qui sont dessus.
Le problème c'est qu'une sauvegarde n'est pas modifiable...gênant pour un module persistant qui se veut évolutif (ou encore pire RP).
Donc, on ne peut pas utiliser les sauvegardes pour garder l'état d'un module, les fans ont donc créé un tas de système pour remédier à ça, pour l'instant le maximum qu'on ait réussi à faire, c'est conserver les variables locales d'une session du serveur à l'autre, mais c'est déjà pas mal.

Les systèmes les plus au point pour l'instant s'appellent NWNX et PUMA, ce dernier étant une évolution du PWUM mais en automatique (c'est à dire qu'il automatise la transmission des variables). Voilà
Ce système est devenu obsolète suite à l'introduction de la sauvegarde des variables locales sur des objets dans les fichiers .bic des personnages.
A l'origine, il reposait sur un parsing des logs puis il a migré vers l'utilisation de la base de données Bioware après le patch 1.32fr, qui, il me semble bien, n'est pas supportée par NWN² à l'heure où j'écris ces lignes.

Note: je dis ça de mémoire, j'ai désossé ce système il y a trois ans pour la dernière fois
Ok Az

De toute façon, il me semble que le système le plus adéquat pour NwN2 est NWNX4. Cependant, je trouve tout de même utile d'avoir sous la main ce qui a été fait auparavant et les discussions qui ont entouré tous ces systèmes .

C'est pourquoi je les remonte.
Répondre

Connectés sur ce fil

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