La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 22:16:58


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 02/06/2004 15:07:12 Sujet du message : Une liste de production

Alors voila

j'aimerai que quand le joueur marche sur le déclencheur il crée 6 objets placable(qui ont comme ResRefBluprint: mure) sur 6 Waypoint différent(qui on comme tag(WP_mure1, WP_mure2 etc... jusqua WP_mure6)

Et aussi des que le PJ remarche une nouvelle foi sur ce déclencheur alors il fait disparaitre les objets

Mais comme je suis flemmare Embarassed Embarassed je me demande si on pouvait pas utiliser des boucles pour faire ca(surtout que je vais en faire bien plus que 6 plus tard Smile )

J'ai essayé un peu :
NWScript :

void main()
{
int i = 1;
object oPC = GetEnteringObject();
string sMure = "mure";
location lWP_mure = GetLocation(GetWaypointByTag("WP_mure"+IntToString(i)));
object oMure = GetObjectByTag("Mure");

if (GetIsPC(oPC))// verifie si c'est un joueur
{

    if (GetLocalInt(OBJECT_SELF, "MURE")==0)
    {
        while (i<7)// tant que i est inferieur a 7 alors on cree les objets sur les diffrents waypoint (par exemple si i egale 4 alors on cree sur le waypoint WP_mure4)
        {
        CreateObject(OBJECT_TYPE_PLACEABLE, sMure, lWP_mure);
        i+1;
            if (i==6)
            SetLocalInt(OBJECT_SELF, "MURE", 1);
//par exemple si i egale 2 alors ca cree l'objet au waypoint WP_mure2
        }
    }


    else if (GetLocalInt(OBJECT_SELF, "MURE")==1)// ici c'est quand on remarche dessu une 2eme fois
    {
        while (i==6 || i>0)//Tan que i est compris entre 0 et 6(parce que ya 6 objets sur 6 waypoints) alors on detrui les objets
        {
        DestroyObject(oMure);
        i-1;
        SetLocalInt(OBJECT_SELF, "MURE", 0);
        }
    }
}
}

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.


Le script compile bien mais dans le jeu lorsque le joueur marche dessus ca rame et ya marqué "TOO MANY INSTRUCTION"

Si quelqu'un pouvait m'aider ca serait sympa Very Happy
_________________
BOUH! (je vous ai fait peur ??) désolé

Vive moi
Pas vive Securom
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eldric
Novice
Inscrit le: 26 Oct 2003
Messages: 17
Répondre en citant
Posté le : 02/06/2004 16:43:30 Sujet du message :

Cette phrase : "TOO MANY INSTRUCTION", signifie qu'une de tes boucles et soit infinie soit quelle prend en charge trop de paramétre.

L'erreur provient surement du fait que tu n'enregistre pas tes opération sur ton compteur i. tu ne fait que l'opération.
Le script corrigé donne ça :

NWScript :

void main()
{
int i = 1;
object oPC = GetEnteringObject();
string sMure = "mure";
location lWP_mure = GetLocation(GetWaypointByTag("WP_mure"+IntToString(i)));
object oMure = GetObjectByTag("Mure");

if (GetIsPC(oPC))// verifie si c'est un joueur
{

if (GetLocalInt(OBJECT_SELF, "MURE")==0)
{
while (i<7)// tant que i est inferieur a 7 alors on cree les objets sur les diffrents waypoint (par exemple si i egale 4 alors on cree sur le waypoint WP_mure4)
{
CreateObject(OBJECT_TYPE_PLACEABLE, sMure, lWP_mure);
i++;
if (i==6)
SetLocalInt(OBJECT_SELF, "MURE", 1);
//par exemple si i egale 2 alors ca cree l'objet au waypoint WP_mure2
}
}


else if (GetLocalInt(OBJECT_SELF, "MURE")==1)// ici c'est quand on remarche dessu une 2eme fois
{
while (i<7 && i>0)/*Egalement une erreur ici la condition sera toujours vrai, je modifie aussi Tan que i est compris entre 0 et 6(parce que ya 6 objets sur 6 waypoints) alors on detrui les objets */
{
DestroyObject(oMure);
i--;
SetLocalInt(OBJECT_SELF, "MURE", 0);
}
}
}
}

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.

_________________
Mieux vos régner en maitre en Enfer plutôt que servir au Paradis !!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 02/06/2004 18:38:13 Sujet du message :

Alors 2 petites choses:

1 Le jeu ne bug plus (ya plus marqué "TOO MANY INSTRUCTIONS" Ca, c'est Youpi ! )

2 MAIS (eh oui ya toujours des mais (malheureusement Sad ))

quand je marche sur le déclencnheur ca crée l'objet qu'a un endroit (WP_mure1) alors que je veu que ca crée l'objet sur les 6 waypoint(WP_mure1, WP_mure2, WP_mure3, WP_mure4, WP_mure5,WP_mure6)
Et aussi Quand je re-marche dessu ca recrée l'objet par dessus le 1er(pas l'effet voulue Confused )alors que je veu que ca détruise les objets

Donc c'est pas tout a fait au point Confused
_________________
BOUH! (je vous ai fait peur ??) désolé

Vive moi
Pas vive Securom
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eldric
Novice
Inscrit le: 26 Oct 2003
Messages: 17
Répondre en citant
Posté le : 02/06/2004 19:39:45 Sujet du message :

Je n'ai fait que corriger les erreurs du "TOO MANY INSTRUCTION" mais bon je modifie tout cela car ce script est totalement faux Sad , voila une correction ça devrait marcher mieux Very Happy :

NWScript :
void main()
{
int i = 1;
object oPC = GetEnteringObject();
string sMure = "mure";
location lWP_mure;
object oMure = GetObjectByTag("Mure");

if (GetIsPC(oPC))// verifie si c'est un joueur
{
if (GetLocalObject(OBJECT_SELF, "MURE1")==OBJECT_INVALID)
{
while (i<7)// tant que i est inferieur a 7 alors on cree les objets sur les diffrents waypoint (par exemple si i egale 4 alors on cree sur le waypoint WP_mure4)
{
lWP_mure = GetLocation(GetWaypointByTag("WP_mure"+IntToString(i)));
SetLocalObject(OBJECT_SELF,"MURE"+IntToString(i),CreateObject(OBJECT_TYPE_PLACEABLE, sMure, lWP_mure));
i++;
}
}
else if (GetLocalObject(OBJECT_SELF, "MURE1")!=OBJECT_INVALID)// ici c'est quand on remarche dessu une 2eme fois
{
i=6;
while (i<7 && i>0)/*Egalement une erreur ici la condition sera toujours vrai, je modifie aussi Tan que i est compris entre 0 et 6(parce que ya 6 objets sur 6 waypoints) alors on detrui les objets */
{
if (GetLocalObject(OBJECT_SELF, "MURE"+IntToString(i))!=OBJECT_INVALID)
{
SetPlotFlag(GetLocalObject(OBJECT_SELF, "MURE"+IntToString(i)),FALSE);
DestroyObject(GetLocalObject(OBJECT_SELF, "MURE"+IntToString(i)));
DeleteLocalObject(OBJECT_SELF, "MURE"+IntToString(i));
}
i--;
}
}
}
}
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.

_________________
Mieux vos régner en maitre en Enfer plutôt que servir au Paradis !!
 
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 44.201ms