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:53:17


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 29/01/2006 18:28:32 Sujet du message : [Problème] Script de fuite

Salut a tous,

Je viens de faire un script pour que quand un pnj apercois un pj avec l'object "démon" dans son inventaire, il l'attaque...

Le probleme c'est que meme en possesion de l'objet, le pnj l'attaque pas (enfin les pnj car ils sont plusieurs ^^)

Voici le script :

NWScript :
void main()
{
object oNPC = GetObjectByTag ("GARDIEN");
object oPC = GetLastPerceived ();
object oObject = GetItemPossessedBy(oPC, "DEMON");


if (GetIsPC(oPC))
{
  if (oObject == OBJECT_SELF)
  {
    object oGuerrier = GetObjectByTag ("GUERRIER");
    object oGardeVille = GetObjectByTag ("GARDE");

    ActionSpeakString("Fuyez, des demons sont entres dans la ville !");
    DelayCommand(4.0, AssignCommand(oNPC, SpeakString("Venez mes amis, allons detruire cette vermine !")));
    DelayCommand(4.5, AssignCommand(oGuerrier, SpeakString("Que les anges t'emportent demon !")));
    DelayCommand(5.0, ActionAttack(oPC));
    DelayCommand(5.0, AssignCommand(oGuerrier, ActionAttack(oPC)));
    DelayCommand(5.0, AssignCommand(oGardeVille, ActionAttack(oPC)));
    }
}
}
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.


Si quelqu'un pouvait m'aider a resoudre mon probleme ce serait sympas ...


Merci d'avance.
Mork
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 29/01/2006 18:52:00 Sujet du message :

oObject c'est l'item, ça peut pas être OBJECT_SELF...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 29/01/2006 18:54:59 Sujet du message :

Pas etonnant tu as un test foireux dedans
NWScript :
if (oObject == OBJECT_SELF)
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.


En gros tu regarde si l'objet du PJ (tag demon) est le même objet que le PNJ lui même...
Je pense que tu sais comment changer ça avec != OBJECT_INVALID.

Sinon tes pnj pourquoi tu va les chercher par tag ?
Tu devrait le mettre là ton OBJEC_SELF, et placer le script sur les deux PNJ (je te conseille de ne pas virer totalement celui de bioware ou d'une IA perso).
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 29/01/2006 18:55:34 Sujet du message :

Que faut il que je mette ? TRUE ?


EDIT Oups, on a presque poste en meme temps Smile
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 29/01/2006 19:11:53 Sujet du message :

Ben j'y arrive toujours pas ...
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 29/01/2006 19:44:31 Sujet du message :

Ton script, tu l'as mis où ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 30/01/2006 16:23:47 Sujet du message :

Je pense que le début du script comme ca c'est bon
NWScript :
if( GetIsPC(oPC) ){
  if( GetIsObjectValid(oObject) ){
// action
  }
}
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.

C'est bien sur une partie du script gérant le OnPerception du Gardien
Ah, autre chose...
Je te conseille d'utiliser
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.

plutôt, cela limite à la zone en cours.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 04/02/2006 00:03:21 Sujet du message :

Je propose cette correction ^^ faites en ce que vous souhaitez , elle est a mettre dans le OnPerception de votre guarde vala c tt et ça marche^^


NWScript :

void main()
{
int i = 0;
object oPC = GetLastPerceived();
string TagItem = "obj1";

  if(GetIsPC(oPC)==FALSE)
  {
  return;
  }
object PremItem = GetFirstItemInInventory(oPC);


  while(PremItem != OBJECT_INVALID)
  {
    if(GetTag(PremItem)==TagItem)
    {
    i = 1;
    }
  PremItem = GetNextItemInInventory(oPC);
  }

  if(i==1)
  {
  SpeakString("Mon dieu un demon !! vite !! YYAAAAHH.");
  DelayCommand(2.0f,AssignCommand(OBJECT_SELF,ActionAttack(oPC,FALSE)));
  }
}


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.



BYEBYE
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 05/02/2006 13:21:25 Sujet du message :

Ok, merci a tous !
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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.877ms