le tutorial va évoluer avec les versions de nwnx4

Transcription

le tutorial va évoluer avec les versions de nwnx4
Version de ce tutorial : 1.06a (le tutorial va évoluer avec les versions de nwnx4)
Il a pour but d’aider un débutant à installer tous les éléments nécessaires pour utiliser NWNX4.
Tout au long de ce tutorial, nous vous expliquerons à quoi sert nwnx4, comment installer une base
de donnée MySQL sur votre ordinateur, comment consulter les données que va écrire NWNX4 dans
votre base de donnée avec un interface graphique.
Nous vous montreront pas la suite comment installer NWNX4 dans votre ordinateur et comment
l’intégrer dans un module de NWN2.
A l’avenir, nous vous décrirons les différentes tables de NWNX4 (à l’heure actuel, NWNX4 est en
version alpha et ne crée pas encore de table), nous vous expliquerons comment utiliser les fonctions
de NWNX4 avec des exemples.
Dans une partie plus avancée, de ce tutorial, nous vous expliquerons comment installer un serveur
apache avec php et mysql pour vous permettre un accès à votre base de donnée sur votre site web.
Nous vous expliquerons aussi comment créer vos propres tables pour vous permettre d’ajouter des
fonctionnalités personnelles à votre module.
Ce tutorial a été conçu par Elleslande (caloup sur le site nwnx.org).
Membre de l’équipe Projet Babel, et d’Elleslande.
1
I.
Présentation de NWNX .............................................................................................................3
Que pouvons nous faire avec NWNX4 ? ..................................................................................3
Mais comment ça marche ? .....................................................................................................5
II Les bases de données..................................................................................................................7
1. Installation de MySQL sur Windows .......................................................................................7
a. Téléchargement ..................................................................................................................7
b. Installation ..........................................................................................................................8
c. Configuration de MySQL................................................................................................11
2. Utiliser un Interface Graphique pour gérer votre base de donnée........................................18
a. Télécharger SQLYog .......................................................................................................18
b. Installation de SQLYog ...................................................................................................20
c. Configuration de SQLYog...................................................................................................22
d. Créer votre base de donnée pour NWNX ......................................................................23
III.
Installation de NWNX4 .......................................................................................................26
1. Télécharger NWNX4 ..............................................................................................................26
2. Que contiens le pack NWNX4 (version 1.06).........................................................................27
3. Installer NWNX4 ....................................................................................................................28
a. Editer le fichier nwnx.ini .................................................................................................28
b. Editer le fichier xp_mysql.ini..........................................................................................30
c. Créer un raccourcis sur le bureau qui lance le panneau de configuration du serveur
30
d. Importer les fichiers “erf” dans le module. ...................................................................31
4. Configuration des éléments liés à NWNX4 ............................................................................32
a. La base de donnée ............................................................................................................32
b. Les scripts .........................................................................................................................32
c. Paramétrer les données de lancement du serveur au démarrage de nwnx4 ..............33
1.
2.
A venire…
IV. Using functions for database.
IV.1. Tables created by NWNX4.
IV.2. nwnx_sql script
IV.3. How to use NWNX4.
and second: "avanced topics"
Quote:
II.2. Graphical Interface and distant Access.
II.2.1. Installation of an Apache server
II.2.2. Installation of PHP.
II.2.3.Installation of phpMyAdmin.
II.3. What to do for using MySQL with NWNX4.
II.3.1. The database.
II.3.2. User.
2
I. Présentation de NWNX
NeverWinter Nights Extender (NWNX) est un programme qui a le pouvoir de pousser les limites de
ce que vous pouvez faire avec NWN et son langage de scripts intégrés.
Bien que NWN2 et son toolset sont complexes et puissant, l’équipe d’Alvis a ressenti la sensation
d’être limités pour la création de monde persistant. Aussi ont ils créés NWNX pour NWN1. Ce
programme permet de connecter une base de donnée à votre module et permettre ainsi de stocker
des informations dites « persistantes » dans celle-ci. Pour NWN2, papillon et de nombreux autres
membres de la communauté propose un outils similaire nommé NWNX4.
En plus d’accomplir, l’équivalent de ce que faisait NWNX2 pour NWN1, NWNX4 va se vouloir
plus facile à utiliser, plus facile à installer et à mettre à jour.
Parmi les nouveautés qui devraient être présentent dans la version finale de NWNX4, ont peut
noter :
-
-
-
-
Un programme d’installation automatique. Celui-ci possèdera un assistant qui
permettra en quelques clic d’installer tous les fichiers utiles à NWNX4 sur votre
ordinateur en quelques clics.
Un programme de mise à jour automatique. Celui-ci vous permettra de modifier
automatiquement vos fichiers (hormis les erf qu’il faudra vous-même importer dans
votre module)
Un interface graphique.
Une possibilité d’intégrer NWNX4 dans les processus de démarrage de windows.
Ainsi vous pourrez permettre à NWNX4 de se lancer automatiquement au démarrage de
windows (Cette fonctionnalité est déjà présente dans la version 1.06)
La possibilité de lancer de multiple module en même temps (Cette fonctionnalité est
déjà présente dans la version 1.06)
Nouvelle fonction “nwnx_plugin” : Cette fonction permet de compter le nombre de
plugin installé avec nwnx4 et d’indiquer leur nom, description…Pratique pour vérifier
qu’un plugin fonctionne correctement…
D’autres principes du programme ont été gardés. Notamment la possibilité de créer vos propres
plugin, qui ajouteront des fonctionnalités à NWNX4.
A l’heure actuelle voici les plugins intégrés dans le pack de NWNX4 1.06 :
-
nwnx_timer : Ce plugin permet de déterminer la durée de lancement d’une fonction, très
pratique pour optimiser ses scripts.
1. Que pouvons nous faire avec NWNX4 ?
Avec NWNX4, il est possible de stocker des variables persistantes dans la base de données qui
peuvent ensuite être récupéré d’un module à l’autre. Par exemple si vous diviser votre monde
persistant en 3 ou 4 modules. Les variables étant stockées dans une base externe, il est possible de
les appeler à partir du module n°3 même si celle si a été crée dans le module n°2.
3
On peut aussi par exemple lier un coffre à une base de données pour stocker de manière permanente
du matériel. Ainsi même si le module est relancé, le coffre contiendra toujours votre matériel !
Bien sur NWN2 possède son propre système de base de donnée, mais celle-ci peut très vite s’avérée
lente… qui plus est elle n’est pas prévu pour être consultée par plusieurs utilisateurs en même temps
donc si vous avez beaucoup de joueurs qui viennent régulièrement, il vaut mieux utiliser une base
de donnée comme MySQL qui elle est prévu pour être multi transactionnelle. C'est-à-dire qu’elle
peut écrire plusieurs choses en même temps dans la base de donnée…
Parmis les utilisations courantes de NWNX ont trouve :
-
Des systèmes de coffre persistants
Des systèmes de crafting
Des systèmes de table d’honneur
Des systèmes de gestion de trésors automatique…
Vous vous rendrez vite compte, que dans certains cas il est plus efficace de définir des éléments
dans une table et les appeler par une requête dans un script plutôt que de recréer cette table par
scripting car à chaque fois que le script est lancé il la recréera pour vous apporter un résultat.
Par exemple, imaginons que vous mettiez en place un système de trésor aléatoire. Soit vous créer un
script du genre :
void TagTreasure(int i)
{
string sTag;
switch (i)
{
case 1:
//ecrire la création du trésor1
break;
case 2:
//ecrire la création du trésor2
break;
case 3:
//ecrire la création du trésor3
break;
case 4:
//ecrire la création du trésor4
break;
case 5:
//ecrire la création du trésor5
break;
//etc. jusqu'à 12....
}
return sTag;
}
void main()
{
int i = d12();
4
string sTagTreasure = TagTreasure(i);
//fonctions pour donner le trésor dans l'inventaire de la créature
}
Ainsi à chaque fois que le script est enclenché la boucle switch va être relue…ce qui peut faire
perdre du temps…
Soit vous créer une table que vous ordonnez par son id, celui-ci prenant une valeur unique de 1 à
12. Pour chaque valeur un Tag de trésor est défini. Ensuite vous créer ce script :
/*Script de gestion de trésor aléatoire*/
#includes "nwnx_sql"
void main()
{
int i = d12();
string sSQL = "SELECT sTag FROM treasuretable WHERE id ="+IntToString(i)+";
SQLExecDirect(sSQL);
if (SQLFetch()==SQL_SUCCESS)
string sTagTreasure = SQLGetData(1);
//fonctions pour donner le trésor dans l'inventaire de la créature
}
Donc l’interêt, en plus de stocker des variables persistantes, serait aussi de faciliter le scripting. On
peut certainement en trouver bien d’autres mais pour moi, ça me suffit ☺
2. Mais comment ça marche ?
De façon à établir une communication entrezs les scripts et le monde extérieurs, NWNX intercepte
les appel de la fonction NWNScript “SetLocalString” et examine le nom de la variable qui est
donné dans cette fonction. Si ce nom commence par “NWNX !” alors NWNX va prendre en
considération ce qui suit cette expression et va la comparer à une série de fonctions qu’il connaît.
Ensuite il va stocker dans la base de donnée le résultat obtenu à partir de la valeur de la variable.
Cette donnée stockée peut ensuite être récupérée avec un script ayant une fonction
“GetLocalString” avec le même nom de variable.
Voici un exemple simple
void SQLExecDirect(string sSQL)
{
SetLocalString(GetModule(), "NWNX!SQL!EXEC", sSQL);
}
Le nom de la variable commence par NWNX ! donc le programme va lire SQL !EXEC ce qui
correspond pour NWNX4 à “lancer une requête”. La valeur de cette requête sera sSQL…
A partir du moment où l’on peut lancer une requête vers la base de donnée, on peut donc y stocker
des informations, créer des tables, les mettre à jour…Vous comprenez le principe ?
5
Mais NWNX4 ne se contente pas de dialoguer avec une base de donnée, grâce à son système de
plugin, notamment, d’autres fonctions peuvent lui être rajoutée. Comme par exemple, l’écriture de
log qui permettent de s’avoir pour chaque script combien de temps il met à s’executer, on peut faire
des statistiques sur la fréquentation du serveur et bien d’autres choses encore…
Vous êtes convaincu ? Alors voici les éléments qu’il va vous falloir :
-
Le dernier pack de NWNX4
Une base de donnée MySQL (NWNX4 permet aussi de connecter une base de donnée
SQLite mais nous ne l’étudierons pas ici)
Un interface graphique pour “voir” le contenu de votre base de donnée.
NWN2 (ben oui…)
Ce présent document !
Vous ne savez pas comment installer une base de donnée ? Vous n’avez jamais installé NWNX
auparavant ? Lisez donc ce qui suit…
6
II
Les bases de données
Ce chapitre va vous montrer comment installer un gestionnaire de base de donnée sur votre
ordinateur, ainsi que la façon d’y accéder à l’aide d’une interface graphique nommé SQLYog. Nous
verrons par la suite, comment créer de nouvelle table manuellement à partir de l’interface
graphique.
1. Installation de MySQL sur Windows
a. Téléchargement
Vous pouvez télécharger MySQL sur cette page :
http://dev.mysql.com/downloads/mysql/5.0.html#downloads
A gauche de la page, vous pouvez choisir la version de MySQL que vous souhaitez installer.
NWNX4 devrait supporter à la fois la version 4.1 et la version 5.0. Nous allons installer la version
5.0.
Une fois la version 5.0 choisie dans le menu de gauche, cliquez sur “DOWNLOAD” en dessous
de “MySQL Community Serveur” (qui est gratuit).
Vous serez envoyé plus bas dans la page, dans la zone de téléchargement (voir photo ci-dessous).
Cliquez sur “Download” en face de “windows essential” pour télécharger la version d’installation
automatique de MySQL.
Une boite de message va vous demander ce que vous voulez faire :
7
Faites “Enregistrer”, la boite de message ouvrira cette fenêtre :
Faites 1 clic sur “Bureau” (à gauche), puis sur “Enregistrer”.
Le téléchargement va ainsi débuter…
b. Installation
Une fois finis, aller donc voir sur votre bureau, vous devriez y trouver cette icône :
Faites un double clic dessus pour lancer l’installation…
Windows va vous demander de confirmer :
8
Cliquez sur “Exécuter” pour continuer.
Faites, “NEXT” dans la fenêtre qui apparaît :
Puis choisissez une installation “Typical” et faites “NEXT” :
Dans la fenêtre qui suit, vous n’avez plus qu’à choisir “Install” :
9
Après le déroulement de l’installation, une fenêtre vous demande de vous enregistrer :
Choisissez “Skip Set Up” et cliquez sur “NEXT”.
Dans la fenêtre qui suit, cochez la case “Configure the MySQL Server now” puis faites “Finish”
10
c. Configuration de MySQL
Lorsque la fenêtre de configuration s’ouvre, cliquez sur “Suivant”
Dans la fenêtre suivante, Choisissez “Reconfigure Instance” ou “Create new Instance” selon si
vous aviez déjà une installation de MySQL présente sur votre ordinateur ou non…
Puis cliquez sur “Next”.
11
Pour un meilleur contrôle des paramètres de configuration, choisir “Detailed Configuration”
Ensuite, cliquez sur “Next”.
On vous propose ensuite de choisir l’utilisation que vous allez faire de votre installation.
-
-
-
Si vous n’allez faire que du développement (l’ordinateur va utiliser un certain nombre
d’autres programmes qui vont tourner en même temps) choisissez : “Developper
Machine”.
Si vous voulez utiliser votre ordinateur comme un serveur et permettre à des applications
de faire de nombreuses requêtes à votre base de donnée (c’est dans la plupart du temps
votre cas si vous voulez créer un serveur de monde persistant sur votre ordinateur)
choisissez “Server Machine”
Si votre ordinateur va être utilisé comme Serveur dédié, c'est-à-dire qu’il n’aura que très
peu d’autres applications qui vont fonctionner sur votre ordinateur en même temps,
choisissez “Dedicaced MySQL Server Machine”. Les accès seront plus rapides mais
MySQL utilisera plus de mémoire…
12
Cliquez ensuite sur “Next” et vous verrez la fenêtre suivante :
Pour l’utilisation de NWNX4, il est fortement recommandé de choisir ici : “Multifunctional
DataBase” et de faire ensuite un clic sur “Next”.
En règle générale il est inutile de modifier les paramètres ici, faites directement un clic sur
“NEXT”.
13
Vous devez choisir ici le nombre potentiel de personnes qui seront connecté au maximum sur votre
serveur pour que MySQL optimise au mieux sont fonctionnement.
En règle général, il vaut mieux que vous fassiez “Manual Setting” et que vous rentriez vous-même
le nombre maximum de personnes connecté à votre ordinateur. (Dans notre exemple, j’ai mis 30
personnes se qui semble raisonnable)
Faites ensuite 1 clic sur “NEXT” pour accéder à la page suivante :
Ici laissez coché les 2 cases “Enable TCP/IP NetWorking” et “Enable Strict Mode”. Dans la
section “Port Number” entrez le port de communication que MySQL va surveiller. Par défaut il
s’agit du port 3306, nous vous conseillons de le laisser tel quel.
Remarque : Afin que le serveur soit accessible depuis des requêtes externes à votre ordinateur,
vous devez configurer votre Firewall de façon à ce qu’il autorise des communications Entrante et
Sortante sur ce port. Pour savoir comment configurer votre firewall vous pouvez consulter ce site :
http://www.portforward.com/routers.htm qui rassemble un grand nombre de firewall est permet de
vous aider à configurer de nombreux jeux. Très utile !
14
Dans la fenêtre suivante, laissez “Standart Character Set” puis cliquez sur “NEXT”.
Dans la fenêtre suivante, cochez les cases “Install As Windows Service” et “Launch the MySQL
Server Automaticaly” de façon à ce que l’instance de MySQL se lance automatiquement au
démarrage de Windows…
Ensuite, faites 1 clic sur “NEXT”.
15
Dans la fenêtre qui suit, vous allez devoir choisir de créer un mot de passe d’accès à la racine de
votre base de données. Il s’agit du mot de passe dont NWNX4 aura besoin pour se connecter à la
base de donnée…
Si c’est la première fois que vous installez MySQL, vous aurez certainement marqué “Create
Security Setting” à la place de “Modify Security Setting” et vous aurez juste à donner votre mot
de passe et à le confirmer.
L’image ci-dessous montre le cas où on veut modifier une installation déjà présente et dans ce cas
on propose d’entrer l’ancien mot de passe et 2 fois le nouveau.
Une fois le mot de passe entrer, ne cochez pas la case “Enable root access from remote
machines” sauf si vous mettez votre installation de NWNX sur un autre ordinateur que votre
serveur MySQL.
Ne créer jamais de compte anonyme, pour des raisons de sécurités.
Cliquez ensuite sur “NEXT”.
Par la suite, cliquez sur “Execute” pour que le programme configure l’instance de MySQL et le
lance.
Remarque : Je vous conseil de désactiver votre Firewall lors de cette opération.
16
Une fois terminée, vous devriez avoir un chaque étape de correctement validées (représenté par une
sorte de V), vous n’avez plus qu’à cliquer sur “Finish”.
Redémarrez votre ordinateur, et faites CTRL+ALT+SUPPR sur votre ordinateur. Vous devriez
avoir la fenêtre suivante :
Dans l’onglet processus, vérifiez que vous avez bien “mysql-nt.exe” de lancé. Votre serveur est
maintenant fonctionnel !
17
2. Utiliser un Interface Graphique pour gérer votre base de donnée
Dans ce chapitre nous allons voir comment télécharger, installer et paramétrer un logiciel gratuit
appelé SQLYog, qui permet d’avoir un interface graphique pratique pour gérer votre base de
donnée MySQL.
Par la suite, nous allons voir comment le configurer et quelques fonctions de MySQL utiles…
a. Télécharger SQLYog
SQLYog est un logiciel gratuit que vous pouvez télécharger sur ce site :
http://www.webyog.com/en/
Cliquez sur “Download” dans la partie SQLYog Community Edition (gratuite). Vous arriverez sur
une page de téléchargement :
Faites 1 clic sur SQLYog Community Edition 5.2 (stable) dans les Binaries. Une fenêtre s’ouvre,
vous demandant ce que vous voulez faire :
Choisissez “Enregistrer”. Une fenêtre s’ouvre pour vous demander où vous souhaitez enregistrer
l’installateur :
18
Faites 1 clic sur “Mes documents” à gauche, puis cliquez sur “Enregistrer”.
Une fois l’enregistrement terminé vous devriez voir cette fenêtre apparaître :
Choissez “Exécuter” pour lancer l’installation. Si vous n’avez pas cette fenêtre, allez dans “Mes
Documents” et faites 2 clics sur le fichier que vous venez d’installer.
Si vous êtes sous Windows XP vous verrez apparaître cette fenêtre. Cliquez à nouveau sur
“Exécuter”.
19
b. Installation de SQLYog
Après avoir cliqué sur “Exécuter”, vous obtiendrez la fenêtre suivante :
Faites simplement “NEXT”.
Dans cette page qui vous demande d’accepter la licence, faites “I accept the term…” et cliquez sur
“NEXT”.
La fenêtre suivante, vous demande de préciser où vous souhaitez enregistrer le programme sur votre
ordinateur :
20
Choisissez l’emplacement, et cliquer sur “Install”.
Cliquez ensuite sur “NEXT”.
Cliquez sur “Finish” pour terminer l’installation.
21
c. Configuration de SQLYog
Lorsque vous ouvrez pour la première fois SQLYog, vous aller devoir dire au logiciel à quelles
bases de données il peut se connecter.
Pour cela, faites 1 clic sur “New”.
Entrer un nom pour la connexion. Il s’agit juste d’un moyen de différencier une connexion pour une
base ou une autre, ce n’est ni l’identifiant de connexion, ni le mot de passe …
Appuyez ensuite sur “OK”. SQLYog va donc ouvrir la fenêtre de connexion à la base de donné
(voir figure page suivante)
Vous allez dans un premier temps devoir entrez ces paramètres :
-
MySQL Host Adress : Il s’agit de l’adresse sur le réseau de votre serveur. Vous pouvez,
soit rentrer une adresse IP soit une adresse URL. Si le serveur est sur le même ordinateur
que SQLYog, vous devez mettre “localhost”.
22
-
Username : Il s’agit du nom d’utilisateur, ce qui correspond à “l’identifiant” de
l’utilisateur
Password : C’est le mot de passe associé au Username
Port : C’est le port utilisé par votre serveur MySQL. Par défaut il s’agit du port 3306.
(Voir chapitre précédant)
Database : Il s’agit du nom de la base de donnée à laquelle vous voulez vous connecter.
Si vous ne mettez rien dans cette case, SQLYog vous proposera toutes les bases de
données disponibles sur le serveur.
Une fois que vous avez entré les informations, vous pouvez voir si elles sont correctes en cliquant
sur “Test Connexion”.
Une fois vos paramètres corrects, cliquez sur le bouton “Save” pour les sauvegarder…
d. Créer votre base de donnée pour NWNX
Présentation de SQLYog :
Attention, il s’agit de créer ici votre base de donnée. Nous ne créerons pas les « tables » qu’elle doit
contenir car celles-ci seront automatiquement créées dans la version finale de NWNX4.
Par contre nous verrons par la suite les instructions pour en créer de nouvelles indépendantes pour
que vous y intégriez vos paramètres personnels.
Vos paramètres étant correctes, vous pouvez Cliquer sur le bouton “Connect”
23
SQLYog s’ouvre alors :
A
B
C
D
Partie A :
Les bases de données apparaissent ici. Par défaut MySQL crée les bases
information_schema et mysql.
Pour avoir des détailles sur les colonnes d’une table, faites 1 clic sur le signe + de la table et du sous
menu “Column”. Par exemple :
Partie B : C’est ici que l’on peut écrire des requêtes pour manuellement agir sur la base de donnée.
Le sujet de ce tutorial n’étant pas d’apprendre le langage SQL, je vous propose de vous rendre sur
ces sites pour plus d’informations :
-
SQL facile (français) :
http://www.toutestfacile.com/phpinit.php?tef_site=sql&chap=sql1
Manitou SQL (français) : http://langagesql.free.fr/accueil.html
W3school (anglais) : http://www.w3schools.com/sql/sql_intro.asp
Partie C : Dans ces onglets vous pouvez choisir ce que vous voulez afficher dans la partie D. Vous
avez le choix entre “Result” pour afficher les résultats d’une requête, “Messages” pour consulter
24
les éventuels messages d’erreurs, “Table Data” pour afficher le contenu de la page (c’est ce que
vous utiliserez principalement), “Object” pour afficher les détails sur les propriétés des colonnes
ainsi que les privilèges que vous possédez sur celles-ci. Et enfin, “History” pour voir les derniers
évènements qui ont eu lieu sur la table sélectionnée.
Partie D : Il s’agit de la zone qui va afficher ce qui a été sélectionné en partie C. En règle général,
pour consulter ou modifier une table de votre base de données, vous sélectionnerez en C “Table
Data” et vous pourrez voir son contenu. Par exemple, voici ce que présente la table “pwdata” d’un
module de nwn1 :
Comment créer votre propre base de donnée
Faites 1 clic droit sur root@localhost (peut varier suivant la façon dont vous vous connectez):
Faites 1 clic sur “Create Database”
Indiquez le nom que vous voulez attribuer à votre base de donnée. Par exemple, “nwn2”. Ensuite
cliquez sur “Create”
C’est ce nom qu’il faudra indiquer dans le fichier MySQL.ini du pack NWNX4.
Voilà ce que l’on obtient.
Actuellement votre table est vide est c’est tout à fait normal. Etant donnée que la version stable de
NWNX4 donnera les moyens de créer automatiquement les tables nécessaires, nous n’aborderons
pas ici comment les créer. Cependant, dans le Chapitre 4, nous vous présenterons ces tables.
25
III. Installation de NWNX4
1. Télécharger NWNX4
Vous pouvez télécharger NWNX4 sur ce site : http://www.nwnx.org/index.php?id=nwnx4
Vous faites 1 clic sur le lien qui vous est proposé :
Remarque : Si cette page ne s’affiche pas en cliquant sur le lien, c’est qu’il faut que vous soyez
enregistré sur le site. Dans ce cas là, allez sur le forum et enregistrez vous.
Dans la fenêtre suivante, cliquez sur“Enregistrer” :
Une fenêtre s’ouvre, vous permettant de choisir où enregistrer NWNX4. Créez un répertoire qui
s’appel « NWNX4 » et enregistrer dedans.
Lorsque le téléchargement est terminé, cliquez sur “Ouvrir le dossier” :
Dans la fenêtre qui s’ouvre, faites un clic droit sur l’icône du fichier compressé et choisissez
“Extraire Ici” :
Vous verrez ensuite l’ensemble des éléments de NWNX4…
26
2. Que contiens le pack NWNX4 (version 1.06)
Voici les fichiers que l’on peut trouver dans ce pack :
-
NWNX4_Controler.exe, c'est le programme qui lancera le nwnserver
2 dlls de "hook" qui servent à faire le lien entre nwn2 et le programme
NWNX4_Controler. (madChook.dll et NWNX4_Hook.dll)
Des dlls de plugins, elles sont actuellement au nombre de 3 :
•
•
•
-
xp_mysql.dll : plugin pour l'utilisation d'un server MySQL
xp_sqlite.dll : plugin pour l'utilisation d'un server SQLite
xp_time.dll : plugin de timer (plus d’info ici)
3 fichiers .ini
• nwnx.ini : Où l’on paramètre NWNX4
• xp_mysl.ini : paramètres du plugin gérant MySQL
• xp_sqlite.ini : paramèrte du plugin gérant SQLite
Remarque : Ici nous n’allons utiliser que MySQL comme base de donnée. Donc nous vous
conseillons fortement de renommer les fichiers “xp_sqlite.dll” et “ xp_sqlite.ini” en les nommant
par exemple : “ off_xp_sqlite.dll” et “ off_xp_sqlite.ini”. De façon a éviter tout risque de confusion
pour NWNX4.
-
3 fichiers .erf contenant chacun un script de type "include"
•
•
•
nwnx_include.erf : contient le script d'include permettant une gestion avancée des
plugins de nwnx
nwnx_time.erf : contient un script d'include des fonctions de "timer"
nwnx_sql.erf : contient un script d'include des fonctions gérant les accès aux bases
de données
27
3. Installer NWNX4
Première chose à faire : Copiez le fichier “MadCHook.dll” dans la racine de votre répertoire
NWN2 (tout en gardant l’original avec les autres fichiers).
a. Editer le fichier nwnx.ini
# Fichier de configuration de NWNX4
# Ce sont les valeurs par défaut de NWNX4.
# Emplacement du repertoire où a été installé NWN2 (où se situe nwn2server.exe)
# aucun emplacement par défaut. Vous devez vraiment le spécifier.
nwn2 = D:\Games\nwn2
# Vous pouvez écraser l’emplacement par défaut utilise par NWN2 pour les fichiers
#temporaires
# C’est là que NWN2 mettra ses logfiles (parmi d’autres fichiers)
# Pas d’emplacement par défaut
nwn2temp = D:\Projekte\NWNX4svn\bin\dist
# Paramètres de la ligne de commande avec lesquels démarrer le serveur
# Par defaut: pas de paramètres
parameters = -module nwnx
# Est ce que NWNX doit redémarrer le serveur si le processus du serveur à disparut ?
# 0 = ne redémarre pas le serveur
# 1 = redémarre le serveur
# Par defaut: 1
processWatchdog = 1
# Est ce que NWNX doit redémarrer le serveur s’il s’est bloqué ?
# Celà peut arriver si le serveur est toujours en route, mais ne répond plus aux requêtes de
#gamespy.
# 0 = n’envoi pas de requête au serveur
# 1 = envoi une requite au serveur
# Par défaut: 1
gamespyWatchdog = 1
# Si vous avez active le gamespy watchdog, vous devez spécifier le port utilisé par votre
#serveur NWN2
# Par défaut: 5151
gamespyPort = 5121
# A quelle fréquence le gamespy watchdog doit il envoyer une requête au serveur ?
# Remarque: Le serveur sera redémarré s’il n’a pas réagit à un certain nombre de
# requêtes d’affilé. Voir le paramètre gamespyTolerance ci dessous.
# Par défaut: toutes les 30 secondes
28
gamespyInterval = 30
# Combien de fois le serveur peut ne pas réagir à une requête du watchdog gamespy?
# Remarque: Le serveur sera redémarré s’il n’a pas réagit à ce nombre de requêtes d’affilé
# Exemple: gamespyInterval = 30 et gamespyTolerance = 4 signifient que le serveur
# sera redémarré s’il ne réagit pas dans les 2 minutes
# Par défaut: 4 requêtes
gamespyTolerance = 4
# Si le serveur crashes, combine de temps doit attendre NWNX avant de le relancer ?
# Valeur = secondes à attendre
# Par défaut: 5 secondes
restartDelay = 5
# Est ce que NWNX doit désactiver la protection générale de la boite de message d’erreur ?
# Remarque: Le watchdogs peut échouer à redémarrer le serveur proprement si cette boite de
message reste ouverte
# 0 = Ne désactive pas la boite de message GPFault
# 1 = Désactive la boite de message GPFault
# Par défaut: 1
noGPFaultErrorBox = 1
# Si vous voulez que NWNX lance un fichier CMD ou BAT avant de redémarrer le serveur
# suite à un crash, specifies son nom ici. Si vous laisser ce parameter vide, aucun programme
# ne sera lancé. NWNX attendra que ce programme se termine avant de continuer.
# Pas de valeur par défaut
# restartCmd = nwnx_restart.cmd
Vous pouvez paramétrer le fichier nwnx.ini à votre convenance mais il faut surtout remplir ces
paramètres :
# Path to NWN2 installation (where nwn2server.exe is located)
# no default. You really have to specify it, currently.
nwn2 = D:\Games\nwn2
Remplacez “D:\Games\nwnx2” par l’emplacement du répertoire racine de nwn2 sur votre
ordinateur.
Pour déterminer cet emplacement faites 1 clic droit sur l’icône de NWN2 sur votre bureau,
sélectionnez “Propriétés” puis dans le champs “Cible”, repérez tous ce qu’il y a avant
“NWN2Launcher.exe”. C’est cela que vous devez indiquer dans le fichier nwnx.ini :
29
# Command line parameters to start the server with
# default: no parameters
parameters = -module nwnx
Ici, vous devez remplacer nwnx par le nom de votre module sans son extension. Si par exemple
votre module s’appel “truc.mod”, vous devrez écrire : “-module truc”
b. Editer le fichier xp_mysql.ini
class = SQL
server = localhost
user = nwn
password = nwn
schema = nwnx
;MaxLogSize = 512 ; in KByte
;LogLevel = 2 ; 0=nothing, 1=only errors, 2=everything
Vous devez remplir le fichier comme suit :
•
•
•
•
server = Adresse IP ou URL de votre serveur. Si votre serveur est sur le même ordinateur
que nwnx, vous devez mettre “localhost”
user = Il s’agit du nom d’utilisateur pour accéder à votre base de donnée. Lorsque votre
serveur mysql est sur le même ordinateur que nwnx, il s’agit souvent de “root”.
password = Entrez ici le mot de passe que vous avez défini pour l’utilisateur donné. Si
l’utilisateur est “root” alors le mot de passe sera celui que vous avez déterminé lors de
l’installation de MySQL…
schema = Entrez ici le nom de votre base de donnée
Une fois ces paramètres entrés, nwnx devrait pouvoir se connecter à votre base de donnée.
Attention, cependant, à bien configurer votre Firewall…
c. Créer un raccourcis sur le bureau qui lance le panneau de configuration du serveur
Dans le répertoire de votre ordinateur où se situent vos fichiers du pack nwnx4, faites 1 clic droit
sur NWNX4-Controller.exe et choisissez “Envoyez vers” “Bureau (créer un raccourcis)” :
Puis sur l’icône ainsi crée sur le bureau, faites 1 clic droit de la souris et sélectionnez
“Propriétés”.
Dans le champs “Cible” ajoutez “-interactive” après NWNX4_Controller.exe :
30
Si maintenant, vous faites 2 clics sur l’icône, vous verrez apparaître le panneau de configuration du
serveur :
d. Importer les fichiers “erf” dans le module.
-
Ouvrez le toolset et votre module.
Faites un clic sur “Fichier” puis “Importer”
Sélectionner le fichier à importer et faites “Ouvrir”.
Faites de même pour chaque fichier “erf”
Voilà, vous avez finis l’installation de NWNX4 ! Félicitation !
31
4. Configuration des éléments liés à NWNX4
Vous avez installé NWNX4, il est prêt en l’état mais pour l’utiliser il vous reste encore quelques
réglages à faire…
a. La base de donnée
Etant donnée que dans la version 1.06 de NWNX4 ne crée pas encore de table dans votre base de
donnée, l’utilisation des fonctions de NWNX4 fera crasher votre serveur si vous ne créez pas la
table “pwdata” dans votre base de donnée MySQL.
Donc pour le moment vous allez devoir créer un script dans le toolset. Appelez celui-ci
“nwnx_buildtable” par exemple. Mettez ceci dans le script :
#include "nwnx_sql"
void main()
{
SQLExecDirect("CREATE TABLE IF NOT EXISTS pwdata (player varchar(64) NOT
NULL default ' ',tag varchar(64) NOT NULL default ' ',name varchar(64) NOT NULL default
' ',val varchar(64),expire smallint(5) unsigned default NULL,last timestamp(14) NOT
NULL,PRIMARY KEY (player,tag,name)) TYPE=MyISAM;");
}
Remarque : J’ai écrit cette ligne de commande pour MySQL 5.0
Ensuite, vous allez créer un script nommé “OnModuleLoad” que vous allez placer dans
l’évènement du module « Script déclenché par le lancement du module ». Placez ceci dans le
script :
/*Script qui se lance au lancement du module*/
void main()
{
ExecuteScript("nwnx_buildtable",OBJECT_SELF);
ExecuteScript("x2_mod_def_load",OBJECT_SELF);
}
Ainsi lorsque vous lancerez votre module, il créera la table pwdata si elle n’existe pas déjà.
b. Les scripts
Pour pouvoir utiliser les fonctions de NWNX4 dans vos scripts, il est impératif que vous mettiez
cette ligne en début de vos scripts (seulement ceux qui utilisent des fonctions de NWNX4 hein !)
#include "nwnx_sql"
Cela va indiquer au compilateur de NWNScript de lire d’abord le script “nwnx_sql” où sont placées
les fonctions de NWNX4.
32
c. Paramétrer les données de lancement du serveur au démarrage de
nwnx4
Comme vous l’avez constaté dans la partie 2.c, le panneau de contrôle du serveur qu’ouvre
NWNX4, lance votre module mais possède des paramètres par défaut qui ne vous conviennent pas,
tel que le nom de votre serveur, le niveau de difficulté…:
Pour mettre vos propres paramètres par défaut, ouvrez le fichier “nwnx.ini” et intéressez vous à
cette ligne :
parameters = -module nwnx
Il est possible de rajouter à la suite du nom de votre module des paramètres en ligne de commande.
On peut les trouver sur ce site : http://nwn.bioware.com/builders/winserver3.html
Voici un tableau récapitulatif de leurs fonctions :
Ligne de commande
Effet
Défaut
-module nom
Charge et lance le module spécifié. Vous devez indiquer
son nom sans l'extension .mod. Ce module doit se trouver
dans votre répertoire "module"
-load sloat
Charge et lance une partie sauvegardée. Les parties
sauvegardées se situent à l'emplacement C:\Documents
and Settings\Propriétaire\Mes documents\Neverwinter
Nights 2\saves. Remplacez "sloat" par le numéro de la
partie. Par ex : 000001
-maxclients #
Remplacez le # par le nombre maximum de joueurs qui
peuvent se trouver en même temps sur votre serveur
6
-minlevel #
Remplacez le # par le niveau minimum requis par le
serveur. Si le joueur crée un nouveau personnage, il
gagnera les XP nécessaire pour avoir le niveau minimum.
1
-maxlevel #
Remplacez le # par le niveau maximum requis par le
serveur.Le personnage ne pourra pas évoluer au-delà de ce
niveau
20
-pauseandplay 0/1
0 = le jeu peu être mis en pause par le DM; 1= le jeu peu
être mis en pause par le joueur
0
33
-pvp 0/1
-servervault 0/1
-elc 0/1
-ilr 0/1
0 = "aucun" pas de combat entre joueurs; 1="groupe"
combat entre groupe mais coéquipier ne se font pas de
dégats; 2="total" Tous le monde peut se battre et se faire
des dégats
0 = Personnage locaux autorisés; 1= uniquement
personnages stockés sur le server
0= n'oblige pas à avoir un personnage légale; 1=oblige à
avoir un personnage légale
0= ne restreind pas l'usage des items en fonction du niveau
(par exemple un PC niv3 avec un gantelet "epique";
1=restreind l'usage des items en fonction du niveau
1
0
1
1
-gametype #
34