La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 18:34:57


  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 : 11/04/2006 15:51:34 Sujet du message : [Résolu]Changer de faction un groupe de pnj

Salut, voilà je veux faire en sorte qu'après un dialogue, une faction que j'ai créé pour mon groupe de pnj passe en hostile. Ma faction est composée (pour l'instant) d'un sorcier de quatre ogres squelettes. Le joueur à un dialogue avec le sorcier et à la fin sur action consquente du fin de dialogue je met ça:

NWScript :
void main()
{
object oSquelette=GetObjectByTag("VP_SquelettedeYazared");
object oCreature=GetFirstObjectInArea();

ChangeToStandardFaction(OBJECT_SELF, STANDARD_FACTION_HOSTILE);
DetermineCombatRound();

while(GetIsObjectValid(oCreature)==TRUE)
    {
    if(oCreature==oSquelette)
        {
        ChangeToStandardFaction(oSquelette, STANDARD_FACTION_HOSTILE);
        }
    oCreature = 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.


il compile mais il n'y a que le sorcier qui change de faction et si je fais ça:

NWScript :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.


ça marche mais que pour un squelette, les autres ne changent pas de factions...

Vous savez comment je peux faire???

Viduc
_________________
Dernière édition par Viduc de Papironda le 24/05/2006 17:36:08; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 11/04/2006 16:09:24 Sujet du message :

Salut !

Tu as deux possibilités, tout dépend de ce que tu veux faire :

- Soit tu fais en sorte que tous les membres de ta faction personnelle change de faction pour devenir membre de la faction "Hostile".
> Tu fais une boucle qui prend en compte tous les membres de cette faction et chaque fois tu opère un changement.

Le problème, (mais c'est peut-être ce que tu veux), est que si un PNJ populace, marchand ou défenseur croise un membre de cette faction, il sera attaqué !

- Soit tu fais en sorte que tous les membres de cette faction personnalisée considèrent ton joueur comme un ennemi.
> tu utilises la fonction :
NWScript :
AdjustFactionReputation(object oTargetCreature,object oMemberOfSourceFaction,int nAdjustment);
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.


Tous les membres de ta faction personnalisé seront "hostile" mais vis à vis du joueur seulement.

A bientôt !
 
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 : 11/04/2006 17:01:19 Sujet du message :

en fait c'est ta première suggestion qui est la bonne... et je pensais avoir fait une boucle justement avec mon premier sricpt, après vérif, il passe bien le sorcier en hostile et le premier squelette... je pige pas ma boucle s'arrête à lui... c'est pas logique...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 11/04/2006 17:53:44 Sujet du message :

Si c'est logique : tu lui dis que oSquelette c'est l'objet de Tag "VP_SquelettedeYazared", il est pas censé se douter qu'il y en a plusieur, donc il chope le premier qu'il trouve. Et donc c'est celui là qui va changer de faction et pas les autres. Fais plutot otn test sur le tag de tes squelettes :

NWScript :
void main()
{
string sSquelette="VP_SquelettedeYazared";
object oCreature=GetFirstObjectInArea();

ChangeToStandardFaction(OBJECT_SELF, STANDARD_FACTION_HOSTILE);
DetermineCombatRound();

while(GetIsObjectValid(oCreature))
{
if(GetTag(oCreature)==sSquelette)
{
ChangeToStandardFaction(oCreature, STANDARD_FACTION_HOSTILE);
}
oCreature = 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.


Je bouclerai plutot avec un GetNearetObject(OBJECT_TYPE_CREATURE, blabla).. mais j'ai la flemme de regarder les paramètres, regarde, ça change pas grand chose dans le script de toute façon.
 
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 : 11/04/2006 18:58:05 Sujet du message :

impec merci, je vais tester mais je pense que c'est ça... merci^^

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 : 12/04/2006 13:22:20 Sujet du message :

salut, en faite il y a toujours un pb... au test il m'envoi le message too many instruction sur mon script en question lors de sa réalisation....

J'ai testé en en mettant qu'un squelette et pareil.... j'ai bien vérifier mais tag et resref et tout est bon...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 12/04/2006 14:00:36 Sujet du message :

Salut !


Bon, voilà la bonne boucle pour ce que tu veux faire, l'ennui étant que tous les membres de ta factions devront avoir le même Tag ( sauf l'hôte du dialogue) , mais c'est ce que tu veux je pense.

NWScript :
void main()
{

    int n;
object oSquelette=GetObjectByTag("VP_SquelettedeYazared",n);


ChangeToStandardFaction(OBJECT_SELF, STANDARD_FACTION_HOSTILE);


            for(n = 0; oSquelette!=OBJECT_INVALID ; n++)
                    {

            oSquelette=GetObjectByTag("VP_SquelettedeYazared",n);
              ChangeToStandardFaction(oSquelette, STANDARD_FACTION_HOSTILE);
          }


}
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é Ignorer l'utilisateur
 
Starkanas
Grand Chevalier
Inscrit le: 14 Mai 2004
Messages: 110
Répondre en citant
Posté le : 12/04/2006 14:13:33 Sujet du message :


Citation :
// DetermineCombatRound(); je ne sais plus quel est l'include ^^ enlève les // si tu le connais.
Je pense que c'est :

NWScript :
#include "nw_i0_generic"
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.


Wink
_________________
LSDA 3ème Âge : Serveur RôlePlay basé sur les écrits de J.R.R.Tolkien ...
 
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 : 13/04/2006 01:24:51 Sujet du message :

cool!!! ça marche, impec merci tout le monde!!

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 : 26/04/2006 17:43:42 Sujet du message :

salut, encore une petit précision.... comment fonction le DertermineCombatRound, j'ai essayé ça:

NWScript :
DetermineCombatRound(#include "NW_I0_GENERIC");
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.


mais ça compile pas, j'ai essayé d'autre truc mais rien ne marche, je ne comprends pas trop comment ça fonction ce truc...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 26/04/2006 17:48:41 Sujet du message :

le include il faut le mettre en en-tête de ton script, avant le void main et les déclarations de fonction éventuelles. :


NWScript :

#include "nom du script"

int FonctionTruc();

void main()
{


}

FonctionTruc()
{


}

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é Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 26/04/2006 23:58:56 Sujet du message :

Ha oki je vois!!! j'avais déjà vu ça ailleurs et je me demandais justement à quoi ça servait^^


Merci pour l'info!!!

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 66.631ms