dialogue avec perso gentil puis changement en hostile et attack

Répondre
Partager Rechercher
Me revoila avec mes prob...

Bonjour quand même...

Donc voila :
je crois avoir déjà posé la question mais le script ne marchait absolument pas...

donc, quelqu'un peut il me concocter un script qui :
à la fin d'un dialogue d'un NPC commoner, celui ci change d'alignement Hostile (ça ça marche, j'ai le script) mais que celui ci attaque le PC une fois ce changement effectué ?

faut il mettre le script d'attaque du perso dans le même script que celui du changement de faction ?
ou alors le mettre dans un onSpawn ou autre truc de ce genre...
avec des détails svp, vu que je suis la plus grande quiche au monde en matière de script

meeeeeeeeeeeeeeeerciiiiii mes cher(e)s ami(e)s Jolien(e)s
__________________
Création de tentures [ réactives UV ]

http://pyr.ouvaton.org
Re: dialogue avec perso gentil puis changement en hostile et attack
Citation :
Provient du message de Nezar

donc, quelqu'un peut il me concocter un script
Je dirais rien mais j'en pense pas moins.

Jaha Effect
Re: Re: dialogue avec perso gentil puis changement en hostile et attack
Citation :
Provient du message de Jaha Effect
Je dirais rien mais j'en pense pas moins.

Jaha Effect

dsl mais je n'arrive pas à grand chose...je sais que ça énerve beaucoup de monde ceux (comme moi) qui demandent sans arrêt aux autres de leur faire des scripts mais bon...soyez chic
je suis une pure quiche...mais sache un ttruc c'est que moi avant de demander je vais fouiller un peut partout et dans la mesure du possible évite de poser une question si je n'ai pas essayé avant...

encore dsl de t'avoir énervé...
Le problème c'est que c'est le genre de sujet qui a été abordé 5000 fois et qu'il y a même des module de démo qui ont été fait sur ce sujet dans les persistant du forum, ici. Forcement ça gave un peu.
Tu as juste a regarder comment le pnj est rendu agressif dans les scriptes du dialogue.
De plus le module officiel fourmille de ce genre de truc.

Jaha Effect
c'est tout ce que j'ai trouvé...
bon après une remarque qui m'a interpellé (et j'en suis dsl )

voila ce que j'ai pu trouver mais ce script ne fonctionne pas...

changer de comportement après dialogue :

// In the 'Actions Taken' script of an NPC's final conversation node
void main() {
ChangeToStandardFaction(OBJECT_SELF, STANDARD_FACTION_HOSTILE);
DetermineCombatRound();
}


voila... ctout...il y a une erreur ou koi ???
il n'y a que le changement de faction qui marche...j'ai l'impression qu'il manque quelque chose pour que le perso attack
non ???
le "DetermineCombatRound()" suffit à faire attaquer le perso ???? ça me semble bizarre...et vu que je n'y connais rien...et ba je sais pas koi modifier....
encore dsl Jaha...mais c en posant des questions de ce style que japprendrais a faire mes propres scripts et que j'éviterai par la suite de poser ce style de question...
skuze j'ai posté trop tard...ok j'ai mal regardé...ça arrive
Citation :
Provient du message de Jaha Effect
Le problème c'est que c'est le genre de sujet qui a été abordé 5000 fois et qu'il y a même des module de démo qui ont été fait sur ce sujet dans les persistant du forum, ici. Forcement ça gave un peu.
Tu as juste a regarder comment le pnj est rendu agressif dans les scriptes du dialogue.
De plus le module officiel fourmille de ce genre de truc.

Jaha Effect
tout est dans le titre...
Tu peux utiliser DetermineCombatRound(oPC); .

oPC tu l'auras probablement récupéré par GetPCSpeaker();

Si cela ne marche pas, c'est que ton PNJ a probablement des niveaux de commoner, auquel cas la fonction DetermineCombatRound lui dit de ne pas attaquer.

Solutions:
1) tu enlèves les niveaux de commoner à ton NPC
2) tu utilises ActionAttack(oPC) à la place, en enlevant les scripts par défaut sinon DetermineCombatRound viendra foutre le bordel. Dans ce cas le PNJ se contentera d'attaques de base, pas de sort, d'utilisation de potion ou de don, etc.
Normalement, tu as l'assistant des scripts dialogues qui te fait ça

Moi, j'ai un autre problème, presque le même :
J'ai fait un dialogue où 2 npc parlent et j'aimerais qu'un des 2 attaque le pj mais pas l'autre, j'ai fait 2 factions différentes mais je n'arrive pas à faire attaquer seulement celui à qui le pj n'a pas parlé au début

Je sais, j'ai pas dû très bien expliqué, je sais pas si vous comprendrez
Désolé
Le voilà :

//::///////////////////////////////////////////////
//:: FileName attaquedubalor
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Aermhar
//:: Created On: 03/04/03 18:41:24
//:://////////////////////////////////////////////
#include "nw_i0_generic"

void main()
{

// Paramétrer la faction de manière à ce qu'elle déteste le joueur et l'attaque
AdjustReputation(GetLastSpeaker, OBJECT_SELF, -100);
DetermineCombatRound(GetLastSpeaker);
}

J'ai essayé en mettant le tag mais ça marche pas
alors
1- mets tes cript entre les balise [*php] et [/*php] sans les *
ensuit, t'as oublié les parenthèse dérrière les getLastSpeaker
Code PHP:

#include "nw_i0_generic"

void main()
{

// Paramétrer la faction de manière à ce qu'elle déteste le joueur et l'attaque
AdjustReputation(GetLastSpeaker(), OBJECT_SELF, -100);
DetermineCombatRound(GetLastSpeaker());

Même comme ça, ça marche pas, c'est toujours pas le bon qui attaque
Je vais mieux réexpliquer :
Je parle à un mec, à côté de lui, il y a un balor, je fais un dialogue où le balor parle et j'aimerais que seul le balor attaque
essai en remplaçant

Adjust...

par

SetIsTemporaryEnemy

si y a que le balor qui doit attaquer, fin bon, c'est pas 100% garanti, j'ai j'ai utilisé cette fonction donc bon . . . je sais pas trop comment elle marche
Combien de fois faudra-t-il le dire : utiliser GetLastSpeaker() dans un dialogue (surtout un dialogue à 3) est une erreur, cette fonction est faite pour le OnConversation et c'est tout !!

Dans un dialogue on utilise GetPCSpeaker(), c'est mieux (et ça ne marche pas dans le OnConversation, soit dit en passant).

De là à dire que ça réglera ton problème... Vérifie quand même que tu as bien placé le script sur une réplique du Balor, on sait jamais

Si c'est pas ça, essaie d'utiliser GetNearestObjectByTag() pour trouver ton Balor à la place de OBJECT_SELF, je ne sais pas comment celui-ci est géré lors d'une conversation à plus de deux protagonistes.
Hin hin je savais bien que j'avais raison d'utiliser GetPCSpeaker

Sinon pour le schmilblik, essaye de remplacer OBJECT_SELF par le tag de celui qui doit attaquer.
En temps normal, GetLastSpeaker() doit marcher, parce que la dernière personne à s'être adressé au PNJ est bien le PJ mais j'ai de très fort doute si quelqu'un d'autre reparle entre-temps...

(D'autant plus que je ne vois aucune raison de ne pas utiliser GetPCSpeaker() qui est bien plus sûr et qui est dédié à cet usage !)
Répondre

Connectés sur ce fil

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