Aller au contenu


[résolu] Arme Dégainée Et Disposition


  • Veuillez vous connecter pour répondre
28 réponses à ce sujet

#1 Orann

Orann

    Nérévarine de Pertevue


Posté 04 août 2008 - 11:19

Je sais qu'il existe une fonction, GetWeaponDrawn, tribunal requis, qui permet de savoir si le joueur dégaine son arme. L'Archipel de Pertevue étant morrowind seul requis, j'aurai besoin de contourner cette abscence dans un cas particulier.

Il s'agit de détecter pour un npc le fait que le joueur ait ou non son arme dégainée pour déclancher un dialogue en particulier. J'ai pensé jouer sur la disposition du npc en question qui, comme pour tous les npc, diminue de 5 quand une arme est dégainée. J'ai vérifié avec la fonction "GetDisposition" et celle-ci renvoie bien la valeur actualisée en temps réelle de la disposition. Je peux donc savoir la valeur quand le joueur ne porte rien, puis s'il dégaine, détecter la baisse de la disposition et savoir qu'il a dégainé.

Le problème majeur est le cas le plus probable: si le joueur rentre dans la cell intérieure avec son arme dégainée. Dans ce cas, je ne peux pas connaître la valeur de la disposition "normale"... ;)

Quelqu'un aurait t-il une idée de script pour contourner cet obstacle? ;)

Modifié par Orann, 12 octobre 2008 - 11:30.

Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#2 Kira

Kira

    Top-modeleuse...


Posté 04 août 2008 - 11:47

Bonjour...
Serait-il possible de placer en entrée de cellule

DisablePlayerFihting
GetDisposition
EnablePlayerFighting  ?...

Ca te permettrait de voir la disposition du npc sans arme dégainée, et la disparition de l'arme devrait être trop rapide pour être remarquée...

Modifié par Kira, 04 août 2008 - 11:50.

Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#3 Orann

Orann

    Nérévarine de Pertevue


Posté 04 août 2008 - 13:02

Je ne connaissais pas cette fonction. Mais je ne suis pas sûr de son fonctionnement. Voici ce qu'en dit MSFD:

Citation

[no fix] DisablePlayerFighting
[no fix] DisablePlayerMagic
Ces deux fonctions ne semblent pas très sûres à utiliser d'après les informations recueillies sur les forums : si le joueur tient une arme ou est prêt à lancer un sort, il peut continuer à l'utiliser ainsi que les raccourcis armes et sorts. Je ne vois actuellement pas de solution pour palier à ce problème.

Quel est l'effet exact de cette fonction ? Si cela peut faire rengainer son arme au joueur, cette fonction me serait encore plus utile que ce que je voulais faire en détectant la disposition. Mon but final est de téléporter le joueur dans une cell en étant sûr qu'il y arrive sans arme dégainée.

Modifié par Orann, 04 août 2008 - 13:02.

Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#4 Asmodeus

Asmodeus

Posté 04 août 2008 - 14:07

Bonjour, ça reviendrait au même, mais ne peux tu pas faire:

DisablePlayerControls

tu fais desequiper l'arme au joueur
GetDisposition
tu fais réequiper l'arme au joueur

EnablePlayerControls

?
Ou sinon, au lieu de ça, tester juste si une arme est équipée...

Ou sinon, faire un "if" sur "bruit de l'arme qui se rentre". Je ne sais pas si je suis très clair, mais au lieu de tester si l'arme est bien rentrée, tu testes si on a entendu l'arme rentrer (être rengainée quoi..).
<Insérer réflexion intelligente et hautement philosophique> ... ou pas... ah si, trouvé !
"Avant j'étais schizophrène, maintenant nous allons bien."
Sympathisant http://img399.imageshack.us/img399/3095/orthopuristeswb4.gif

#5 Orann

Orann

    Nérévarine de Pertevue


Posté 04 août 2008 - 15:47

Je viens de tester la fonction "DisablePlayerControls". Elle ne déclanche aucun message d'erreur mais elle semble ne rien faire du tout. Je l'ai insérée dans mon script juste avant que le joueur soit téléporté et subisse un "disableplayercontrols"... Si j'ai une arme dégainée, celle-ci reste dégainée... ;) Je n'ai peut-être pas bien compris comment s'en servir :icon8:

Citation

tu fais desequiper l'arme au joueur
Ou sinon, au lieu de ça, tester juste si une arme est équipée...
Je ne peux pas faire ça avec Morrowind seul requis Asmodeus, et malheureusement, je ne peux pas connaitre l'arme que portera le joueur...

Citation

Ou sinon, faire un "if" sur "bruit de l'arme qui se rentre". Je ne sais pas si je suis très clair, mais au lieu de tester si l'arme est bien rentrée, tu testes si on a entendu l'arme rentrer (être rengainée quoi..).
L'idée d'utiliser les sons est intéressante, mais malheureusement ça ne règle pas le souci si le joueur ne touche pas à son arme du tout, s'il la laisse dégainée tout le temps...

Merci à tous les deux même si pour l'instant ça ne porte pas ses fruits... :blush:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#6 Kira

Kira

    Top-modeleuse...


Posté 04 août 2008 - 18:03

Bonjour Orann..
Si la fonction DisablePlayerFighting ne marche pas si le joueur a une épée dégainée, peut-être faudrait-il, juste après, lui faire équiper une arme de remplacement, que tu lui enlèveras une fois le test effectué?...
Cependant, je ne sais pas si ça marche à 100% avec Morrowind seul...

DisablePlayerFighting
Player->additem "Fausse-epee"
Player->equip "Fausse-epee"
GetDisposition
Player->Removeitem "Fausse-epee"
EnablePlayerFighting

A ce moment-là, le joueur ayant son aptitude au combat désactivée, s'il équipe une nouvelle arme, il ne pourra pas la dégainer...
Ensuite, tu testes la disposition, et tu enlèves l'arme de remplacement...
Le seul problème, c'est qu'il parait que parfois, avec Morrowind seul, la commande "Equip" ne marche pas parfaitement, et qu'elle a été réparée avec Tribunal...
Cependant, tu ne cherches pas particulierement à équiper une nouvelle arme à ton joueur, mais simplement à lui faire lacher l'ancienne...
Ca mérite peut-être d'être tenté...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#7 Orann

Orann

    Nérévarine de Pertevue


Posté 04 août 2008 - 18:33

Merci Kira, je vais voir à quel point equip est buggé... ;)
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#8 Asmodeus

Asmodeus

Posté 04 août 2008 - 18:37

DisablePlayerControls empeche le joueur de faire quoi que ce soit. C'était dans l'optique de le forcer à ne plus bouger pour lui faire desequiper (de force) son arme, tester sa dispo et ensuite réequiper. Mais si equip marche pas... ça va pas nous avancer...
Sinon, tu peux toujours le forcer à utiliser le sort "dague liée" pendant 0 ou 1 seconde (je sais pas si 0 suffit) pour le forcer à desequiper dans la salle où est le téléporteur et tester la dispo.

-> joueur lance "dague liée" (1 sec)
-> arme liée équipée
-> DisablePlayerControls
-> arme liée perdue (1 sec après)
-> test Dispo
-> EnablePlayerControls

Au pire, tu fais une petite animation "effrayante", tu laisse un petit commentaire du genre "vous avez été surpris, vous en avez laissé tomber votre arme" et tu force le joueur à "dropper" son arme, qu'il devrait ramasser puisqu'il a vu le message.

-> animation "effrayante ou surprenante"
-> message "vous avez tout fait tomber (et vous vous êtes fait dessus)"
-> DisablePlayerControls
-> drop arme (DropItem je crois)
-> test Dispo
-> EnablePlayerControls


Je pense pas que "-> DisablePlayerControls" et "-> EnablePlayerControls" soient nécessaires mais ça évitera que le joueur réequipe à toute vitesse une arme et que le test de Dispo se fasse avec arme équipée.
<Insérer réflexion intelligente et hautement philosophique> ... ou pas... ah si, trouvé !
"Avant j'étais schizophrène, maintenant nous allons bien."
Sympathisant http://img399.imageshack.us/img399/3095/orthopuristeswb4.gif

#9 elendell

elendell

    Mécano Dell'Arte


Posté 04 août 2008 - 23:25

Bonjour Orann,

Personnellement, je n'ai pas réussi à faire fonctionner "equip" avec Morrowind seul. La réunion des propositions de Kira et d'Asmodeus semble être une bonne piste :

->Arme liée
->DisablePlayerFighting
->DisablePlayerMagic
->Téléportation
->suppression du sort de l'arme liée
->EnablePlayerFighting
->EnablePlayerMagic

