Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Du nouveau pour els grosses saves !
Du nouveau pour les grosses saves !
Par Claedeus le 23/12/2002 à 17:38:11 (#2862897)
Mais il y a encore un soucis , voila le chmilblik :
La source des grosses saves venait du script de Polar qui gere le repop des monstres ainsi que des dizaines d'options etc etc
La codification de son script ( qui se place dans un objets de chaque zone ) fesait que les WP ( utiliser pour faire spawner un/plusieur monstres ) generaient des save allant juska 3 giga ( et qui duraient 5 min fesant crasher le server )
Bcp de joueurs ont utilisé ce script et ce trouvent donc 'piégés' ( comme moi hehe )
c'est pkoi kkun a decidé de 'modifier le script' ( car il semblerait que polar est abandonné )
et le resultat est pas mal .. les save marchent tres bien ( 22 mega pour un module de 15 meg et 8 sec la save )
Mais voila le hic ... il y a des erreurs et le jeu sacade enormement
La honnetement .. c est arrivé a un niveau ou mes competences en script sont totalement dépassées
voila les erreur a l entrée du module :
*Script Repophauteville, OID: 80000f58 Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
*Script Repophauteville, OID: 8000053f Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
*Script Repophauteville, OID: 800000c3 Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
*Script Repophauteville, OID: 80000394 Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
*Script Repophauteville, OID: 80000610 Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
*Script Repophauteville, OID: 8000071c Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
*Script Repophauteville, OID: 800009b2 Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
****a noter que l erreur xxxxxxx53f se repete dans le temp
Bon , quelques petites précisions :
Script repophauteville : c est le nom du script qui a ete modifé afin de regler le prob des save
Tag : invisible objets : c est dans cette qu'il faut placer le script dans chake zone
Je ne sais pas si je peux poster les script ici car ils sont un peu long , mais sinon je les mail avec plaisir si kkun veux aider
Merci d avance .. si il vous manque des infos demander je posterais ca tres vite
Merci d avance .. c est la derniere ligne droite avant de regler definitivement ce prob de save qui gache la vie des joueurs ((
Par coolstar le 23/12/2002 à 17:49:00 (#2862971)
J'y ai déjà goûté moi aussi à ce genre de message gracieux...
*Script Repophauteville, OID: 80000f58 Tag : invisible objet erreur : TOO MANY INSTRUCTIONS
Cela signifie que tu demande à NWN (et donc au CPU!) une tâche qui passe en revu tellement d'éléments que ça sature complet, tout bonnement... :D
Le mieux encore et de voir ton Script... car il suffit parfois d'une seule ligne perfide (et non flagrante!) pour se retrouver ainsi dans la mélasse la plus soudaine (par un phénomène indéniable de Boucle "incontrôlée"!)... ;)
...
voila
Par Claedeus le 23/12/2002 à 17:55:05 (#2863022)
je te le mail ?
Par coolstar le 23/12/2002 à 17:56:34 (#2863028)
k! :hardos: :hardos: :hardos:
Par Ormus le 23/12/2002 à 18:03:14 (#2863082)
Par Claedeus le 23/12/2002 à 23:24:01 (#2865582)
en effet lorsqu'un joueur quit le jeu ca le save automatiquement , et il ma dit d'utiliser ca :
ExportAllCharacters()
est-ce corect ?? comment l utiliser ?
Par RAT le 24/12/2002 à 4:28:31 (#2867259)
les variables, la position du personnage etc.....?
Par coolstar le 24/12/2002 à 11:26:36 (#2868302)
Que l'on me reprenne, que je ne me méprenne... une de causes majeures de ce type d'incident et donc la "Mise en boucle" in-di-gérable... en l'occurrence, j'avais rencontré le même type de prob en mettant un While avec un GetItemInSlot... pour le même résultat Apocalyptique!! Je ne dis pas que ça vient de là, mais sur un Script de 2071 Lignes ça peut être une piste à suivre, non?? Et, quoi qu'il en soit, partant de là j'ai pu dénombrer 11 While... 8 For... &
7 Switch... Avec une question au passage Claedeus?? Qu'en pense au fait celui qui est passé derrière Palor??? :D
A creuser donc! :maboule:
Par Claedeus le 24/12/2002 à 11:42:16 (#2868440)
Voi la ca solution :
1) oublier les save pure et dure
2) utiliser le script ExportAllcharacter
3) et donc la .. ya un avantage .. deja ce script (qui est une save ) n' a pas besoin de loading car il 'simule' le fait qu'un joueur quitte la partie
4) par contre .. comme il ne sagit pas de save pure .. il y a quelque choses manquante .. genre Les maps, variable etc etc
Dans mon cas .. les variables je m en fiche .. j en utilise tres peu .. et le fait qu'elles soient remises a zero tous les jours ( Mersifall reboot tous les matin a 8 heures ) n'est vraiment pas un soucis
en fait .. maintenant il me manque juste un script qui permetrait de garder la maps pour chaque joueurs ( genre le mettre sur un objets invible des joueurs avec le script , chose qui suffirait car le perso lui est maintenant auto save toutes les 3 min ( encore une fois sans temp de chargement ..
5) donc au final .. on arriverais a faire l equivalent d une save sans aucun temp de save .. juste avec des export , ce qui serait vraiment top
Voila le script des export chars ( qui sera utile a bcp de createurs je pense )
dans le onload :
void main()
{
DelayCommand(180.0, SignalEvent(OBJECT_SELF, EventUserDefined(200)));
}
dans le OnUserDefined :
void main()
{
switch (GetUserDefinedEventNumber())
{
case 200:
ExportAllCharacters();
DelayCommand(180.0, SignalEvent(OBJECT_SELF, EventUserDefined(200)));
break;
}
}
voila ) donc maintenant .. juste un script qui gere les maps .. et c est une save quasi identique sans temp de chargement !!
o boulot coolstar !!
*prend son fouet*
:ange:
Par coolstar le 24/12/2002 à 11:53:05 (#2868536)
Provient du message de Claedeus
*prend son fouet*
Mais te flagelles pas... c'est pas si grave hein?! :D
Par RAT le 24/12/2002 à 11:56:34 (#2868563)
Mais au sujet des variables persistantes et la position du personnage, je trouve cela très important pour un module, mais bon cela doit être different suivant le module.
JOL Archives 1.0.1
@ JOL / JeuxOnLine