JeuxOnLineForumsPlusConnectés : 819 (sites) | 1360 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [Barde inside] Quelques questions simples RSS
   
Répondre
Partager Outils Rechercher
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Ne se compile pas...
Il me met à la deuxième ligne "non constant in function declaration".

Je vais tester quand même (j'éditerais ce message)

[Edit] Aucun changement. Tout est dupliqué (même les xp et l'effet visuel).
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Je vais demander quelque chose de beaucoup plus simple cette fois .

[PNJ] : blablabla
- [PJ] : [jet de force] Tu vas t'en prendre une.
-- [PNJ] : [Echec] Même pas peur
---[PNJ] : [Réussite] Maman !
- [PJ] : [jet de charisme] Tu vas t'en prendre une.
-- [PNJ] : [Echec] Même pas peur
---[PNJ] : [Réussite] Maman !

Je fais comment les jets de carac ? (j'ai regardé dans WW comment étaient fait les jets de carac, mais j'ai rien compris à leur script...).
Pour la difficulté, on va dire 15.

Deuxième petite question.

[PNJ] : Santé !
- [PJ] : [Jet de constitution/réussite] Santé !
- [PJ] : [Jet de constitution/échec] Beuarp !
--[PNJ] : On remet ça !
--- [PJ] : [Jet de constitution/réussite] Santé !
--- [PJ] : [Jet de constitution/échec] Beuarp !
etc.

Si le jet est réussit (difficulté 10), il faut augmenter une variable de 1, et suivant la valeur de la variable (0 à 5), la difficulté du jet est différente (+2 par point dans la variable).
Var = 0 ----> DC 10
Var = 1 ----> DC 12
Etc.
Si le jet est un échec, la variable doit être remis à 0, le PJ se met à tituber et s'étale par terre en ronflant pendant quelques secondes (on va dire 5), avant de se relever.

Troisième petite question.
Si le PNJ perd le petit concours de beuverie, il se lève, se dirige vers la porte de sortie, l'ouvre et disparaît.
Il suffit juste que je lui dise d'aller ouvrir l'objet ayant le tag "tagdelaporte" et que je fasse un DestroyObject sur lui même ?

Rien de bien difficile n'est-ce pas ?
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Bon, j'ai réussit à faire ce que je demandais au dessus (il me manque juste l'effet visuel pour le ronflement).

J'ai un tout petit problème. Lorsque je parle à un PNJ assis, il se lève, et j'aimerais qu'il reste assis. J'avais réussit à faire ça il y a quelques siècles, mais j'arrive pas à remettre la main dessus .
Quelqu'un peut m'aider à faire rester ces abrutis de PNJ sur leur chaise ?
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
pour les PnJ qui se levent, c'est a cause d'un clearAllaction a la fin des conversations, probablement.

Soit tu remet un AssignCommand(oPNJ, SiSit(!)) dans l'evenement de fin de script (avec un delaycommand de 0.5), soit tu refait le tour de tous les script du dialogue, a la recherche de ClearAllActions();

(pour les autres questions, ca va, ou il en reste ? )
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Pas de ClearAllAction à la fin des dialogues.
Mon problème c'est en début de dialogue. Lorsque je clique sur le pnj pour lui parler, il se lève au moment où débute la conversation. C'est ce truc que je veux enlever, je veux qu'il ne se lève pas quand je débute une conversation.

Je sais qu'il y a un truc à virer mais je sais plus quoi. Je crois que c'est en rapport avec le OnConversation, mais comme il a changé suite à SoU, je suis perdu.
Mais BioWare n'avait pas rajouté quelque chose justement pour éviter que le personnage ne se lève de sa chaise ?

*part fouiller dans divers modules à la recherche de PNJ restant assis*
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Bon, j'ai un problème (comme d'habitude). Mon PNJ doit aller jusqu'à la porte, l'ouvrir, et ce n'est qu'à ce moment là qu'il doit disparaître. Mais le problème, c'est qu'il disparaît un peu trop tot...
Comment je fais pour que le DestroyObject se lance 1 seconde après ouverture de la porte ?

Code PHP:
void main()
{
   
object oDoor;
   
object oTarget;
   
oDoor GetNearestObjectByTag ("Door_exit");
   
oTarget OBJECT_SELF;
   
SetLocalInt(GetPCSpeaker(), "var_gerdil"2);
   
ActionOpenDoor(oDoor);
   
DestroyObject(oTarget1.0);

Et j'ai toujours le problème de ce fichu PNJ qui veut pas rester sur sa chaise... Je l'oblige à se rasseoir avec un OnHeartBeat, mais j'aime pas (pas à cause du OnHeartBeat qui n'est pas dérangeant vu le module, mais parce que le PNJ se lève et se rassoit au lieu de rester assis).
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
la fonction ActionDoCommande est ton amie, puisqu'elle va mettre le destroyObject dans la plie d'action... et donc s'effectuer apres l'ouverture en Action ^^
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Ah ok, ActionDoCommand sert donc à ça ! J'aurais appris un truc.
C'est vrai que maintenant, ça marche beaucoup mieux.