Il faudrait quand même vérifier certains points. Peut-on obliger le PJ à lancer le sort et si oui, ne se retrouverait-t-il pas en position de combat (sorts) ? Dans ces deux cas, il faudrait que le sort d'arme liée lui soit lancé par un PNJ ou un objet. Et autre point, Est-ce que EnablePlayerFighting après l'arrêt d'arme liée n'entrainera pas le rééquipement automatique de l'arme (ou du sort) qu'il avait en main avant tout ça ? (Je ne pense pas mais c'est à vérifier).

#10 Orann

Orann

    Nérévarine de Pertevue


Posté 05 août 2008 - 12:51

Plusieurs tests aujourd'hui:

- "equip": un message d'erreur apparait à l'exécution du script avec la simple ligne player->equip, "nomdelarme"
- la fonction "cast": elle ne permet pas de lancer un sort de dague liée sur le joueur car c'est un sort perso. Avec le code player->cast, "nomdusort", player : rien ne se passe. Avec le code npc->cast, "nomdusort", player: le npc se lance le sort à lui-même.

Il y a de toute façon un problème si je fais référence à la description même dans le TESCS du sort de dague liée:

Citation

[...]Elle apparaît dans la main du lanceur, remplaçant automatiquement celle dont ce dernier était équipé. Quand l’effet prend fin, l’arme disparaît, remplacée par celle dont le personnage était précédemment équipé.
Je crains que même si j'avais réussi à lancer le sort, ça n'aurait pas changer le problème puisque lors de mes tests précédents, DisablePlayerFighting n'avait pas empêcher l'arme dégainée de le rester...
:)

Merci pour vos idées à tous les trois.
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#11 elendell

elendell

    Mécano Dell'Arte


Posté 05 août 2008 - 18:38

Pour donner une arme liée au PJ, il suffit d'en faire un fléau et d'utiliser "player->addspell" (au lieu de "cast") mais malheureusement, quand on fait le "removespell" par la suite, l'arme précédemment sortie est toujours sortie, même avec "DisablePlayerFighting" (j'ai essayé).

#12 Orann

Orann

    Nérévarine de Pertevue


Posté 07 août 2008 - 16:56

Merci pour cette astuce, je ne connaissais pas. Dommage que ça ne fonctionne pas pour l'utilisation que je voudrais... Merci d'avoir testé :)

En faisant tout autre chose, voici ce que j'ai trouvé dans le MSFD:

Citation

Laver le PJ de ses crimes
[no fix] PayFine
La fonction PayFine enlève les objets volés de l’inventaire du joueur mais ne retire pas d’or. Appelée après avoir payé l’amende pour réinitialiser l’IA. Les mains du joueur sont aussi replacées dans leur position ‘normale’, c’est-à-dire que vous n’êtes ni prêt à lancer une attaque ou un sort.
[no fix] PayFineThief
Idem mais ne retire pas les objets volés. Appelée pour réinitialiser l’IA. Avant l’un des patchs, pouvait donner lieu à des retraits d’objets incorrects. Pour des exemples, voir plus bas, sous "Variables globales utiles "

Il faut que je teste ça. Mais est-ce que quelqu'un qui aurait déjà testé cette fonction peut me dire si il y a des effets secondaires...
Sinon, en appliquant simplement cette fonction, si mes tests sont concluants, c'est peut être une manière simple d'être certains que le joueur n'aura pas d'armes dégainées...
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#13 elendell

elendell

    Mécano Dell'Arte


Posté 07 août 2008 - 19:29

Très intéressant cet aspect de "PayFineThief" mais comme effet secondaire, il y a bien sûr le fait que si le PJ a sa tête mise à prix, il se retrouverait du coup non justiciable. Il faudrait donc l'assortir d'un "GetPCCrimeLevel" avant l'opération puis d'un "SetPCCrimeLevel" après la téléportation au cas où "GetPCCrimeLevel > 0".

EDIT : Au fait, pour ton idée de réaction différente du PNJ suivant si le PJ arrive ou non arme dégainée, au cas où tu trouverais une solution, as-tu pensé que si c'est un mage prêt à lancer un sort, il serait favorisé ? (Je viens de m'apercevoir que dans ce cas, la disposition des PNJ ne baisse pas, même avec un sort d'attaque "chargé").

#14 Orann

Orann

    Nérévarine de Pertevue


Posté 24 août 2008 - 22:22

Je me rends compte que je n'ai pas posté mes observations sur les fonctions PayFineThief et Payfine.
Malheureusement, à aucun moment je n'ai observé ce qui était décrit dans MSFD, à savoir le changement de mode du joueur (mode combat ou pas combat, mode sort ou pas...). Ca change les niveaux de prime, c'est tout... :mrgreen:

