PWUM Automatique V0.01

Répondre
Partager Rechercher
Visiblement, le browser pour les modules ne trouvait pas la liste de mes mods et j'avais entré le nom a la main au début.
Là je sais pas trop comment, mais il a finalement trouvé la position de mon fichier de module et m'a chargé correctement dans NWserver le bon nom de module, le bon type de server et a correctement chargé le module sur le server, la suite du test dans quelques instants

Alors après test, il semble que ce soit les charactères [] qui foutent la merde à la fois dans le nom de serveur tronqué et l'abscence de chargement du module directement dans NWserver, j'explique par un exemple:
[SYSTEME] PUMA marche pas (nom de serveur tronqué et module pas chargé)
Par contre PUMA ou PUMAPUMAPUMAPUMA marche très bien, donc j'en déduis que c'est pas un prob de nombre de caractère mais bien un problème de charactère.

Pour ce qui est de la récupération automatique des variables c'est le bide complet, je vois bien les variables PWUM dans le log mais je récupère rien automatiquement au redémarrage du serveur, ni float, ni int, ni location, ni string et j'ai plus de thunes a la banque
J'ai peut être raté un épisode.

Jaha Effect
Citation :
Provient du message de Jaha Effect
Visiblement, le browser pour les modules ne trouvait pas la liste de mes mods et j'avais entré le nom a la main au début.
Là je sais pas trop comment, mais il a finalement trouvé la position de mon fichier de module et m'a chargé correctement dans NWserver le bon nom de module, le bon type de server et a correctement chargé le module sur le server, la suite du test dans quelques instants

Jaha Effect
Le paramétrage des chemins d'accès est légèrement diffèrent de la première version. Le prog a tous simplement repris tes anciens paramètres sans réfléchir, et donc ca a posé problème.
En cliquant sur le plus en haut a droite et en sélectionnant le fichier nwserver.exe, il a recalculé les chemins d'acces.
Au redémarrage suivant du programme, le bon chemin étant enregistré : no pb.

Donc le bug c'est : ne raffraichis pas la liste de modules lors d'un changement de chemin. Il faut quitter le prog et y retourner.

Pour le nom du serveur, je vais jeter un oeil aussi