Hop, je retourne au charbon (me reste plus beaucoup de script à faire, si ce n'est une pseudo cinématique et deux-trois tests de variables...).
10 heures de travail pour 10 minutes de jeu, je trouve ça correct .
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
J'ai un script qui marche... presque.
Il faut que deux PNJ apparaisse sur deux waypoint, avec un effet pour faire un peu plus joli, puis l'un d'eux lance une conversation.
Mes PNJ apparaissent, mais j'ai pas de joli effet lumineux (et j'ai pas fait la conversation pour l'instant, donc je sais pas si ça marche ou pas à ce niveau là).
Quelqu'un peut me corriger ça ?

Code PHP:
void main()
{

object oPC GetPCSpeaker();

object oTarget1;
object oSpawn1;
location lTarget1;
object oTarget2;
object oSpawn2;
location lTarget2;

oTarget1 GetWaypointByTag("wp_capitaine");
lTarget1 GetLocation(oTarget1);
oSpawn1 CreateObject(OBJECT_TYPE_CREATURE"dorne"lTarget1);
oTarget1 oSpawn1;
oTarget2 GetWaypointByTag("wp_rolenth");
lTarget2 GetLocation(oTarget1);
oSpawn2 CreateObject(OBJECT_TYPE_CREATURE"rolenth"lTarget2);
oTarget2 oSpawn2;

int nInt1;
nInt1 GetObjectType(oTarget1);
int nInt2;
nInt2 GetObjectType(oTarget2);

if (
nInt1 != OBJECT_TYPE_WAYPOINTApplyEffectToObject(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_FNF_SUMMON_GATE), oTarget1);
else 
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_FNF_SUMMON_GATE), GetLocation(oTarget1));
if (
nInt2 != OBJECT_TYPE_WAYPOINTApplyEffectToObject(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_FNF_SUMMON_GATE), oTarget2);
else 
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_FNF_SUMMON_GATE), GetLocation(oTarget2));

AssignCommand(oTarget1ActionStartConversation(oPC""));


Lien direct vers le message - Vieux
Avatar de Fanley
Fanley
Alpha & Oméga
 
Avatar de Fanley
 
Voyons voyons... A priori c'est l'effet appliqué dans ton test qui ne marche pas. (Au passage, tu ne peux jamais passer dans le else, à priori.) Mais pourquoi? Je ne m'y connais p'tet pas assez, mais j'essayerais plutôt d'appliquer l'effet à l'emplacement de oTarget1 plutôt que sur oTarget1 directement.

Ca donnerais ça:

Code PHP:
void main()
{

object oPC GetPCSpeaker();

object oTarget1;
object oSpawn1;
location lTarget1;
object oTarget2;
object oSpawn2;
location lTarget2;

oTarget1 GetWaypointByTag("wp_capitaine");
lTarget1 GetLocation(oTarget1);
oSpawn1 CreateObject(OBJECT_TYPE_CREATURE"dorne"lTarget1);
oTarget1 oSpawn1;
oTarget2 GetWaypointByTag("wp_rolenth");
lTarget2 GetLocation(oTarget1);
oSpawn2 CreateObject(OBJECT_TYPE_CREATURE"rolenth"lTarget2);
oTarget2 oSpawn2;

int nInt1;
nInt1 GetObjectType(oTarget1);
int nInt2;
nInt2 GetObjectType(oTarget2);

ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_FNF_SUMMON_GATE), GetLocation(oTarget1));
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_FNF_SUMMON_GATE), GetLocation(oTarget2));

AssignCommand(oTarget1ActionStartConversation(oPC""));


(Plus de test et forcement sur la localisation et plus sur l'objet.)

J'ai bon?

Fanley, scripteur très débutant.

PS: Merci de tes questions, Simkim, ça me permet de voir des difficultés intéressantes à mon niveau
Lien direct vers le message - Vieux
Avatar de Simkim
JOL Simkim
Alpha & Oméga
 
Avatar de Simkim
 
Bon, le script marche... presque. En fait, j'ai fait une erreur à la dernière ligne, et j'arrive pas à la corriger...

Code PHP:
AssignCommand(oTarget1ActionStartConversation(oPC"")); 
C'est pas oTarget qui doit lancer une conversation, mais Dorne (est aussi le nom du Tag et du resref), l'un des PNJ qui est apparu.
Je voulais mettre un GetCreatureByTag à la place de oTarget, mais j'ai l'impression que cette commande n'existe pas...
Je dois faire comment ?

[Edit] : A ben peut-être que c'est juste GetObjectByTag qu'il faut prendre

[Edit2] : J'arrive pas à lancer cette fichue conversation

[Edit3] : J'ai finit par trouver une solution (c'est peut-être pas la meilleure, mais elle fonctionne), mettre un script dans le OnSpawn pour lancer la conversation.
Et quelqu'un peut me modifier juste un peu le script d'apparition des PNJ afin que l'effet visuel ait lieu avant l'apparition, et non après ?
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [Barde inside] Quelques questions simples
   

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 19h23.
   

© 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