La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 03/05/2024 23:12:44


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
L'Erudit
Seigneur
Inscrit le: 26 Oct 2005
Messages: 167
Répondre en citant
Posté le : 19/02/2006 17:59:45 Sujet du message : Problème de syntaxe

Coucou, pour alléger un script, j'aimerais suivre cette syntaxe:

NWScript :
object oPJ = GetPCSpeaker();
object oCompagnonBree_01, oCompagnonBree_02, oCompagnonBree_03;
object oCompagnonFornost_01, oCompagnonFornost_02, oCompagnonFornost_03;
object oCompagnonGalbigathol_01, oCompagnonGalbigathol_02, oCompagnonGalbigathol_03;
object oCompagnonMithlond_01, oCompagnonMithlond_02, oCompagnonMithlond_03;
object oCompagnonTharbad_01, oCompagnonTharbad_02, oCompagnonTharbad_03;
int nRace = GetRacialType(oPJ);
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.

NWScript :
switch (nRace)
  {
    // Nain
    case 0: oCompagnonBree_01, oCompagnonFornost_01, oCompagnonGalbigathol_01, oCompagnonMithlond_01, oCompagnonTharbad_01
                = GetNearestObjectByTag("CompagnonNain", oPJ, 1);
            oCompagnonBree_02, oCompagnonFornost_02, oCompagnonGalbigathol_02, oCompagnonMithlond_02, oCompagnonTharbad_02
                = GetNearestObjectByTag("CompagnonNain", oPJ, 2);
            oCompagnonBree_03, oCompagnonFornost_03, oCompagnonGalbigathol_03, oCompagnonMithlond_03, oCompagnonTharbad_03
                = GetNearestObjectByTag("CompagnonNain", oPJ, 3); break;
    // Elfe
    case 1: oCompagnonBree_01, oCompagnonFornost_01, oCompagnonGalbigathol_01, oCompagnonMithlond_01, oCompagnonTharbad_01
                = GetNearestObjectByTag("CompagnonElfe", oPJ, 1);
            oCompagnonBree_02, oCompagnonFornost_02, oCompagnonGalbigathol_02, oCompagnonMithlond_02, oCompagnonTharbad_02
                = GetNearestObjectByTag("CompagnonElfe", oPJ, 2);
            oCompagnonBree_03, oCompagnonFornost_03, oCompagnonGalbigathol_03, oCompagnonMithlond_03, oCompagnonTharbad_03
                = GetNearestObjectByTag("CompagnonElfe", oPJ, 3); break;
    // Hobbit
    case 3: oCompagnonBree_01, oCompagnonFornost_01, oCompagnonGalbigathol_01, oCompagnonMithlond_01, oCompagnonTharbad_01
                = GetNearestObjectByTag("CompagnonHobbit", oPJ, 1);
            oCompagnonBree_02, oCompagnonFornost_02, oCompagnonGalbigathol_02, oCompagnonMithlond_02, oCompagnonTharbad_02
                = GetNearestObjectByTag("CompagnonHobbit", oPJ, 2);
            oCompagnonBree_03, oCompagnonFornost_03, oCompagnonGalbigathol_03, oCompagnonMithlond_03, oCompagnonTharbad_03
                = GetNearestObjectByTag("CompagnonHobbit", oPJ, 3); break;
    // Hildo
    case 6: oCompagnonBree_01, oCompagnonFornost_01, oCompagnonGalbigathol_01, oCompagnonMithlond_01, oCompagnonTharbad_01
                = GetNearestObjectByTag("CompagnonHildo", oPJ, 1);
            oCompagnonBree_02, oCompagnonFornost_02, oCompagnonGalbigathol_02, oCompagnonMithlond_02, oCompagnonTharbad_02
                = GetNearestObjectByTag("CompagnonHildo", oPJ, 2);
            oCompagnonBree_03, oCompagnonFornost_03, oCompagnonGalbigathol_03, oCompagnonMithlond_03, oCompagnonTharbad_03
                = GetNearestObjectByTag("CompagnonHildo", oPJ, 3); break;
  }
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 compilateur refuse cette syntaxe. Or j'aimerais éviter d'avoir à écrire une ligne pour chaque objet, auquel je souhaite donner une même valeur. J'ai bien essayé de mettre des "object" devant, mais impossible d'en mettre pour chacune des "case". Est-il possibledee résoudre ce problème, ou dois-je me résigner à écrire grossièrement?
Merci de votrte aide.
 
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 : 20/02/2006 11:41:59 Sujet du message :

NWScript :
object oPJ = GetPCSpeaker();
int nRace = GetRacialType(oPJ);
string sComp;
switch (nRace)
  {
    // Nain
    case 0: sComp = "Nain";break;
    case 1: sComp = "Elfe";break;
    case 3: sComp = "Hobbit";break;
    case 6: sComp = "Hildo";break;
  }

object oCompagnonBree_01, oCompagnonFornost_01, oCompagnonGalbigathol_01, oCompagnonMithlond_01, oCompagnonTharbad_01 = GetNearestObjectByTag("Compagnon"+sComp, oPJ, 1);
object oCompagnonBree_02, oCompagnonFornost_02, oCompagnonGalbigathol_02, oCompagnonMithlond_02, oCompagnonTharbad_02 = GetNearestObjectByTag("Compagnon"+sComp, oPJ, 2);
object oCompagnonBree_03, oCompagnonFornost_03, oCompagnonGalbigathol_03, oCompagnonMithlond_03, oCompagnonTharbad_03 = GetNearestObjectByTag("Compagnon"+sComp, oPJ, 3);
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 pense que ça marche. Mais je saisi pas bien pourquoi utiliser 5 variables pour désigner le même objet.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
L'Erudit
Seigneur
Inscrit le: 26 Oct 2005
Messages: 167
Répondre en citant
Posté le : 20/02/2006 13:49:46 Sujet du message :

Bien trouvé! J'avais opté pour une autre solution, en pensant que c'était impossible à réaliser, mais tu m'as prouvé le contraire.

Ta question est assez pertinente, il est possible que je n'aie finalement pas besoin de définir plusieurs variables, je vais me pencher dessus.

Merci encore pour l'aide.
 
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 : 20/02/2006 15:03:13 Sujet du message :

o O ca me fait penser à CTM tout ça, que d'excellents souvenirs !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
L'Erudit
Seigneur
Inscrit le: 26 Oct 2005
Messages: 167
Répondre en citant
Posté le : 20/02/2006 21:01:07 Sujet du message :

Oui, oui c'est bien ça Wink !
 
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 41.93ms