Ne trouvant pas d'astuce, j'ai laissé tombé...
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#15 elendell

elendell

    Mécano Dell'Arte


Posté 24 août 2008 - 22:38

Salut Orann,

Si tu mets ton PJ en position de combat et que tu utilises la console avec player->Payfine, il range son arme. En revanche, player->PayfineThief n'a pas produit cet effet.

Edit : Payfine enlève bien la position de combat mais malheureusement, ça enlève aussi au PJ tout ce qu'il avait volé et qui se trouve dans son inventaire.

#16 Kira

Kira

    Top-modeleuse...


Posté 24 août 2008 - 23:40

Bonjour...
En y repensant, je me demande s'il ne suffirait pas de créer un sort qui ne fait rien du tout (Par exemple, regain de santé 0, sur 0 secondes...) et le donner à ton personnage, le lui faire lancer, puis lui enlever...
Normalement, quand on jette un sort, on rengaine son arme, il me semble...
Donc, à ce moment-là, tu pourras faire ton test de disposition...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#17 Orann

Orann

    Nérévarine de Pertevue


Posté 24 août 2008 - 23:43

Voir le messageelendell, le 24.08.2008 à 23:37, dit :

Si tu mets ton PJ en position de combat et que tu utilises la console avec player->Payfine, il range son arme. En revanche, player->PayfineThief n'a pas produit cet effet.
Edit : Payfine enlève bien la position de combat mais malheureusement, ça enlève aussi au PJ tout ce qu'il avait volé et qui se trouve dans son inventaire.

Bon il faut que je revois ça puisque j'ai testé ça dans un script il y a quelques semaines... Je ne me rappelle plus exactement si j'avais bien utilisé la bonne syntaxe... Tu utilises quel version de Morro? Avec trib et blood?

Voir le messageKira, le 25.08.2008 à 00:39, dit :

Bonjour...
En y repensant, je me demande s'il ne suffirait pas de créer un sort qui ne fait rien du tout (Par exemple, regain de santé 0, sur 0 secondes...) et le donner à ton personnage, le lui faire lancer, puis lui enlever...
Normalement, quand on jette un sort, on rengaine son arme, il me semble...
Donc, à ce moment-là, tu pourras faire ton test de disposition...

Le personnage en question c'est le joueur et il me semble que j'ai essayé mais on ne peut pas forcer le joueur à lancer un sort... Encore un test que je vais refaire...

Merci à vous deux d'avoir plus de patience que moi et de proposer encore des idées :mrgreen:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#18 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 24 août 2008 - 23:59

Citation

il me semble que j'ai essayé mais on ne peut pas forcer le joueur à lancer un sort... Encore un test que je vais refaire...

En effet, on ne peut pas forcer le PJ à lancer un sort par la commande cast, tout ce que player->cast sort player accomplit, c'est sélectionner un nouveau sort à lancer (la magie spontanée est entièrement basée sur cette astuce).

#19 elendell

elendell

    Mécano Dell'Arte


Posté 25 août 2008 - 01:43

Voir le messageOrann, le 25.08.2008 à 00:42, dit :

Tu utilises quel version de Morro? Avec trib et blood?
J'avais essayé avec la Goty mais je viens aussi d'utiliser avec succès player->payfine avec Morrowind seul.

PS : Avec tout le temps déjà passé sur ton mod, tu ne nous feras pas croire que tu manques de patience.  :P

#20 Kira

Kira

    Top-modeleuse...


Posté 25 août 2008 - 02:43

Bonjour, c'est encore moi...
Partant du principe que, quand on arrive pas à entrer par la porte, il faut essayer la fenêtre, pourquoi ne crées-tu pas plutôt un script qui détecte le fait que le joueur dégaine ou rengaine son arme, pour contourner le manque de "GetWeaponDrawn"?...
Il y a 9 types d'armes, si ma mémoire est bonne, reconnaissables par la fonction "GetWeaponType", désignées par un entier compris entre 1 et 9, et chacune de ces armes a un son quand on la dégaine, et un son quand on la rengaine...
Il doit être possible de créer un script qui détecte les dix-huit possibilités de sons, pour faire passer une valeur globale en positif si le son est celui d'une arme qu'on dégaine, et en nul si le son est celui d'une arme que l'on rengaine...
Armé de cette globale, tu pourras filtrer sans peine les dialogues de ton npc...
En fait, une globale de ce type pourrait être très utile pour beaucoup de choses...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#21 elendell

