Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Pour qu'un perso parle quand on le frappe

Par Elmo le 3/9/2002 à 16:07:26 (#2088128)

Voila j'aimerais que lorsqu'on frappe le perso on va dire heuuu Marcel, il réponde "ouais pas mal, continue" mais sans attaquer, qq'un à une idée de script?

Par Azrael07 le 3/9/2002 à 17:45:12 (#2088794)

Alors pour faire ca, d'une part tu vire les scipts par default de
OnDamaged et OnPhysicalAttacker

et pis tu met ca dans OnDamaged



void main()
{
ActionSpeakString("ouais pas mal, continue");
}



je pense que ca devrais suffire(attention par contre le mec n'est pas increvable, ca il faut le faire aussi, si tu sais pas cmt faire donne suite a ce topic)

Par Kemay le 3/9/2002 à 17:45:22 (#2088795)

A priori il faudrait qu'il ait une faction minimum neutre avec tout le monde et remplacer son onDamaged par

void main()
{
ActionSpeakString("ouais pas mal, continue");
}
et virer tous ses scripts par défaut.

Par Azrael07 le 3/9/2002 à 17:48:27 (#2088816)

c marrant ca qd on repond en meme temp :bouffon: :bouffon: :bouffon:

bon ben voila mnt tu peut pas te tromper ;)

Par Elmo le 3/9/2002 à 20:20:18 (#2089972)

merci azrael, pour le reste je pourrai me débrouiller ;)

Par LeProctophantasmiste le 3/9/2002 à 21:43:11 (#2090568)

Si ça marche tant mieux, je veux bien que tu nous tiennes au courant car cela voudrait dire que j'ai planté mes tests quelque part.
sinon:
La solution la plus simple et la plus efficace: marquer le PNJ comme "plot", l'inconvénient majeur "weapon ineffective".

Si cela ne te convient pas:
Pour une part les changements de réputation sont automatiques, j'ai lu le contraire ici ou là, mais je ne vois pas d'autre explication à certains des tests que j'ai menés pour comprendre le moteur de combat. Ce qui va t'arriver dans le meilleur des cas, si je ne trompe, c'est que le personnage va pouvoir taper le PNJ autant qu'il le veut, mais que dès qu'il va s'arrêter et s'éloigner, le PNJ va devenir hostile (si ce n'est déjà fait, ce point étant assez incompréhensible) et bénéficier d'une attaque d'opportunité, ceci lance ActionAttack, donc il ne s'arrêtera pas là.

Une solution? Et bien, je ne suis pas sûr, le problème pourrait être plus compliqué qu'il n'en a l'air. A cause notamment de cette histoire d'attaque d'opportunité et de la persistance -très relative mais ça pourrait créer des effets étranges- du mode combat (sûr ce dernier point la réputation du PJ ne change rien).


Ce conseil vaut de toute façon:
Crée une faction spécifique au PNJ, ou au moins vérifie qu'il n'y aie personne de la même faction dans l"area" et enlève l'effet global de la faction.

Si tu peux l'utiliser à un moment ou à un autre, SurrenderToEnemy devrait te simplifier la vie (je ne l'ai jamais utilisé jusqu'à présent mais ça a l'air adapté à ce genre de cas).

Par Azrael07 le 3/9/2002 à 21:48:37 (#2090602)

Ben si tu vire les scipts par default je ne pense pas que sa pose problème, enfin si tu a essaye je ne peut pas te contredire parsque moi, j'ai rien testé du tout :rolleyes:

Par Kemay le 3/9/2002 à 21:52:55 (#2090637)

Si ça marche tant mieux, je veux bien que tu nous tiennes au courant car cela voudrait dire que j'ai planté mes tests quelque part.
Dans la première zone du prélude de la campagne officiel, le NPC Bim (peut être l'autre aussi je n'ai pas testé) ne répondent pas aux attaques et ne deviennent pas hostiles. Par contre il faut enlever TOUS les scripts par défaut, pas seulement ceux de onPhysicalAttacked et onDamaged. Il vaut mieux, effectivement, que le NPC ait une faction unique et impérativement qu'elle soit de 50 ou+ avec toutes les autres factions.

Par LeProctophantasmiste le 3/9/2002 à 22:01:30 (#2090699)

J'ai testé sans aucun script nulle part Azraëll :). Au départ ce que je voulais faire n'avait pas grand chose à voir avec ça: scripter une attaque spécialle à distance, le problème était de maintenir le PNJ en mode combat, alors que le PJ était passif (imobilisé, inintéressé...) j'ai trouvé comment faire (en fin dans le cas général pas vraiment) mais j'ai été pris d'une frénésie de test, il faut dire qu'il ya des trucs pas évidents de ce côté là...

Kemay: oui mais si je me souviens bien ils sont marqués comme "plot" -"weapon ineffective- ça évite que le mode combat ne se mette en route je crois.

EDIT: l
"ça évite que le mode combat ne se mette en route je crois."

Le mode combat et le changement automatique de réputation car en fait les deux sont indépendants, on peut faire attaquer un PNJ sans pour cela qu'il ne devienne hostile, à condition bien sur que le joueur ne réplique pas.

Par Kemay le 3/9/2002 à 22:21:30 (#2090806)

Ben je viens de tester et je vois pas où est le problème... Le NPC ne réagit pas aux attaques. Certes il devient hostile, mais il suffit de le repasser neutre avec un script dans l'event onCombatRoundEnd pour qu'il redevienne neutre dès que le PC arrête d'attaquer.

Voila j'aimerais que lorsqu'on frappe le perso on va dire heuuu Marcel, il réponde "ouais pas mal, continue" mais sans attaquer
Je me permets de rappeler la question à laquelle nous répondons ;) Le problème n'est pas que le NPC soit hostile ou non mais bien qu'il ne réponde pas aux attaques. Si en plus tu veux vrament qu'il reste neutre, pendant les quelques secondes où il se fait meuler la tête sans répondre, il faut effectivement le rendre "plot", mais honnêtement je vois pas trop l'intérêt.

Par LeProctophantasmiste le 3/9/2002 à 22:33:08 (#2090869)


Je me permets de rappeler la question à laquelle nous répondons


Oui bon ça va! :)

Ok j'aurais du tester l'OnCombatRoundEnd, ça m'était venu à l'esprit mais j'attendais le feedback comme un fainéant.

Ceci dit, il peut encore y avoir des bugs à mon avis, je vais tester:
le problème c'est les attaques d'opportunité si le PJ s'en va à un moment mal choisi, il est possible que cela déclanche une ...

Par LeProctophantasmiste le 3/9/2002 à 22:51:03 (#2090986)

Bon on va dire que je veux vraiment voir un problème là ou il n'y en a pas mais..
Kemay test avec un PJ désarmé (et qui n'a pas Improved Unarmed Combat) ou qui utilise un arc, un sort..., en mélee. Je pense que tu verra le pbm que je mentionnais.

Mais bon, dans les autres cas d'attaque d'opportunité ça à l'air de marcher.

EDIT: ben non finalement je me suis tapé le bug avec un moine...

Par Kemay le 3/9/2002 à 23:05:11 (#2091096)

Intéressant, dans le cas où le NPC a l'occasion de faire une attaque d'opportunité, il continue à se battre jusqu'à la mort... même sans être hostile lol

Cela dit, il suffit de faire un ClearAllActions en même temps que le retour à une faction neutre. Ca n'empêche pas l'attack of opprtunity elle-même, mais au moins il arrête de te courrir après.

En tout cas ça sent le bug à plein nez... Cool ça faisait bien deux jours que j'avais pas posté à Infogramme un report de bug *cheers*

Par LeProctophantasmiste le 3/9/2002 à 23:16:03 (#2091172)

A mon avis c'est pas un bug: ça lance ActionAttack() -cf mon post ci-dessus perdu quelque part dans mon baratin- comme c'est comme ça que les attaques multiples sont gérées je ne pense pas qu'ils puissent y faire grand chose ...

Par Kemay le 3/9/2002 à 23:28:06 (#2091235)

je ne suis pas sûr que ce soit du Action Attack,et ce qui me fait penser que c'est un bug, c'est qu'un PC peut faire une attack of opportunity sans déclencher ses attaques normales. Faudrait que je retrouve les détails sur les Attacks of Opportunity mais dans mon souvenir, elles ne sont absolument pas liés aux attaques régulières et ne déclenchent rien d'autre qu'une seule attaque comme toute dernière action d'un round. Un des programmeurs de Bioware a posté plusieurs explications sur la façon dont elles étaient gérées, j'vais essayer de les retrouver.

Par Kemay le 4/9/2002 à 0:01:52 (#2091345)

Voilà déjà une partie, j'ai pas encore retouvé le reste :

Brenon Holmes, Programmeur chez Bioware:

Attacks Of Opportunity: AoO's are a bit tricky. In 3Ed since everything's turn based you have a nice little interlude in the round (when the AoO is triggered) where you can "do" the AoO, resolve it and everyone's happy. In NWN we end up scheduling the AoO for the first available slot in the personal combat round of that creature. What does that mean? Sometimes AoO's (depending on when they're scheduled) can be delayed by up to 1.25 seconds.

As for why you might be seeing more that one? I'm pretty sure you're not getting more than one... are you absolutely certain that the combat feedback lists every attack as being an AoO? They should be Prepended with the "Attack Of Opportunity : " string... If it does then there's definetly an issue and I will look into it.

To explain what might be occuring, when you take an AoO, it actually counts as a hostile action towards the target creature and starts up a regular combat round... beginning with the AoO... so if you have 3 attacks per round, you'd take the AoO and then your 3 regular attacks.

As for triggering AoO's if the creature is not currently "in combat" a state which is maintained on the creature by a timer which lapses after 8 seconds, or cannot see the target (it's invisible) or a number of other things... (I don't have code in front of me right now) the AoO will not trigger.

Par LeProctophantasmiste le 4/9/2002 à 17:38:18 (#2095774)


je ne suis pas sûr que ce soit du Action Attack,et ce qui me fait penser que c'est un bug, c'est qu'un PC peut faire une attack of opportunity sans déclencher ses attaques normales.

Alors tu as probablement raison. Je ne sais pas trop pourquoi je trouvais ça normal de toute façon :).

Merci pour le post.
Si tu as trouvé la suite, je suis intéressé... Peut être dans un autre sujet? Je me rend bien compte que je ne suis pas très bien placé pour dire ça :D .

JOL Archives 1.0.1
@ JOL / JeuxOnLine