[TUTORIAL] du pw automatique

Répondre
Partager Rechercher
Bon commençons par la première étape, son installation car elle n'est pas simple au début à comprendre.

Donc pour commencer:

1°)

Vous devez posséder ou si vous ne l'avez pas donc de télécharger : "Java 1.4.1" de java.sun.com.
Pour le télécharger, allez sur Clubic , allez sur le lien téléchargement et faites une recherche "java", vous trouverez le moteur de javaruntime.

Sinon vous pouvez utiliser le jview de Microsoft
en changeant la première ligne du manuscrit :

Code PHP:

jview /cp logparser.jar logs.0/nwserverLog1.txt override 

2°) Ensuite, vous devez télécharger un autre exe, qui permet si j'ai bien suivi de compiler les extensions de bioware. Le fichier se nomme :"nwnnsscomp.exe " allez sur le site torlack pour le trouver.
Vous devez le mettre dans le répertoire NeverwinterNights\NWN.

3°) les différents fichiers:

logparser.jar : c'est le parser qui a été compilé sous format jar.

pwnwserver.cmd : Oubliez de lancer en premier le nwnserver.exe!!! Mais lancez tout d'abord cette commande, qui lui lancera automatiquement le nwnserver.exe . Cela permet de lancer le parser en même temps que de lancer le module, si j'ai bien suivi.

sam_inc_ps.nss : C'est le script d'include se trouvant toutes les fonctions pour les sauvegardes persistantes.

java/LogParser.java : C'est la source du code du parser en java.

Module.mod dans PW/mod : Un mod très simple qui montre comment vous pouvez incrémenter
un compteur entre les chargements du serveur.

override/sam_pw_start.ncs : Un manuscrit vide qui est juste un support au vrai manuscrit pour donner l'endroit où
le manuscrit disparaîtra. (à ce que j'ai pu comprendre)

4°)

Pour l'installation:
1. Dézipper le fichier dans un endroit de votre disque. Mettez le fichier dans le répertoire de l'override, dans l'override de never.
Mettez le module de test, dans votre répertoire de module. Et faites un copier/coller dans le répertoire même de nwn.
Rajouter aussi l'exe que vous avez téléchargé:"nwnnsscomp.exe ".


2. Si vous le faites dans un autre module que le module de test,
ouvrez le module de test, et exporter les deux scripts.


3. Au lieu de lancer le nwserver.exe , vous lancez plutôt le pwnwserver.cmd.


5. Pour tester, son module, vous lancez le module plusieurs fois de suite, pour voir le compteur s'incrémenter d'un en un à chaque chargement du module. Pour voir la valeur, faites un SendMessageAllDM ou créer une créature et dans son dialogue, vous créez un <CUSTOM8000> qui prendra la valeur.

Voila pour le premier tutorial . J'espere que cela vous aidera.
Le prochain cela pour expliquer , les changements que j'aurai fais avec les autres scripteurs qui veulent me suivre dans l'aventure. En modifiant son parser, pour qu'il gère celui du pwum.
Voilà, cela évitera comme cela, de faire recommencer tout le monde qui utilise le pwum ou même les flags de Tyn.

A bientôt,
Merci ^^

En esperant un parser pour les float et les string, afin de pouvoir enfin avoir des saves auto...

(PS : a la limite, juste des string, c'est bon aussi... vu qu'on peut les transformer facilement en Int/Float ^^ )
Ba inutile de préciser "si j'ai bien compris" parce que si j'ai bien compris aussi tu as tout bon

Bien vue eMRaistlin pour les strings *avais oublié les fonctions de conversion*
Ba merci tout le monde .

Donc je viens de terminer le parser sous java, et je vais le tester demain car là je suis naze.

Je vais en discuter avec iridian sur msn, pour l'optimisation ou si il ne vaut pas mieux le faire quand même sous un autre langage.

Et si cela marche, je vous ferai mon rapport en un deuxième tutorial, car il y aura quelques modifications à faire.

Par contre, cela gère exactement les variables du pwum. donc le SetPWUMInt (...), SetPWUMString(...), SetPWUMFloat(...), SetPWUMLocation(...)... voila donc la gestion de flags marchent tout aussi bien.

Par contre j'ai rajouté aussi les DEL cad :
DelPWUMInt (...), DelPWUMString(...), DelPWUMFloat(...), DelPWUMLocation(...)...