Encore MERRRCIIIIII
Je confirme, pour trouver le module dans la liste une fois le chemin d'accès changé, on quitte et on relance et c'est bon (à ne faire qu'une fois). Mettre le nom "à la main" dans le Puma ne fonctionne pas (il ne doit pas lui appliquer le bon répertoire je suppose).

Un truc tout bête, aussi, c'est le "time warp" qui s'opère quand un joueur quitte et relance. A sa reco, il est au bon endroit (nwserver gère ça) mais le onClientEnter le téléporte aussitôt là où il était à la dernière sauvegarde, ce qui peut lui faire un flash back gênant pour sa position. Toujours en ne s'intéressant qu'à la position du joueur, on peut peut-être arranger ça avec un :
Code PHP:

object oPC GetExitingObject();
sPCLocation GetPCPlayerName(oPC) + GetName(oPC) + "CurrentLocation";
SetPWUMLocationC(sPCLocationGetLocation(oPC)); 
à placer dans le onClientLeave du module. Je ne sais pas du tout si on a encore le droit de toucher à l'objet "Exiting" quand il s'agit du module (si le joueur est déconnecté, peut-on encore trifouiller un peu ses variables avant que le serveur les élimine ?). Je serais tenté de dire oui, vu que l'aide affirme que le caller de GetExitingObject() peut être le module, mais c'est à tester. Je dis ça un peu à tout hasard, corrigez-moi si je suis à côté de la plaque.

Un autre truc qui me dérange un peu a priori, c'est la récurrence de PWUMLocationTimer. Elle s'appelle automatiquement avec un DelayCommand, un peu à l'image des fonctions de respawn de RAT. Moi j'ai peur que ça charge la mémoire, à force, vu que les appels de fonction ne sont jamais "dépilés". Je n'ai pas de meilleure proposition a priori, vu qu'on n'a pas d'appels d'interruption autre que le "onHeartBeat" (berk). A la rigueur, on peut réduire les récurrences en mettant plusieurs delay de suite, ce serait sans doute plus léger qu'un appel de fonction empilé toutes les cinq minutes (par défaut). On verra ça plus tard, c'est pas le plus important.

Des joueurs m'ont signalé que les sauvegardes étaient pas régulières et qu'il y avait parfois vingt minutes sans message de backup, mais là je suis sceptique et j'attends de voir par moi-même.

A suivre...
Citation :
Provient du message de Jaha Effect
Pour ce qui est de la récupération automatique des variables c'est le bide complet, je vois bien les variables PWUM dans le log mais je récupère rien automatiquement au redémarrage du serveur, ni float, ni int, ni location, ni string et j'ai plus de thunes a la banque
J'ai peut être raté un épisode.

Jaha Effect
Heu vous avez une idée pour ça parce que là je sèche, j'arrive pas à avoir le résultat que c'est censé produire, ça viens de quoi?
J'ai retourné le problème dans tout les sens, j'ai même recréé le module au cas ou, je ne récupère strictement aucune des données saugardée sur le log

Jaha Effect
Bon alors commençons par le commencement .

pour Gadjio :

Pas besoin de faire tout cela dans le onleave du module. Car il y a une fonction dans le pwum, il est ds le readme, donc faudrait vérifier si je me trompe qui se nomme ResumePcLocation qui permet de pouvoir ramener le joueur à sa position sans utiliser de sauvegarde pwum. Car la location en sauvegarde persistante est surtout utile que s'il y a un crash de serveur ou une deco. Comme cela évite de trop utiliser les sauvegardes persistantes.

Pour le système de timewarp, oui c'est tout à fait le même système que j'utilise pour mes respawns, mais je peux presque jurer que cela prend moins de ressource qu'un onheartbeat. Pourquoi? Tout simplement, never relit les scripts , et il va lancer la fonction que si dans le delaycommand il aura atteint son temps demandé. Et le code sera donc chargé qu'une fois jusqu'au prochain delay. S'il ne passe pas dans le delay, il ne lit même pas la fonction. Qui fait que cela prend moins de ressources à mon avis. Mais perso, je ne vois pas comment on peut faire autrement. Comme on a besoin que le code soit relancer tout les x temps. Pour mes respawns, c'est pareil, je suis obligé de relance mes fonctions pour les npc par exemple tous les 10 minutes, pour qu'il regarde s'il y a des npc qui ne sont plus valide et si oui, qu'il les recrée. Même si cela prend peut être un peu plus de ressource, cela simplifie vachement le système, cela l'automatise, et vous en libérer vachement par le fait qu'en chargeant la premiere fois le module vous supprimer tous les npc de toutes les zones .

enfin bon après, faudrait tester avec de très très très gros modules .

Par contre , je n'y crois pas trop pour les sauvegardes non régulières, elles peuvent varier de quelques minutes selon le lag peut-être, mais normalement comme c'est un delay command, il devrait rester en gros vers les 5 minutes près.


pour Jaha:

Tu parles sur le fait que tu arrives à bien enregistrer les variables dans les logs, mais c'est quand tu relances ton parser que cela ne recréé pas les fonctions dans le script variable.nss et ne doit pas le compiler au module???

Je dois t'avouer que c'est un peu étrange, bon je n'ai pas encore tester avec la version 0.02 pour les sauvegardes, mais je ne pense qu'iridian est changé grand chose là dessus. Mais là ,c'est à lui demander.


Vérifie bien qu'il te crée dans l'override un fichier variables.nss et banque.nss . S'il ne te les créé pas , cherche pas c'est qu'il ne compile pas ton module. Si tu les vois , ouvre les directement dans le répertoire (Et surtout pas dans le toolset!!!!), et regarde si tu as toutes tes sauvegardes .

Désolé, si je ne peux t'en dire plus, mais pour arriver à régler ton problème, essayons de voir étape par étape .
Pour le variable.nss, je le trouve bien, par contre pour la banque je trouve pas, je reverifierais demain.
je te met quand même mon variable.nss ici
Code PHP:

#include "pwum_functions"
void main()
{
object oUMArea;
vector vUMVector;
location lUMLoc;
SetPWUMInt("iPWUMDate"46116112100000000);
SetPWUMInt("iDefaultExpire"8412100000000);
SetPWUMInt("Jaha EffectVD7Q4X7QJaha Effectflag_int"112100000000);
SetPWUMFloat("Jaha EffectVD7Q4X7QJaha Effectflag_float"1.10000002412100000000);
SetPWUMString("Jaha EffectVD7Q4X7QJaha Effectflag_string""1"12100000000);
oUMArea=GetObjectByTag("Zone002");
vUMVector=Vector(11.30841636717.6127204900.000000000);
lUMLoc=Location(oUMAreavUMVector,115.681777954);
SetPWUMLocationC("Jaha EffectVD7Q4X7QJaha Effectflag_location"lUMLoc12100000000);
oUMArea=GetObjectByTag("Zone002");
vUMVector=Vector(17.78925132812.9559650420.000000000);
lUMLoc=Location(oUMAreavUMVector,77.650421143);
SetPWUMLocationC("Jaha EffectJaha EffectCurrentLocation"lUMLoc12100000000);

On voit clairement qu'il a toute les variables, mais quand je rentre dans le jeu, j'ai plus aucune variable sur mon perso

Jaha Effect
Et quand tu utilises des variables persistantes normales, sans flaguer ton personnage, Elle marche les variables?????

Le fait qu'il y est un espace entre jaha et effect, mais je ne pense pas car j'ai fais un test en enregistrant un SetLocalInt en lui mettant un espace dans son nom et il compile, donc cela ne doit pas être cela.

Il faut vérifier aussi si l'item du pwum est bien dans le jeu.

Est ce que la première version de l'autoparser fonctionnait Jaha???

Sinon, faut que je regarde si je n'ai pas modifier quelque chose dans les fonctions du pwum, mais moi cela fonctionne bien chez moi c'est là ou je ne comprends pas trop

et je viens de tester, si ta sauvegarde se compile bien, et c'est le cas, elle se compile très bien.

Bon je vais continuer mes recherches Jaha. "Ne perdons pas Espoir"
Pour Jaha : as tu bien remplacé les fichiers pwum_functions.nss et .ncs dans l'override ? Ils sont différents dans les 2 versions, si tu ne l'as pas fait ca viens peut-être de la.

As-tu bien les executescripts("variables") et ("banques") dans le chargement de ton module ?

Si oui, alors je sèche ! Je te demanderai de mettre ton module en ligne que je le download pour tester chez moi.
Alors je reprends ...
- Je n'ai pas testé la version 0.01, je suis passé direct à la version 0.02 donc impossible de dire si la V0.01 fonctionnait chez moi.
- Le module que j'ai testé Online est le module de test livré avec (test_PWUM2.mod).

Citation :
As-tu bien les executescripts("variables") et ("banques") dans le chargement de ton module ?
oui, j'ai vérifié dans le OnModuleLoad et s'y est bien.

Citation :
Il faut vérifier aussi si l'item du pwum est bien dans le jeu.
Oui il y est !

Citation :
as tu bien remplacé les fichiers pwum_functions.nss et .ncs dans l'override ? Ils sont différents dans les 2 versions, si tu ne l'as pas fait ca viens peut-être de la.
Je n'ai pas eu besoin de le faire, je n'avais pas la première version installé.

Citation :
Alors après test, il semble que ce soit les charactères [] qui foutent la merde à la fois dans le nom de serveur tronqué et l'abscence de chargement du module directement dans NWserver, j'explique par un exemple:
[SYSTEME] PUMA marche pas (nom de serveur tronqué et module pas chargé)
Par contre PUMA ou PUMAPUMAPUMAPUMA marche très bien, donc j'en déduis que c'est pas un prob de nombre de caractère mais bien un problème de charactère.
Je rappel ça au cas ou vous soyez passé a côté.

Par contre, RAT, je me demande pourquoi tu utilise pas les patterns dans ta banque.
- Déposer 100
- Rétirer 21556
- Solde

Jaha Effect
dans l'override, j'ai bien la création de variable.nss et banques.nss mais deux autres fichiers se sont crées, variables.nssvariables.nss et variables.nssbanques.nss je ne sais pas si cela sert à quelque chose ou pas.


Bon par contre, moi j'ai l'impression que les sauvegardes de banques ne marchent pas, donc je vais vérifier mon code en retour.

Par contre, les fonctions du pwum marchent parfaitement.


Mais je ne vois pas ou vous trouvez les crochets [] car le syteme c'est par des <> que nous mettons pw_um ou puma ???
Je trouve ça dans mon Override
- variables.nss
- variables.ncs
- banques.nss
- banques.ncs

Pour les crochet il semble que ce soit l'auto-parser qui ne les gère pas pour réatribuer le nom et le type du module dans NWServer.

Jaha Effect
Citation :
Provient du message de RAT
vivi moi aussi
mais j'ai aussi
variables.nssbanques.nss
variables.nssvariables.nss
variables.nssbanques.ncs
variables.nssvariables.ncs
Euh la il y a erreur ! c'est clairement une variable non réinitialisé !
*va se flageller pour se punir, et corriger ca*

Par contre, on est d'accord que vous avez bien
pwum_functions.nss
pwum_functions.ncs
Dans l'override ??? (sinon normalement ca compile pas, c'est a dire que le fichier nss est bon mais que le ncs est vide)

Rat, tu pourais m'envoyer ton banquier last version et les dernieres fonctions pwum_functions et ***flag_functions*** (kel que soit le nom que tu lui donne au format nss s'il te plais ?
(pour toi c'est plus facile a fournir, et pour moi plus facile a importer qu'un copier coller)

Je vais essayer de passer l'apres midi a corriger les bugs et securiser un peu tout ca (ca dependra du temps que me laissera mon gamin)
Citation :
Provient du message de Iridian
Euh la il y a erreur ! c'est clairement une variable non réinitialisé !
*va se flageller pour se punir, et corriger ca*

Par contre, on est d'accord que vous avez bien
pwum_functions.nss
pwum_functions.ncs
Dans l'override ??? (sinon normalement ca compile pas, c'est a dire que le fichier nss est bon mais que le ncs est vide)