elendell

    Mécano Dell'Arte


Posté 25 août 2008 - 03:48

@ Kira :

Malheureusement, les sons des armes que l'on dégaine ou rengaine sont les même que si on les prend ou les pose. Ce sont aussi les mêmes quand on équipe ou déséquipe une arme. De plus, "Additem" et "Removeitem" ne déclenchent pas les sons. On ne peut donc pas les utiliser pour remplacer "GetWeaponDrawn" dans un script global permanent.  :P

On peut les utiliser ponctuellement pour savoir si le PJ sort son arme (en tenant compte quand même que sortir les poings nus ne déclenche pas de son) mais Orann a besoin de savoir si le PJ arrive dans la cellule avec son arme dégainée.

@ Orann :

Orann dit :

Le problème majeur est le cas le plus probable: si le joueur rentre dans la cell intérieure avec son arme dégainée. Dans ce cas, je ne peux pas connaître la valeur de la disposition "normale"... wacko.gif
Il n'y a pas tellement d'éléments entrants dans le calcul de la disposition qui seraient à considérer. Si tu trouve les formules et que tu es bon en maths, tu peux peut-être t'en servir car il me semble que toutes les valeurs peuvent être récupérées sur le PJ.

Sans ces calculs, le plus embêtant est de savoir quelle maladie peut éventuellement affecter le PJ mais peut-être que ton scénario laisse la possibilité d'empêcher la téléportation vers la cellule si le PJ est malade ?

