[Effet Polymorph] Encore un bug ?

Répondre
Partager Rechercher
Dans mon module, à un certain endroit, un PJ entrant est polymorphé et gratifié d'une invulnérabilité totale par SetImmortal().
L'effet polymorph est retiré lors d'un dialogue ainsi que le SetImmortal() qui est remis à FALSE. Jusqu'à présent, ça fonctionnait plus ou moins bien :
La métamorphose était annulée, l'immortalité de même, mais l'affichage montrait encore l'icône de métamorphose après l'annulation, bien que le PJ reprenne son aspect normal. Il disparaissait définitivement après un repos. J'ai mis ça à l'époque sur le compte d'un bug de gestion graphique. Mais...

Depuis le patch 1.64, les PJs reprennent bien leur aspect normal mais gardent toutes les immunités du polymorph précédent ainsi que le SetImmortal().

Vous avez des trucs pareils aussi chez vous ?



"Plus on avance, plus on recule."
En fait, mon script "normal", et non retouché depuis perpet, retire les effets par bouclage sur les effets appliqués au PJ. Comme expliqué dans un post plus bas. Or, ça ne fonctionne apparemment plus. Et là, j'avoue que je ne vois pas pour l'instant comment faire autrement.
ben dans ce cas cela voudrait dire que derriere ton PJ ne peut plus mourrir?

Moi chez moi j'ai toujours l'icone de l'effet polymorph qui reste par contre pour le reste je dois dire que je n'ai pas fait attention (pour l'instant de toutes façons on est toujours en phase de test)...
Citation :
Publié par Garrath
ben dans ce cas cela voudrait dire que derriere ton PJ ne peut plus mourrir?

...
Tu as tout compris

SetAppearence(), j'y ai pensé il y a longtemps. Cependant, ça me pose plusieurs soucis :
Avec Polymorph, on ne peut pas utiliser d'objets, avec SetAppearence(), si. Or je désequippe volontairement les PJs avant le polymorph.
Par ailleurs, j'avais fait de nombreux tests de cette possibilité à l'époque de son apparition et il en ressortait que c'était une solution fumeuse. Je me suis retrouvé avec plusieurs personnages test elfes/halfelins transformés en humains côté skin. (je n'ai pas confiance dans la restauration des skins vus les résultats obtenus à l'époque)

Du coup, j'ai renoncé. Je sens que je vais être obligé de m'y remettre.

[mylife.com]
Ca commence à me gaver... Ca fait depuis la 1.27 qu'à chaque patch on en a pour deux semaines minimum de boulot de correction. Heureusement qu'en plus, je n'ai pas de haks sinon, ça fait belle lurette que j'aurais décroché... :/
[/mylife.com]

Edit : au passage, les effets ne sont pas permanents. Une déco-reco résoud le problème même sans reboot du serveur.
Citation :
Publié par Azmathiel
Heureusement qu'en plus, je n'ai pas de haks sinon, ça fait belle lurette que j'aurais décroché
Clair, le passage en 1.64 a été très douloureux de notre coté avec le paquet de haks que nous avons .

Pour ton problème, un DelayCommand sur une fonction qui teste les GetEffectCreator pour vérifier que les effets du personnage n'ont pas été produits par l'objet qui a déclenché le EffectPolymorph, ça fonctionnerait ?
Moi pas comprendre quoi toi demander.

Tu veux dire que tu soupçonnerais le "créateur originel" de reproduire l'effet sans fin ou un truc du genre ?
Les effets sont créés à l'entrée d'une zone particulière et demeurent sans retouche, jusqu'au dialogue final obligatoire qu'ont les PJs avec le PNJ qui va les retransformer dans l'autre sens et annuler les effets.
J'ai fait les memes tests et le meme constat.
Le SetAppearrance est moyen pour cela. D'abord car il faut retenir absolument l'aspect de depart, et ensuite il faut jouer avec l'inventaire et c'est galere.
Le polymorph est vachement plus simple a mettre en place.

Mais bon comme je disais tout a l'heure nous on est juste en phase de test entre concepteurs (On espere la Beta d'ici 15 jours ), mais depuis que j'ai modifie le system de mort en mettant l'effet Polymorph (ce qui commence quand meme a dater) j'ai pas de retour sur ce genre de pb.
Et moi meme dans mes tests je n'ai jamais eu de pb (sinon ca aurait ete la merde pour tester la mort avec des immortels ).