en fait, personne ne les avait rajouter dans les parser pour le pwum. Et je trouvais cela dommage, donc là, en fait, il va relire de nouveau le fichier, et s'il voit le del, il prend le nom et il regarde dans mes tableaux si avec ce nom, il lit des valeurs. S'il en lit alors il les supprime tout simplement. Qui fait que les sauvegardes ne seront plus afficher dans le pwum.nss. Donc on les aura bien effacer .
voila
un autre langage! un autre langage!

non, sans plaisanter c'est surtout le reecrire completement le parser.

parce que son utilisation pourrait etre bcq plus large qu'une simple sauvegarde automatique: c'est un collecteur de stats, un bigbrother meme.

en prevoyant des mini reload automatique à laps de temps regulier du module:


- gerer des creations/locations de maisons par les joueurs (avec les placeables de maisons dispos), accepter-refuser l'emplacement choisit par le joueur.

- se bricoler dignement un systeme de factions

- un vrai systeme de guildes: actions des joueurs determinant l'influence de leur guilde ...

- un systeme de metiers à la ATS mais plus simple d'acces et grace à un rad, concevoir une interface recuperant le fichier de sortie du parser pour modifier/creer d'autres items/containeurs/metiers, octroyer des habiletés spéciales à des joueurs precis en fonctions de leurs actions realisées ... tout ça par des petits menus et des cases à cocher ...

- recup des stats d'un module pour exploitation sur une page web

- gerer des campagnes dynamique avec inversion des pouvoirs/contre pouvoir.

- soutenir des petites parties avec DM: integrer les resultats de l'anim ds le monde lui meme, ou faire prendre connaissance des actions realisées par les joueurs sur une anim lancé 2 jours avant sans necessiter la presence constante du DM.

- modifier les quetes, les pnjs presents ds une zone, certains appels d'arbres des dialogues, en fonction de la saison, de la valeur d'une variable, sans creer des zones identiques au contenu different.

- gerer une economie, tenir des stocks, creer des manques, des epidemies, des convois de marchandises entre regions en fonction de la periode de l'année ...

- concevoir un systeme de progression du perso independant de tout xp pour les modules plutot rp. ==> une moyenne des actions realisés sur une periode donnee In Game permet de gagner des jetons d'apprentissage à depenser aupres de formateurs, combat, metiers, progression sociale ...

