La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/11/2024 04:45:08


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 19/08/2006 17:52:56 Sujet du message : [Résolu]Pb de localisation d'objet dans une zone

Salut à tous... voilà il se passe un truc bizzard. Je suis en train de faire une zone qui est constituée d'une rue principale qui la traverse, et de chaque côté une Armée de Smith (l'agent de Matrix oui oui^^). J'ai prévu un déclencheur au milieu de la rue pour que lorsqu'un PJ y entre, tous les Smith disent "c'est inneluctable Mr Anderson" puis passent en hostile et attaquent. Le scipt et le tout fonctionne sauf que seul les smith qui sont à gauche de l'area sont concernés. ceux de droites ne font rien. J'ai testé avec juste un smith à droite et rien. J'ai testé un module neutre (sans hack ni rien) dans une zone neutre et pareil... ma zone fait 6x6 et en gros seul les objets contenus dans une bande de 2 de larges sur la longueur fonctionnent... pour identifier les objets j'utilise ce script:

NWScript :
void main()
{
object oNPC=GetFirstObjectInArea();

    while (GetTag(oNPC)=="vp_q1_smith")
        {
AssignCommand(oNPC,ActionSpeakString("c'est inneluctable Mr Anderson"));
ChangeToStandardFaction(oNPC,STANDARD_FACTION_HOSTILE);


oNPC=GetNextObjectInArea();
        }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


donc là variment je pige pas... donc si vous avez une idée, quelque chose qui pourrait m'aider à faire la lumière la dessus...

Viduc
_________________
Dernière édition par Viduc de Papironda le 19/08/2006 22:13:20; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Anthraxcite
Légende vivante
Inscrit le: 12 Juin 2004
Messages: 372
Localisation: Belgique
Répondre en citant
Posté le : 19/08/2006 19:17:39 Sujet du message :

Il suffit d'un objet avec un tag différent du tag que tu recherches pour que la boucle s'arrète. Utilise
NWScript :
GetNearestObjectByTag(
    string sTag,
    object oTarget = OBJECT_SELF,
    int nNth = 1
);
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

Boucle en incrémentant nNth jusqu'à ce que tu tombes sur un objet invalide.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 19/08/2006 20:45:16 Sujet du message :

en effet ça marche un peu mieu... mais il y en a toujours un ou deux qui reste en faction d'origine et qui se font tapper dessus par les autres lol...

j'ai fait ça comme script:

NWScript :
void main()
{
object oNPC=GetFirstObjectInArea();
int nNth=1;

    while (GetTag(oNPC)=="vp_q1_smith")
        {
AssignCommand(oNPC,ActionSpeakString("c'est inneluctable Mr Anderson"));
ChangeToStandardFaction(oNPC,STANDARD_FACTION_HOSTILE);
nNth++;

oNPC=GetNearestObjectByTag("vp_q1_smith",OBJECT_SELF,nNth);
        }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


faut il que je détermine mon oNPC du départ autrement? ou faut il que je change ma condition while?

merci à toi en tout cas!!!

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 19/08/2006 21:19:18 Sujet du message :

Oui, le First doit être concerné aussi
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 19/08/2006 21:54:38 Sujet du message :

oui je vois bien le pb mais je le remplace par quoi? y'a pas de trux genre GetFirstObjectByTag donc comment je fais?

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 19/08/2006 22:12:43 Sujet du message :

j'suis trop débille!!!!!

en faite c'était beaucoup plus simple et en plus je le savais.... le premier script était bon suffisait de rajouter:

NWScript :
void main()
{
object oNPC=GetFirstObjectInArea();
int nNth=1;

    while(oNPC!=OBJECT_INVALID)
        {
        if(GetTag(oNPC)=="vp_q1_smith")
            {
AssignCommand(oNPC,ActionSpeakString("c'est inneluctable Mr Anderson"));
ChangeToStandardFaction(oNPC,STANDARD_FACTION_HOSTILE);
            }
oNPC=GetNextObjectInArea();
        }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


enfin bon merci à vous les gars pour y avoir réfléchit^^.. et heu.... désolé^^...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Anthraxcite
Légende vivante
Inscrit le: 12 Juin 2004
Messages: 372
Localisation: Belgique
Répondre en citant
Posté le : 20/08/2006 09:03:10 Sujet du message :

Ca marche aussi très bien comme ça et sans parcourir l'entiertè des objets de la zone :
NWScript :
void main()
{
    object oSmith = GetNearestObjectByTag("vp_q1_smith");
    int nNth=2;
    while(oSmith!=OBJECT_INVALID)
    {
        AssignCommand(oSmith,ActionSpeakString("c'est inneluctable Mr Anderson"));
        ChangeToStandardFaction(oNPC,STANDARD_FACTION_HOSTILE);
        oSmith=GetNearestObjectByTag("vp_q1_smith",OBJECT_SELF,nNth);
        nNth++;
    }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 20/08/2006 11:42:18 Sujet du message :

merci Anthraxcite, je vais testé, en effet ça risque d'être moins lourd comme ça je pense...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 37.282ms