Enfait chez moi, c'est la zone de mort qui cree les effets sur les joueurs. Donc en entrant la zone mets les effets et les enleves en sortie.
Mais bon je demanderais a mes petits testeurs de verifier qu'en cas de mort, ils sont pas immortels apres...
(je suis sur que non vu qu'il y en a qui nous a raconte sa soiree de Lundi ou il n'a pas arrete de mourrir )
Citation :
Publié par Garrath
...
Enfait chez moi, c'est la zone de mort qui cree les effets sur les joueurs. Donc en entrant la zone mets les effets et les enleves en sortie.
idem pour moi. Enlevés par dialogue avec une sorte de "passeur". Les salauds de chez Bioware ont pompé sur mon module, j'en suis sûr !!!

Citation :
Publié par Garrath
Mais bon je demanderais a mes petits testeurs de verifier qu'en cas de mort, ils sont pas immortels apres...
(je suis sur que non vu qu'il y en a qui nous a raconte sa soiree de Lundi ou il n'a pas arrete de mourrir )
Ben, bizarrement, comme dit, ça marchait bien avant la mise à jour vers la 1.64. J'essaie de comprendre ce qui peut interférer dans mes scripts sans aucun succès. Et la boucle de suppression des effets/bonus ne fonctionne pas
Ce que je disais, c'est que suite à ta phase de sortie de polymorph, tu peux tester le créateur de chaque effet présent sur ton personnage, si ce créateur est le même que celui ayant engendré l'effet, tu le vires manuellement .
Ben je pense que l'on m'aurait remonter le bug quand meme...
Moi je mets 3 effets en entrant dans les limbes.
le Polymorph et 2 effets visuels pour rendre le PJ transparent et bleute (dois y avoir Ghost et je sais plus lequel en plus ...)
Je rajoute en plus le setimmortal.

Et j'enleve tout à la sortie...
et je suis sur qu'ils ne sont plus transparents et bleutes les PJ...