- envoyer des mails en fonctions des stats recup, avec des contenus personalisés (automatiser outlook, c'est 5 lignes de code en utilisant les objets com)



comment?


un parser GENERIQUE.

le parser est juste la boucle de lecture des logs.
Il lit dans un fichier de parametrage, annexe, le format des lignes du log a lire et les formatages des fichiers à sortir.

Le parser ne devrait peut etre plus devoir traiter la gestion du fichier script à compiler, il sort simplement des fichiers textes épurés, on produit l'ossature d'un executable, à part, qui permet de traiter ces infos, de creer un fic script en sortie et de l'envoyer vers le compilateur et chacun le complete pour ses objectifs.

pas besoins de modifier le code pour l'utiliser dans le cas d'un fonctionnement de base. Les autres completent le source à leur sauce.

les fichiers de sortie sont repris par des minis appli graphiques pour reprendre toutes les stats, apres modifs, un fichier script nwn est créé/modifié et envoyé au compilateur (vers override bien entendu) et traité au redemarrage du module.

dans un module les fonctions à vocation dynamique utilisent un include pour initialier/definir toutes les variables quelles utilisent. ce sera ces fichiers include là qu'on recree/modif et compile: à chaque reload du module le monde evolue un peu...

Avec le meme parser on fait chacun ce qu'on veut, suffit d'ajouter dans le fic txt de parametres nos formatages persos pour avoir des fichiers à traiter en plus.

en gros:

sous NT, linux etc, l'arret du service/deamon declenche automatiquement l'execution d'un batch qui:
- lance le parser
- lance le/les fichiers executables secondaires gerant les fic de sorties du parseur et traitant les stats recoltées.
- les envoie au compilo, les balance ds override
- redemmare le service nwserver.

(sachant en plus qu'un service se stoppe, permet des tentatives de redemarrage si le test montre qu'il est vautré en auto ... tout le processus peut etre automatisable, des sources optimisées en c ou autres devraient rendre la durée de tout ça pas bien grande).


ça pourrait etre amusant d'etablir un petit plans d'idées d'utilisation, du langage à utiliser pour la majorité des utilisateurs du forum etc...
Oula Dudu99, tu y va fort ! tous ceci est faisable, mais demande une put*** d'analyse pour ne pas se mélanger les pédales.

Je re-propose delphi/kylix pour faire ça
ouh là Dudu99, tu vas pas un peu trop loin là. Tout ça est faisable mais il faut quand même rester objectif, réaliste et le temps que nous possédons.
Donc le faire sous un autre langage soit.

Mais alors qu'on choississe tous un langage qui nous convient.
Delphi pourquoi pas?il faut juste que je le réinstalle, et que je me réadapte dessus car cela fait des années que j'en ai pas fais.

Du c? pourquoi pas non plus. Je m'en fous.

Le seul truc c'est que j'ai à la base plus de connaissance dans les langages du web que les autres mais bon cela me reformera un peu .
Citation :
Provient du message de RAT
ouh là Dudu99, tu vas pas un peu trop loin là. Tout ça est faisable mais il faut quand même rester objectif, réaliste et le temps que nous possédons.
Donc le faire sous un autre langage soit.

Mais alors qu'on choississe tous un langage qui nous convient.
Delphi pourquoi pas?il faut juste que je le réinstalle, et que je me réadapte dessus çar cela fait des années que j'en ai pas fais.

Du c? pourquoi pas non plus. Je m'en fous.

Le seul truc c'est que j'ai à la base plus de connaissance dans les langages du web que les autrès mais bon cela me reformera un peu .
Le C est très rapide, le delphi un peu moins (quoi que) mais plus facile a appréhender (enfin je pense, ce n'est que mon avis).

Les 2 sont exportables sous linux a condition de ne pas utiliser de bibliothèques windows (évidemment).

Donc les 2 sont bien, mais ma préférence va au delphi

Apres un courte réflexion, de que demande Dudu n'est pas très compliqué en fait (dans un premier temps) car ce n'est ni plus ni moins que la possibilité de stoker des variables sur d'autre objet que les PJs.
Donc dans un premier temps développer un système de stockage simple et clair sera suffisant, quitte par la suite a faire une interface et ajouter une BdD pour garder une trace de tous ca.
Mais une chose a la fois
bon bon bon la je me calme, je respire, evidement je comprend rien escuser moi mais vous parlé en argot, bon premier truc j'ai telechargé le test dans mon module, ensuite les scrypt, puis les dialogue, mdr jusque la sa va bon allon doucement sa fait 3 semaine que je me suis mis sur la construction de mon module, deja les scrypt ses galere a comprendre votre SUPERBE BANQUE que j'ai essyé dans le test module est vraiment genial mais tres compliqué surtous les mots que vous utilisé. bon alors les scypt que j'ai téléchargé y a t il besoin d' en mettre est ou??

j' ai beaucoup de scrypt mais ou les mettre ceux telecagé du module test ?
bon bon j'avance a grand pas maintenant on aurais omis de me parlé d'un objet " universal mind " ??? non non je plaisante ses moi qui est rien compris je dut loupé une de vos explications bon la seul chose qui me manque ses donc la sauvegarde persistant bon se que je n'est pas compris j'ai telechargé java faut-il qu'il soit ouvert ou pas??? si oui sur lequel il y a 4 icone a ouvrir.!!! merci de votre patience
La banque utilisé dans le PUMA est assez basique, il faut demander la version finale qui est nettement mieu à RAT, qui ne l'a pas encore mis sur le forum.
Et pour qu'elle marche il te faut impérativement le PUMA installé sur ton module.
Et oui tout le contenu de la banque est sauvegardé et restitué après reboot du serveur.

Jaha Effect
pour la banque tous va bien elle marche super ses juste la save qui decone pour moi pourtant je pensse avoir tous rescpecté mais comme je suis novice y a peut etre un protocole a rescpécté , mais sa m'aide a aprendre suis navré de vous embeter
Tu ne nous embetes point raistlin on est là pour ça , moi je viens tout juste d'avoir ton email donc je sais pas si tu as déjà réglé ou pas le problème . Si c'est non, je te fais un mail de suite .
Répondre

Connectés sur ce fil

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