Rat, tu pourais m'envoyer ton banquier last version et les dernières fonctions pwum_functions et ***flag_functions*** (kel que soit le nom que tu lui donne au format nss s'il te plais ?
(pour toi c'est plus facile a fournir, et pour moi plus facile a importer qu'un copier coller)

Je vais essayer de passer l'apres midi a corriger les bugs et securiser un peu tout ca (ca dependra du temps que me laissera mon gamin)

heuuu pour les dernieres versions de mes fonctions, vivi je te les envoies .Pour mon banquier, pas possible pour l'instant,j'ai des codes à corriger avant, car là pour l'instant tu n'y gagnerait pas grand chose.

pour les fonctions je te les envoies par mail.

Dis moi, tu avais testé avec ton banquier sur ton module de test, et est ce que mes fonctions marchaient correctement ou pas?
D'accord, cela me rassure donc cela ne vient pas de mes fonctions mais du code de mon banquier donc je retourne voir le probleme pour corriger cela .
Iridian, je viens de me rendre compte d'un truc, à chaque fois que je me déco du server et que le reparse, j'enregistre bien les fonctions de la banques, mais pourtant je ne peux pas lire.

Et je viens de m'en rendre compte pourquoi!

Parce que quand tu compiles toutes les variables dans banques.nss, tu as oubliés de mettre des guillements dans le paramètre de la fonction SetBanqueInv, qui fait que le serveur ne peut pas lire le fichier ne pouvant le compiler correctement.