Je regarderais ce soir... (enfin apres le Judo et l'aperitif... donc soit pas de bonne heure soit plutot demain ).

Dis tu as des haks?
Car nous on en a plusieurs dont le CEP. D'ici a ce que le CEP soit fournis avec un autre petit 2da qui corrigerait ce bug (un peu comme le spell.2da ), ce qui fait qu'il ne semble pas etre chez nous...
Je milite activement pour la libération des disques durs !

Libérez nos disques ! Ne les encombrez plus de vos haks !








(Sans compter la merde pour les mises à jour )

Ca répond à ta question Garrath ?
Citation :
Publié par Sherazade
Ce que je disais, c'est que suite à ta phase de sortie de polymorph, tu peux tester le créateur de chaque effet présent sur ton personnage, si ce créateur est le même que celui ayant engendré l'effet, tu le vires manuellement .
J'ai vérifié le "Creator". C'est bien celui escompté. Mais, le virer manuellement ??? Effacer la zone qui crée l'effet ? Certes une brillante suggestion
Ou alors, n'aurai-je rien capté ?



@Garrath :
Peut-être, mais ça n'explique pas le SetImmortal() qui ne se modifie pas non plus. Je vais essayer d'inverser la séquence des modifications pour voir si ça change quelque chose. Je commence à avoir mon flair qui me dit qu'il y a peut-être un problème d'ID d'objet entre le PJ polymorphé et non polymorphé car après vérification, mes séquences de code s'exécutent parfaitement. Je ne vois pas d'autre piste plausible pour l'instant...
Citation :
Publié par Azmathiel
J'ai vérifié le "Creator". C'est bien celui escompté. Mais, le virer manuellement ??? Effacer la zone qui crée l'effet ?
Euhhh... non , supprimer les effets dont le créateur est la zone.

Un truc du genre dans une loop : if (GetEffectCreator(eEffect) == oArea) RemoveEffect(oPC, eEffect);

oArea etant la zone qui a créé l'effet.
Aaaaaaah ! Moi compris !

Mais euh, regarde :

Code PHP:

      //::///////////////////////////////////////////////
      //:: FileName az_pj_paiemort
      //:://////////////////////////////////////////////
      //:://////////////////////////////////////////////
      //:: Created By: Script Wizard
      //:: Created On: 02/05/2004 20:07:30
      //:://////////////////////////////////////////////
      
void main()
      {
          
object oPC GetPCSpeaker();
          
object oAvatar OBJECT_SELF;
          
//AssignCommand(oAvatar, ActionPauseConversation());
          
int Level GetHitDice(oPC);
          
int nXP GetXP(oPC);
          
int nPrixMort 50 + ((4*Level)*Level); // attenuer ou empirer le cout ici
                                          // 68 pour un level 3
                                          // 250 XPs pour un level 10
                                          // 850 pour un level 20
                                          // 3250 pour un level 40
          
nXP nXP nPrixMort;
          
SetXP(oPCnXP);
          
SendMessageToPC(oPC"Suppression de l'immortalité ici");
          
SetImmortal(oPCFALSE);
          
SendMessageToPC(oPC"Immortalité supprimée théoriquement");
 
// Des clous, ça ne marche plus non plus
      
          
effect eEffet GetFirstEffect(oPC);
          
SetLocalInt(oPC"mort"0);
          while (
GetIsEffectValid(eEffet))
          {
         
SendMessageToPC(oPC"Effet créé par " GetName(GetEffectCreator(eEffet)) + "Tag : " GetTag(GetEffectCreator(eEffet)));
              
RemoveEffect(oPCeEffet);
              
SendMessageToPC(oPC"Effet retiré");
      
// Pour cette chère Rasade :p : Ca ne marche pas/plus ici !!!
              
eEffet GetNextEffect(oPC);
          }
          
DeleteLocalInt(GetArea(oPC), "avatar");
    } 
Edit :
Bon, ben mon flair m'a trahi... après changement des séquences, c'est pareil. Il me laisse perplexe ce problème...
Et des effets sont bel et bien détectés dans ta boucle ? Mais non supprimés si je comprends bien ?

Sinon, je me souviens que sur mes scripts qui gèrent la mort, j'ai collé des DelayCommand pour que certaines opérations s'appliquent. Peut-être peux-tu essayer.
Oui Sherazade, c'est ça...

Je viens de me taper les forums que j'adore : ceux de Bioware.
Et la seule chose s'approchant de ce que je cherche est ici :

http://nwn.bioware.com/forums/viewto...94720&forum=47

Et ça traite d'un bug des "shifters".

D'ailleurs, ils racontent des conneries parce que la sauvegarde ne prend pas du tout en compte les spécificités de mes polymorphés. Une déco-reco les remet en état. Mais ça me conforte dans l'idée qu'il y a une vérole profondément cachée dans cette version 1.64...

Par contre, oubliez ce que j'ai écrit au sujet du SetImmortal(). La réduction de dégât ne vient pas de là mais des caractéristiques de la créature dans laquelle je polymorphe les PJ à la mort.

J'ai bossé sur ce truc toute la journée et une partie de la nuit, j'ai à peu près tout essayé. Rien ne fonctionne...

Plus ça va, plus je me dis qu'un module bien bourrin, de base, sans fioritures, c'est le must... Aucun soucis, pas de boulot de recherche, aucun problème autre que d'attendre les patches Bioware et les joueurs se poussent à l'entrée... Le pied...

Citation :
Plus ça va, plus je me dis qu'un module bien bourrin, de base, sans fioritures, c'est le must... Aucun soucis, pas de boulot de recherche, aucun problème autre que d'attendre les patches Bioware et les joueurs se poussent à l'entrée... Le pied...
oui ... j'en suis arrivé à cette conclusion moi aussi !

Se taper des scripts d'enfer, essayer de sortir des sentiers battus, proposer une cohérence, donner dans l'originalité et ... ... le résultat est un module quasiment vide ...

Avez vous une solution à cela ?
Personnellement, je préfère un module avec peu de joueurs mais qui respectent l'esprit du RPG PnP, plutôt que des tas de joueurs dont le seul intérêt est de taper du monstre ou de se tapper dessus .

Sur mon module, nous tournons à 3/5 les soirs, et 8/10 parfois en week-end, ça me convient tout à fait, pas besoin de plus... de toute façon ma connexion actuelle ne supporterai guère plus (128 Ko en up donc 15 joueurs max).

Pour le problème des shifters et de l'export character, j'avais trouvé un turnaround il y a quelques mois sur le Vault, je crois que c'est Archshifter le créateur il me semble.
Citation :
Avez vous une solution à cela ?
Oui, la transparence. Mais ça relève du script et de rien d'autre, sinon de vider la palette générique pour ne mettre que des choses personnalisées. Un joueur se sentira frustré de voir sur un forum : "On ne peut pas faire ci... On ne peut pas faire ça".

Il vaut cent fois, mille fois mieux, faire des règles nettes et invisibles, se dévoilant peu à peu par la découverte de ces règles par le joueur : "Ah tiens... on ne peut pas faire ça...".

Et puis on peut faire tellement de choses sans HakPack, ou un très petit.


[Edit : Je me rends compte que je suis quasiment en dehors du sujet, je me suis enflammée pour pas grand chose, désolée...]
Citation :
Publié par Garrath
...
Enfait chez moi, c'est la zone de mort qui cree les effets sur les joueurs. Donc en entrant la zone mets les effets et les enleves en sortie.
Mais bon je demanderais a mes petits testeurs de verifier qu'en cas de mort, ils sont pas immortels apres...
(je suis sur que non vu qu'il y en a qui nous a raconte sa soiree de Lundi ou il n'a pas arrete de mourrir )
Si tu vérifies, essaie de leur demander ou de regarder par toi-même si les effets annexes du polymorph restent même après le retour à la forme initiale.
En fait, c'est ça le vrai bug que j'ai trouvé et qu'après avoir planché dessus pendant 16h, j'ai isolé du reste.
Tout vient de là.
Le PJ est "dépolymorphé" apparemment mais garde toutes les caractéristiques annexes de la créature (pas les stats, mais le reste : immunités, réduction de dégâts, etc...)

@mickey :
Non, je n'ai pas de solution. Sinon, je ne dirais pas ce que j'ai dit au-dessus. Tout au plus une explication, mais si je la donne, je vais me faire flamber bien qu'elle soit tout à fait réaliste. Au pire, on pourra en reparler dans un autre fil, ailleurs. Maskado n'a pas pour vocation de supporter des fils de cette nature, je pense.

@ Deyonara :
Pas d'accord du tout. Je pratique la transparence totale, et j'applique à chaque chose ce que tu suggères. Je demande l'avis des joueurs présents pour les modifs majeures. Mais mis à part des "accros", les "casuals gamers" ne restent pas.
J'ai enregistré en 5 mois plus de 280 comptes joueurs. Seulement une vingtaine a survécu à la première connexion. Ce qui donne un taux de fréquentation d'environ 2 connexions par jour de plus de 5 minutes.
Pas de joueurs entraîne la fuite des joueurs. Cercle vicieux. Et moi, ça me démobilise complètement de devoir bosser autant pour si peu de résultat.

Mais c'est vrai qu'on devrait ouvrir un autre fil, ailleurs, pour ça

@Sherazade :
Sous ArchShifter, je ne trouve qu'un pack concernant un bâton de métamorphe.
Citation :
Publié par Azmathiel
Si tu vérifies, essaie de leur demander ou de regarder par toi-même si les effets annexes du polymorph restent même après le retour à la forme initiale.
En fait, c'est ça le vrai bug que j'ai trouvé et qu'après avoir planché dessus pendant 16h, j'ai isolé du reste.
Tout vient de là.
Le PJ est "dépolymorphé" apparemment mais garde toutes les caractéristiques annexes de la créature (pas les stats, mais le reste : immunités, réduction de dégâts, etc...)
Je suppose que tu supprimes l'EffectPolymorph avec un RemoveEffect ? Si c'est le cas, as-tu essayé de lancer une dissipation plutôt ? Il y a peut-être un bug lorsque cet effet est enlevé manuellement et peut-être celui-ci disparait s'il est enlevé avec les outils de dissipation de Biobio ?

Citation :
@ Deyonara :
Pas d'accord du tout. Je pratique la transparence totale, et j'applique à chaque chose ce que tu suggères. Je demande l'avis des joueurs présents pour les modifs majeures. Mais mis à part des "accros", les "casuals gamers" ne restent pas.
J'ai enregistré en 5 mois plus de 280 comptes joueurs. Seulement une vingtaine a survécu à la première connexion. Ce qui donne un taux de fréquentation d'environ 2 connexions par jour de plus de 5 minutes.
Pas de joueurs entraîne la fuite des joueurs. Cercle vicieux. Et moi, ça me démobilise complètement de devoir bosser autant pour si peu de résultat.
D'accord avec Az', nous en sommes à 202 comptes de joueurs pour 2 mois d'ouverture public, et je dois dire que mis à part une quinzaine de personnes régulières, les autres ne restent pas. Cela dit, ce n'est pas ce que je cherche non plus. Notre serveur est difficile, et il est clair que les GB de tout poil se lassent très vite . Maintenant, c'est clair que pour un joueur même motivé, ne trouver que deux ou trois personnes en ligne en même temps ne motive pas non plus particulièrement.

Citation :
@Sherazade :
Sous ArchShifter, je ne trouve qu'un pack concernant un bâton de métamorphe.
Il y a plusieurs scripts personnalisés pour gérer les métamorphoses aussi, entre autres, l'ancien bug concernant la disparition des propriétés après une sauvegarde du serveur.
Il y a deux problèmes majeurs au niveau de ma réponse précédente :

- 1°) Elle n'est pas assez argumentée. Il faudrait au moins deux bonnes grosses pages pour bien décrire la façon dont je j'estime les choses. Car pour exemple, une simple transparence est inutile si le joueur se sent lésé, cloîtré, dès les premières minutes de sa connexion. Cela rend donc ma réponse inappréciable.

- 2°) Ce n'est pas le sujet de ce post.
Répondre

Connectés sur ce fil

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