Dans ce cas, tu n'aurais plus qu'à relever certaines caractéristiques du PJ, les changer un court instant et les lui redonner ensuite. (Il me semble que la réputation générale et la présence éventuelle d'une prime ne jouent pas) Quelques tests te permettraient de déterminer les valeurs à donner. Par exemple :

Tu donnes 100 de disposition au PNJ
Tu notes la personnalité du PJ
Tu notes si nécessaire le rang du PJ dans la faction du PNJ
Tu donnes 40 en personnalité au PJ (si le nombre est trop petit, la disposition baisse même sans position de combat et s'il est trop important, elle ne baisse plus)
Tu donnes le rang 1 de la faction si ça joue
Tu téléportes le PJ
Tu testes la disposition du PNJ (avec quelques essais tu devrais savoir donner au PJ ce qui permet d'avoir la disposition du PNJ à 100 sans la position de combat)
Tu redonnes toutes les valeurs initiales au PJ
Tu donnes au PNJ la disposition que tu souhaites

Note que tu pourrais aussi savoir si le PJ est malade afin de le guérir avant le test de disposition mais le problème est de pouvoir lui redonner les mêmes caractéristiques de maladie après le test. Pour la peste, pas de problème.

#22 Orann

Orann

    Nérévarine de Pertevue


Posté 25 août 2008 - 14:53

Je n'ai pas encore eu le courage de me lancer dans les tests liés à la disposition. En attendant, j'ai retesté payfine, et je n'arrive toujours pas à voir le joueur rentrer son arme. :angry:

Voici le script:
begin A_P_payfine_essai_sc

short fait
float timer

set timer to timer + getsecondspassed

if ( timer >= 1 )
if ( fait == 0 )
	player->payfine
	messagebox "bou"
	set fait to 1
endif
endif

end

J'ai mis un timer pour avoir bien le temps d'entrer dans la cellule intérieur où je teste ça. J'ai essayé avec et sans prime (pauvre garde de Coeurébène qui ont fait les frais de ma soif de prime :angry: ), mais dès que je rentre dans la cellule, le message s'affiche bien, la variable locale fait passe bien à un mais rien ne se produit: ma prime disparait mais je garde désespérement mon arme de meurtier à la main... :(
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#23 elendell

elendell

    Mécano Dell'Arte


Posté 26 août 2008 - 01:01

Salut,

Ton script fonctionne, qu'il soit en global ou en local sur un PNJ mais... pas dans Todd !  :mrgreen:

Donc, si c'est là que tu l'as testé, essaye ailleurs. Sinon, essaye quand même ailleurs pour voir que ça fonctionne bien et regarde quelles similitudes il peut y avoir entre ta cellule de test et Todd.

Pour être exact, j'ai testé ce script :

begin TEST2_S

short fait
float timer

if ( menumode == 1 )
	return
endif

if ( fait == 0 )

	set timer to timer + getsecondspassed

	if ( timer >= 1 )	
		player->payfine
		messagebox "bouuuuuuuuuuuuuuuuuuuuuuuuu"
		set fait to 1
	endif
endif

end

PS : J'ai l'habitude de tester dans Todd mais je me méfierai à l'avenir.

#24 Orann

Orann

    Nérévarine de Pertevue


Posté 26 août 2008 - 10:32

J'ai effectué de nombreux tests avec ton script. J'arrive à une conclusion: payfine fonctionne très bien dans les cells de Morrowind de base, mais pas dans les cells (intérieurs et extérieurs) de mon mod... A Coeurébène, et Balmora, ça fonctionne! A Lindyl, Kendil, ça ne marche pas. Ce n'est pas un problème de script global qui entrerait en conflit car je me suis téléporté dans des cells intérieures sans script global et ça ne marche pas... :mrgreen:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#25 elendell

elendell

    Mécano Dell'Arte


Posté 28 août 2008 - 23:02

J'ai trouvé !  :yahoo: (à propos de Payfine)

Payfine est utilisable uniquement dans les cellules reliées au reste du monde !  :rolleyes:

EDIT : Conditions de fonctionnement pour "Payfine" : cliquer ICI.

Explication : Comme le script ne fonctionnait pas dans Todd, j'ai copié tout ce qu'il y avait dedans dans une nouvelle cellule. Puis j'ai éliminé petit à petit tout ce qui s'y trouvait. Quand il n'est resté que le vide, j'ai mis les mêmes paramètres de cellule qu'addamasartus (où ça fonctionne).

Puis, je me suis dit qu'au lieu de quelque chose qui empêche, c'était peut-être quelque chose qui manquait. J'ai donc copié tout Addamasartus dans une nouvelle cellule. "Payfine" ne fonctionnant toujours pas dans cette nouvelle cellule, je me suis demandé ce qui n'avait pas été copié et c'est : Les paramètres de "téléportation" de la porte de sortie !  :woot

Résultats des essais suivants (réussis) :

La cellule intérieure doit être reliée au reste du monde par une porte ayant la case "téléport" cochée.
La cellule de destination peut être une cellule intérieure mais à condition que celle-ci soit reliée à l'extérieur ou à une autre cellule intérieure si la dernière de la chaine est reliée à l'extérieur.
La porte en question peut être placée dans le vide de la cellule et donc inaccessible au PJ.
Il n'est pas nécessaire qu'il y ait une liaison entrante (juste une sortante).

C'est incroyable, mais chez moi ça fonctionne comme ça. J'ai hâte de savoir s'il en sera de même à Pertevue (mais je ne vois pas pourquoi il en serait autrement  ;) ).

Même si tu n'utilises pas "Payfine", c'est une notion importante car cela peut également être une condition nécessaire pour d'autres fonctions.


A part ça, je t'avais dit une bêtise précédemment :

Voir le messageelendell, le 07.08.2008 à 20:28, dit :

Très intéressant cet aspect de "PayFineThief" mais comme effet secondaire, il y a bien sûr le fait que si le PJ a sa tête mise à prix, il se retrouverait du coup non justiciable. Il faudrait donc l'assortir d'un "GetPCCrimeLevel" avant l'opération puis d'un "SetPCCrimeLevel" après la téléportation au cas où "GetPCCrimeLevel > 0".
"Payfine" ne change rien à "PCCrimeLevel". Cette fonction n'enlève pas la prime éventuelle du PJ, ce qui dans ton cas éviterait un "get" suivi d'un "SetPCCrimeLevel".

Note aussi que "Payfine" fonctionne également si le joueur est en position de lancer un sort. Tout ces éléments rendent donc cette fonction très intéressante pour empêcher un PJ d'être prêt au combat.  En revanche, je ne vois pas comment on peut s'en servir juste pour tester s'il est prêt au combat ou non. (Avec en conséquences, deux dialogues du PNJ différents suivant le cas.)
Sauf si tu obliges le PJ avec "Payfine" à se mettre au repos pendant la "téléportation" et que tu fais immédiatement le test de disposition du PNJ. Dans ce cas, on peut supposer que si le PJ veut attaquer sans poser de question, il se remettra de suite en garde, ce qui fera baisser la disposition du PNJ (mais cette fois, tu pourrais le détecter).

Le seul bémol serait alors que "Payfine" enlève tous les objets volés de l'inventaire. Mais peut-être peux-tu en tirer avantage en faisant entrer cette conséquence dans le scénario ?




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)