La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 30/01/2025 07:57:37
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Damz Grand Chevalier Messages: 102 |
J'ai remarquer une sorte de problème lorsque l'on utilisais des switchs en faisant des déclarations.
Je vais donner un exemple : Le code suivant fait cette erreur de compilation : SKIPPING DECLARATION VIA "case" STATEMENT DISALLOWED. (ligne : case SPELL_RESURRECTION:) NWScript :
void main() { int nSpell = GetSpellId(); switch (nSpell) { case SPELL_TENSERS_TRANSFORMATION: effect eFail = EffectSpellFailure(); break; case SPELL_RESURRECTION: break; } } Par contre si on sort la déclaration du case l'erreur de compilation n'a plus lieu. NWScript :
void main() { int nSpell = GetSpellId(); effect eFail; switch (nSpell) { case SPELL_TENSERS_TRANSFORMATION: eFail = EffectSpellFailure(); break; case SPELL_RESURRECTION: break; } } Bien sûr ce problème semble assez mineur vu qu'il peut toujours être régler en remplaçant le switch et les case par des if et des else. Mais je me demandais si certain d'entre vous avez remarquer ce problème et trouver une autre solution et une explication logique à cette erreur. Il est possible que j'ai mal chercher et que je n'ai pas trouver un topic qui parle déjà de se problème dans ce cas là je m'en excuse. |
Revenir en haut | |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
Le principale problème viendrait du fait d'utiliser une variable définie(créée) dans un if, un else ou dans un case car rien n'assure que le programme passera par là et donc la variable peut ne pas exister.
|
Revenir en haut | |
Damz Grand Chevalier Messages: 102 |
Oui mais dans ce cas là l'erreur ce retrouverai quand on remplace le switch et les case par des if.
De plus j'ai remarqué que le code suivant ne provoquais pas d'erreur NWScript : void main() { int nSpell = GetSpellId(); switch (nSpell) { case SPELL_RESURRECTION: break; case SPELL_TENSERS_TRANSFORMATION: effect eFail = EffectSpellFailure(); break; } } |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Peut-être que tu éviterais ce problème si tu déclarais ta variable dès le début du script, mais sans lui affecter de valeur.
Et seulement ensuite, dans les différents cas, tu attribues une valeur à la variable déjà déclarée. J'ai pas testé mais faudrait essayer. Edit : au temps pour moi, c'est ce que tu as fait dans le second exemple, et ça fonctionne _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
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