JeuxOnLineForumsPlusConnectés : 646 (sites) | 1171 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Pnj de jour, de nuit, problème de script.. RSS
   
Répondre
Partager Outils Rechercher
Istrella
Reine
 

Pnj de jour, de nuit, problème de script..

Bon, tout d'abord je tiens à préciser que je suis une vraie nouille en scripts, donc

Je souhaite créer un pnj le jour et un autre la nuit, pour cela j'ai créé un déclencheur aussi grand que ma zone, ainsi que deux pnj (un pour le jour, l'autre pour la nuit), et deux waypoints pour l'endroit ou les faire apparaitre.

Dans mon déclencheur, onheartbeat, j'ai mis le script suivant :

Code PHP:
void main()
{

object oPNJ GetObjectByTag("GardiendelaCrypte");
location lLoc GetLocation(GetObjectByTag("WP_GardiendelaCrypte_01"));
object oPNJ2 GetObjectByTag("Daleylegardienducimetire");
location lLoc2 GetLocation(GetObjectByTag("WP_Daleylegardienducimetire_01"));
int apparition GetLocalInt(GetModule(),"jour_nuit");


if (
apparition == 1)
{
if(
GetIsDay() == TRUE)
{
DestroyObject(oPNJ);
CreateObject(OBJECT_TYPE_CREATURE,"daleylegardiendu",lLoc,TRUE);
SetLocalInt(GetModule(),"jour_nuit",2);
}
}
else
{
if(
GetIsNight() == TRUE)
{
DestroyObject(oPNJ2);
CreateObject(OBJECT_TYPE_CREATURE,"gardiendelacrypt",lLoc,TRUE);
SetLocalInt(GetModule(),"jour_nuit",1);
}
}

Mais je n'ai que mon pnj de nuit qui apparait.... quelqu'un voit une erreur dans le script ??? Moi je sèche :'(

Merci de votre aide !
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
b'jour

vérifie ton tag, çar "daleylegardiendu" me semble bien étrange comme tag...

Sinon DestroyObject est peut être un peu violant, tu aurais pu créer une autre zone, avec tes deux PNJ dedans et mettre des ptits scripts de téléportation

mais je ne sait pas si ça change réellement quelque chose, l'important est que ca marche après tout
Lien direct vers le message - Vieux
Istrella
Reine
 
Mais le second argument de "CreateObject" est le blueprint et non le Tag, non ??
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
oops

en effet il me semble (j'ai bien dit il me semble) que c'est le Blueprint ^^ (j'ai la mémoire qui flanche moi )

aloreuh...

j'ai reproduit la même scène, il m'arrive exactement le même truc...


je ne voit pas non plus ou ça cloche, mais j'ai déjà vu une erreur dans ton script...

ici :

Code PHP:
CreateObject(OBJECT_TYPE_CREATURE,"gardiendelacrypt",lLoc,TRUE); 
je croit que tu voulais mettre ca:

Code PHP:
CreateObject(OBJECT_TYPE_CREATURE,"gardiendelacrypt",lLoc2,TRUE); 

Sinon, je pense que si cela ne marche pas c'est parce-qu'il y a un problème avec les variables...

Car la variable "apparition" ne doit pas bien se mettre, se qui fait que le script ne la trouve jamais, et donc si il fait nuit crée seulement le deuxième PNJ...

voila, c'est tout ce que je peut faire pour toi, car je suis aussi une nouille en script.
Lien direct vers le message - Vieux
Istrella
Reine
 
Ben en fait, j'ai recréé le pnj de jour et maintenant le script marche enfin !!

Et en effet tu as relevé une erreur merci pour tes conseils

Pourquoi cela ne marchais pas avant restera toujours un mystère

Merci pour tout !
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Effectivement, CreateObject utilise le ResRef et non le tag.
Et l'erreur est sournoise, mais je crois l'avoir vue

En fait si tu avais laissé ton script tourner pendant 2 jours (ingame hein ) ton PNJ de jour serait apparu au 2e matin.

Ce dont tu n'a pas tenu compte, c'est qu'au début ta variable jour_nuit ne vaut ni 1, ni 2. Elle est nulle.
Donc pendant le 1er jour, le script entrera continuellement dans le code après else (puisque jour_nuit != 1) et ce code prendra effet à partir du moment ou il fera nuit.
Et notamment, jour_nuit sera mise à 1, ce que veut dire que dès que le jour se lèvera, le code après if entrera alors en jeu (et ton PNJ de jour apparaitra).

Donc la modification la plus simple pour que cela marche, c'est de considérer que :
- jour_nuit = 1 : on fait apparaitre le PNJ de la nuit
- jour_nuit = 0 : on fait apparaitre le PNJ du jour

Comme ça, au lancement du module, ta variable jour_nuit sera automatiquement à 0 et tout sera dans l'ordre

Bon, mis à part ça, il y a moyen d'améliorer grandement la façon dont tu t'y prend, mais chaque chose en son temps

Ah oui, essaie de penser aux balises PHP la prochaine fois stp
Lien direct vers le message - Vieux
Istrella
Reine
 
ok, j'ai édité

Amélioré grandement ? Comment t'y serais-tu pris ?
ça pourrais me donner des idées, étant donné que je suis novice
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
mm, essai de chercher le sujet sur les loups garous, le script est le même
et puis dans ton cas, ton trigger ne sert à rien, puisque tu n'as besoin du onheartbeat, celui de la créature présente suffit amplement
pis bon, surement plein d'autre chose, mais déjà ca
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Ou le Onheartbeat de la zone, si les 2 PNJs se trouvent dans la même.

Et puis la syntaxe de ton script est correcte, mais un peu maladroite (sans vouloir te vexer hein ).

Par exemple :

Code PHP:
if(a)
{
    if(
b)
    {
        ...
    }

se simplifie en :

Code PHP:
if(&& b)
{
    ...

Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Pnj de jour, de nuit, problème de script..
   

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 20h52.
   

© 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