JeuxOnLineForumsPlusConnectés : 421 (sites) | 927 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Ritournelles sans OnHeartbeat... RSS
   
Répondre
Partager Outils Rechercher
riprip
Roi / Reine
 

Ritournelles sans OnHeartbeat...

Un petit problème que je rencontre: j'aimerais qu'un PNJ chante une petite ritournelle en continue dès qu'arrive un PJ, ce qui est assez simple à faire dans le OnHeartbeat. Mais bon, ça a pas l'air très recommandé visiblement

Y-a-t-il un moyen de faire autrement ?
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Oui, mais pour une simple ritournelle, sans effets spéciaux de la mort qui tue et boucle à travers tous les objets du modules, ce serait du gâchis de ne pas utiliser le OnHeartBeat, il est parfait pour ça et ça ne sera pas lourd du tout (ôte moi d'un doute : tu ne fais pas chanter des hosannas à la totalités de tes PNJs ? ).

Donc vas-y sans hésiter !

PS : Si tu veux qu'on puisse causer à ton chanteur, n'oublie pas de faire en sorte qu'il s'arrête de chanter pendant les discussions !
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Non non pas de hosanna

et merci
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Perso j'utilise le OnPerception pour ce genre de truc

Jaha Effect
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Bon vala, j'ai mis ma ritournelle dans Onperceived, ça donne à peu près ça.


object oVu=GetLastPerceived();

if (GetIsPC(oVu))
{
ActionSpeakString("tralala !");
ActionWait(1.5);
ActionSpeakString("Tsoin tsoin");
ActionWait(1.5);
ActionSpeakString("tiroulirouli");
ActionWait(1.5);
}


Je vois pas pourquoi ça marche pas :/
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
J'ai mis ClearAllAction() au début, du coup ça marche, il chante^^ ...mais il reste sur place et oublie ses waypoints...

argg c'est un vrai casse-tête chinois ce truc :/
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
essaye avec un ClearAllActions devant
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
en même temps ^^
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Citation:
Provient du message de riprip
J'ai mis ClearAllAction() au début, du coup ça marche, il chante^^ ...mais il reste sur place et oublie ses waypoints...

argg c'est un vrai casse-tête chinois ce truc :/
quelqu'un peut m'aider, je sèche là
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Si tu veux simplement qu'il reprenne son chemin après avoir chanté, rappelle simplement WalkWayPoints à la fin de ton script.

Si tu veux qu'il marche en chantant, la solution la plus simple, je pense, est d'utiliser des SpeakString à la place des ActionSpeakString et des DelayCommand pour le timing. Comme tu ne passeras plus par la queue d'action cela ne devrait plus interférer avec le walkwaypoints.
Si tu ne veux pas de DelayCommand, j'ai peur que tu n'aies d'autre choix que de te faire une fonction personnelle équivalente à WalkWayPoint (en beaucoup plus simple éventuellement car appliquée à ce cas spécifique). Dans ce cas tu pourrais lui faire chanter sa ritournelle selon l'évolution de sa déambulation, et donc intégrer tout ça à la queue d'action.
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
merci Sire Pom-pom
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Bon ma ritournelle marche bien sur le OnPercieved du PNJ maintenant.

Mais je me pose une question bête : la ritournelle chantée par le PNJ s'enclenche sur l'arrivée d'un PJ (avec un if (GetIsPC(GetLastPerceived()) ). Si un second PJ arrive au moment ou le PNJ est au milieu de sa ritournelle, est-ce que le PNJ réinitialise sa ritournelle et la reprend au début sans terminer celle en cours ou pas ?

Et comment faire pour qu'un programme placé dans le OnPerceived ne se déclanche qu'une et une seule fois et pas à chaque passage du ou des PJ ?
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
avec une variable
tu la met à 1 quand tu commence ta ritournelle et tu teste dans le onperceive, si elle est à 1, tu commence pas à chanter, sinon, c'est bon
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Justement j'y ai pensé

Mais en tant que grosse quiche, j'arrive pas à le faire concrètement
ya un truc qui cloche (en fait j'arrive pas à récupérer la variable)

En script, ça donne quoi ?
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
bon, alors en gros :

Code PHP:

object oVu
=GetLastPerceived();
int nDone GetLocalInt(OBJECT_SELF"RITOURNELLE_DONE"); 
if (
GetIsPC(oVu) && (!nDone)) //chuis jamais sure de ma syntaxe mais normalement ...
{
SetLocalInt(OBJECT_SELF"RITOURNELLE_DONE"1);
ActionSpeakString("tralala !");
ActionWait(1.5);
ActionSpeakString("Tsoin tsoin");
ActionWait(1.5);
ActionSpeakString("tiroulirouli");
ActionWait(1.5);


et puis a la fin de ta ritournelle tu peux faire pour qu'il puisse la rechanter une fois qu'il la chanson finie :

Code PHP:

ActionSpeakString
("tiroulirouli");
ActionWait(1.5);
ActionDoCommand(DeleteLocalInt(OBJECT_SELF"RITOURNELLE_DONE"));

si ca pas bon ... c"est qu'il faut peut être un DelayCommand(0.1 ...) pour le SetLocalInt ... je suis jamais trop confiant dans ces trucs là, mais en théorie, je pense que c'est bon ...
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Ritournelles sans OnHeartbeat...
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 09h34.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite