Script vraimment trop baleze pour moi besoin d'aide svp ^^

Répondre
Partager Rechercher
Deja rebonjour a tous sa fait longtemps que je suis pas venu

Quelqu'un pourait il m'aider je voudrais faire un script mais celui la est vraimment trop baleze pour moi .

Donc voila mon prob, j'ai fait un culte de loups garous dans des bois, j'aimerais
1_que des que le pj entre dans la zone des creature spawn a un endroit (sa je sais faire facile )
2_ qu'en aprochant de l'autel la creature au centre entame une conversation
3_qu'au court de la conversation l'attitude des personnes presente change face au pj en hostile (jusque la tout va bien)
4_que les pnj present apres la conversation se changent en loups garous (la sa se complique)
5_Que le pnj centrale soit invulnerable et que des loups garous aparaissent a 2 endroits diferents de la carte aux fur et a mesure que les pj les tue avec des effets de lumiere a chaque spawn(en gros pour un loup tue un autre revient et comme sa indefiniment)
6_que le pj puisse entamer un dialogue avec l'autel en plein combat et qu'il puisse utilise un objet particulier (un marteau) pour briser l'autel,si il ne possede pas l'objet qu'il subisse des domages en essayant de casser se dernier .
7_Qu'une fois l'autel casse les pnj loups garous disparaissent et que les spawn de creature soient stope, et que le pnj principal reste mais ne soit plus invulnerable .

Voila je sais que je demande bcp mais si vous pouviez m'aider se serait sympa tout mon module repose la dessus et j'arrive pas a faire certains truc a partir du 4 en fait .
merci d'avance
4. Tu fait une boucle sur toutes les créatures portant le tag des PNJ loups garous en humain grâce à GetNearestObjectByTag(), tu les détruits et les remplace par des loups garous ou tu fais un polymorph en loup garous au choix

5. Tu fait SetPlotFlag( oPnjPrincipal, TRUE);
Tu met un petit bout de code dans le ondeath des loups garous pour qu'un autre respawn CreateObject() sur l'un ou l'autre des deux wp que tu auras placé au deux bouts (un Random() pour qu'ils apparaissent à l'un ou l'autre au hasard ou un GetNearestObjectByTag() pour qu'ils apparaissent au plus proche)

6. A priori là ça coince, je ne crois pas qu'on puisse discuter en plein combat, donc tu vas devoir laisser plus de liberté aux PJs et les laisser taper avec ce qu'ils veulent, mais tu auras soin de modifier le OnDamaged pour faire en sorte qu'ils devinent qu'il faut utiliser le marteau

7. Là tu refais une boucle avec GetNearestObjectByTag() pour détruire tous les loups garou, et tu fait un SetPlotFlag( oPNJprincipal, FALSE);, tout ça dans le OnDeath de l'autel
6 - dans le onused, tu met un

Code PHP:

ClearAllActions(TRUE);
AssignCommand(oPJActionStartConversation(oPJ"tondia")); 
et dans le script de fin de dia tumet
Code PHP:

#include "NW_I0_GENERIC"
void main()
{
       
DetermineCombatRound();

et ca devrait aller, non ?

attention, bien dans le (les en fait) script de fin de dialogue ! dans l'onglet "fichier actuel"

au fait, ca fait quoi setplotflag ?

Et pourquoi tu passe pas par un GetFirstCreatureInArea / GetTag ? C plus lourd ?
Le dialogue se déclenchera pas Reyan. Tu auras une jolie phrase du genre " La personne est trop occupé pour discuter avec vous " ou " vous êtes trop agité pour débuter une conversation ". Enfin un truc dans ce goût là.

Le SetPlotFlag permet de rendre l'objet indestructible.
Citation :
Provient du message de Archamedes_Fr
Le dialogue se déclenchera pas Reyan. Tu auras une jolie phrase du genre " La personne est trop occupé pour discuter avec vous " ou " vous êtes trop agité pour débuter une conversation ". Enfin un truc dans ce goût là.

Le SetPlotFlag permet de rendre l'objet indestructible.
a ??
même avec le ClearAllAction(TRUE);

pourtant :
Citation :
// - nClearCombatState: if true, this will immediately clear the combat state
// on a creature, which will stop the combat music and allow them to rest,
// engage in dialog , or other actions that they would normally have to wait for.
Vi certes, il est possible que cette fonction soit efficace, mais j'en doute, en effet elle "retire" l'état de combat du PJ, mais celui-ci se trouve en plein combat, ce qui risque de 'rétablir' aussi sec l'état de combat si on ne fige pas les autres protagonistes, il est probable qu'il va se prendre un mauvais coup....
Je pense que de toute façon dans une telle 'ambiance', il est impossible que le PJ engage un dialogue, mais cela serait-il possible, que je m'interroge sur les conséquences d'un combat sur un dialogue déjà entamé...

Quelqu'un aurait-il sur ce point des lumières qu'il daignerait partager ?
bon, ben après test, ca marche, mais evidement on s'en prend plein la tête
alors, le gars clique, il lance le dialogue, et tape la discut, même si il se fait frapper et prend des dégats, il tape la discut (vaillant le gars) mais si il attaque, ben ca arrête tout, pas d'attaque auto, il est pas en posture d'attaque.
Alors plusieurs choses me viennent à l'esprit :
soit on laisse ca come ca, il a qu'a s'interesser un peu àce qui se passe
soit on fait un trigger qui dit au méssants de pas rentrer qd qq'un parle à l'autel,
soit on modifie le oncombatroundend des streums (euh, comment :-/ ) ou p-e le onperceiption (mouais . . . )
soit on fait un arrêt du temps (pk pas . . .)
ou bien tu gérie le PJ ou lui applique un effet de résistance aux dégats

edit : au passage je modifie le script :

Code PHP:

void main()
{
object oPJGetLastUsedBy();
AssignCommand(oPJClearAllActions(TRUE));
SendMessageToPC(oPJ"ca marche");
AssignCommand(oPJActionStartConversation(oPJ"tondia"));

ca a plus de chance de marcher
Répondre

Connectés sur ce fil

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