voilà
Oki RAT, je corrige ! (ca marchais chez moi pourtant, sûrement "grâce" a un autre ncs d'une version précédente, ca m'apprendra a ne pas refaire toujours les même jeux de test).

Je m'inquiète quand meme de ca :
Citation :
variables.nssbanques.nss
variables.nssvariables.nss
variables.nssbanques.ncs
variables.nssvariables.ncs
Tu as vraiment des noms de fichiers coller comme ca ?
Quand tu les supprimes, ils se recréent ?

Jaha, pourrais-tu supprimer le fichier Auto-Parser.ini (dans ton répertoire système) et réessayer s'il te plais (il te faudra tout reparametrer si tu n'utilises pas les paramètres par défauts).
Et refaire le point ensuite sur la persistance des variables classiques et des variables de banque (et du fichier XML).

J'en profite pour préciser que le banquier du module de test n'est pas celui de RAT, mais juste un truc rapide que j'ai fait utilisant les commandes de banques.
Ba perso, je ne sais pas
je te montre ce qu'il y a dans banque.nss

Code PHP:

#include "pwum_functions"
void main()
{
SetBanqueOr(""200012100000000);
SetBanqueInv(""nw_wplhb001°1$nw_aarcl003°1$nw_aarcl005°1$nw_wammbo004°99$, 12100000000);

et comme tu vois il n'y a pas les ""

Je pense que toi cela marcher car tu n'as pas utilisé la commande SetBanqueInv si je ne me trompe pas???? , si tu ne l'as pas utilisé, et que tu n'as utilisé que SetBanqueOr , le script fonctionnait très bien comme il se compiler , cette fonction étant un integer


Par contre , je viens de les supprimer, je referai des tests pour voir s'ils se recréent. Car je n'ai pas pensé à faire ce test!!

Vivi, mon système de banque viendra avec la 0.03 c'est à dire quand tu auras pu corriger tout cela: )
En attendant, je vais faire plaisir à Jaha lol, je vais continuer à bosser sur la taverne
Citation :
Provient du message de Iridian
Jaha, pourrais-tu supprimer le fichier Auto-Parser.ini (dans ton répertoire système) et réessayer s'il te plais (il te faudra tout reparametrer si tu n'utilises pas les paramètres par défauts).
Et refaire le point ensuite sur la persistance des variables classiques et des variables de banque (et du fichier XML).
J'ai bien gerbé le .ini, refais les tests mais même topo, je récupère aucunes de mes variables lors du relancement.
tu as besoin des fichiers résultat?
Je vais dire un truc idiot et je m'en excuse à l'avance, ça pose aucun prob que l'exe s'appel PUMA.exe au lieu de auto-parser.exe (à mon avis non mais on sais jamais).

Jaha Effect
Ba écoute il n'y a pas de raison que tes fichiers de résultats soit faut si ils se compilent bien chez RAT (il a essayé je crois non ?)

Le plus simple serai que tu m'envoies une URL ou récupérer ton module.

Au fait, avec le module de test ca marche ou pas ?
Ton module de Test marche bien pour toutes les fonctions du pwum, comme j'ai mis mon système de banque là dessus. Le seul hic c'est pour les fonction de puma du SetBanqueInv comme je t'en ai parlé précédemment.

Sinon il fonctionne très très bien.J'utilise même PUMA pour mon serveur de développement et il marche bien avec moi.


Je ne comprends pas pourquoi cela ne veut pas marcher sur Jaha.

je commence )à craquer lol
Répondre

Connectés sur ce fil

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