JeuxOnLineForumsPlusConnectés : 467 (sites) | 924 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Récuperer une variable d'un autre objet ? RSS
   
Répondre
Partager Outils Rechercher
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
C'est corrigé ^^;
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Bon ben le PNJ veut plus bouger du tout^^

Par ailleurs, POST marche pas lorsqu'il y a des WP normaux avant
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Ca, ca prouve que le script est bon. Mais il est mal pensé
(oops, echec critique en Diplo ^^

En fait, ton PnJ se crée, et declenche son OnSpawn. Il verifie que la variable est à 1. Elle est a 0, il ne fait donc rien. (=> Resultat Ok)
Puis, ton Pj entre dans la zone, declenche le OnEnter, et met la variable a 1. (=> Ok)

Et puis plus rien (le OnSpawn ne s'executant que sur le spawn du PnJ ^^)

Donc, plusieurs solutions:

- Soit tu verifie la variable a intervalles fixes (via un OneartBeat, par exemple. => Bof Bof, et peu fiable. (et accesoirement, consomme du temps machine pour rien)

- Soit tu verifie la variable non pas sur le OnSpawn, mais sur le OnPerception (en modifiant un peu le script), et ton PnJ verifie la variable lorsqu'il voit (ou entends, suivant ce que tu veux) le PJ. => C'est deja mieux.

- Soit, sur ton OnEnter, tu assigne au PnJ l'action de parcourir les WayPoint. => Ca, c'est ce que je ferait, plutot ^^

Voila, desolé de ne pas t'avoir prevenu avant, mais si on y a perdu un peu de temps, je pense que ca te permet de mieux cerner les differences entres les scripts, les evenement, et ce que tu veux que ca fasse ^^
PS : Essaye de faire de toi même une des 2 solutions grace a ce que tu a vu dans les tuto, et poste les, que l'on puisse t'aider a corriger
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Oki c'est parti
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Pour la première solution, pas de problème (merci le tuto d'amaranthe^^)

Rien besoin de mettre dans onEnter, supprimer WalkWayPoints du onspawn du PNJ, et ajouter ça dans le OnPerception du PNJ:

void main()

{

object oVu=GetLastPerceived();

if (GetIsPC(oVu))
WalkWayPoints();

}


et ça marche^^
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Alors, ca fait comment, d'avoir realisé le script, l'avoir compris, et l'avoir corrigé ?
Lien direct vers le message - Vieux
riprip
Roi / Reine
 




(par contre je sèche sur le second problème, pour la simple raison que walkwaypoints n'est pas une commande possible dans les scripts de zone...)
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
C'est a dire ? Arreter le PNJ a la fin ?

Tu cree un trigger sous le WP de fin, et dedans, tu fais un script qui verifie si l'objet qui entre est le PnJ, et si oui, tu fais un ClearAllActions
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Citation:
Provient du message de eMRaistlin

- Soit, sur ton OnEnter, tu assigne au PnJ l'action de parcourir les WayPoint. => Ca, c'est ce que je ferait, plutot ^^


Je voulais dire que pour faire marcher le pnj à partir de OnEnter, c'est pas évident (pas d'usage possible de walwaypoint il me semble, dans les scripts de zone)..




PS: (nickel l'idée du trigger )
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
En fait, si tu fait un

Code:
if (GetIsPC(GetEnteringObejct()))
    {
    WalkWayPoint();
    }
c'est sur que ca marchera pas, car en francais, ca donne : si l'objet qui rentre dans toi (la zone) est un PC, alors parcours les Waypoints...

Or, une zone ne peut pas se deplacer. Il faut donc assigner la commande au NPC de faire WalkWaypoint :

Code PHP:
if (GetIsPC(GetEnteringObejct()))
    {
    
AssignCommand(oNPC,WalkWayPoint());
    } 
Le pb : reste a trouver le NPC. A toi de rejouter le GetObjectByTag ^^
Lien direct vers le message - Vieux
Avatar de Caarheim/Mougeot
Caarheim/Mougeot [Epsi]
Alpha & Oméga
 
Avatar de Caarheim/Mougeot
 
Je peux essayer de donnée une reponse avant que eMR reponde ............. arf trop tard :/
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
Oui j'avais fait un GetObjectByTag() dans mon coup d'essai^^


par contre je connaissais pas AssignCommand et je sens que ça va souvent me servir ça^^


Sinon c'est possible de superposer un trigger sur la zone de transition d'arrivée dans la zone ? dès que les PJ arrive et marche donc dessus, paf un script du trigger donne l'ordre au pnj se mettre en route^^ c'est viable en théorie ça ?



EDIT:

Pas possible de compiler ton programme dans OnEnter de la zone:

ERREUR : UNDEFINED IDENTIFIER (WalkWayPoint)
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Ca doit etre wakwaypointS ^^
Lien direct vers le message - Vieux
riprip
Roi / Reine
 
non pareil...

Dans la liste des fonctions accessible pour les scripts de zone, WalkWayPoints n'apparaît pas...

EDIT:

En tâtonnant j'ai ajouté ça au début du script et maintenant ça se compile^^

#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

EDIT:

ça marche !!!!!!!!
:bouffon:

Merci ! En plus j'ai bcp appris^^
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Tu n'as pas rajouté le
Code PHP:
#include "NW_I0_GENERIC" 
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Récuperer une variable d'un autre objet ?
   

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 09h36.
   

© 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