Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Créer des constantes

Par Azrael07 le 13/1/2003 à 22:57:03 (#3014264)

Bon je sais que les constantes sont définient dans le fichier nwscript

le problème, c'est que si j'en ajoute, ou si je met un #include, le compilateur se met a buggé affreusement, jsuqu'a ce que je restaure le fichier

y'a t'il moyen de corriger ce bug ?

merci d'avance

Par eMRaistlin le 13/1/2003 à 23:12:54 (#3014410)

Je t'avoue etre assez surpris : personnelemnt, mes constantes ajoutées au polymorphisme ne posent pas de pb...

essaye de compiler une fois en enlevant les #Declare... qui ont été rajoutés en 1.27, puis remet les, pour voir...

Par Azrael07 le 13/1/2003 à 23:52:05 (#3014768)

euhhhhh ??????????

#declare ?????? je vois ca nul part moi ?

bon en résumé, ta méthode est simplement d'ajouter des lignes a celles qui sont présente ?

y a t'il une taille maximale pour les nom de constantes ? c'est peut etre sur ce point que j'ai fait une erreur, je viens de tester avec une seule nouvelle constante, ca a l'air de marcher, par contre elle n'apparait pas dans la liste des constantes dans la fenetre a droite du script editor. C normal ?

Par Azrael07 le 15/1/2003 à 13:56:51 (#3027204)

bon je remonte le post pasque ca me pose vraimnet problème.


int ACTION_TYPE_ATTACK = 1;
int ACTION_TYPE_CAST_SPELL_AT_OBJECT = 2;
int ACTION_TYPE_CAST_SPELL_AT_LOCATION = 3;
int ACTION_TYPE_CAST_FAKE_SPELL_AT_OBJECT = 4;
int ACTION_TYPE_CAST_FAKE_SPELL_AT_LOCATION = 5;
int ACTION_TYPE_CLOSE_DOOR = 6;
int ACTION_TYPE_COUNTER_SPELL = 7;
int ACTION_TYPE_DO_COMMAND = 8;


donc j'ai mis un fichier de nom 4a_constfile (ce qu'il y a ci dessus n'est qu'un extrait, y'a 38 constantes en tout, joint au nwscripts par :

#include "4a_constfile"

je sauvegarde les 2 fichiers, puis toutes les compilation a partir de ce moment font des erreurs de tout types, sur n'importe quelles lignes et sur des scripts se compilant correctement normalement.

sans ces constantes je vais pas aller bien loin, est ce que quelqu'un a une idée sur la question ?

Par Skanzo Sylan le 15/1/2003 à 14:25:20 (#3027455)

Ben sans vraiment répondre à ta question, je dirais que tu pourrais te passer de ces constantes et te servir seulement des numéros.
C'est ce que j'ai fait pour visualeffects.2DA. Dans mon script, je me suis pô fait chier, j'ai direct mis le numéro 307 :rolleyes:

Copie-colle ton include et un script complet l'utilisant, p'tet que... :)

Par eMRaistlin le 15/1/2003 à 14:36:38 (#3027574)

Je ne sais pas trop, mais, a propos des #include :

- 1: Un fichier include modifié n'est pas compilé. Il te faut recompiler le script qui va l'appeler.
Attention : si ton fichier est un include qui est appele par plusieurs scripts, il te faut recompiler tous les scripts (le build module fera ca tres bien)

- 2: Un include dans un fichier d'include ne pose theoriquement pas de pb.

- 3: J'ai rencontré une erreur que je ne m'explique pas, mais je fais avec :
Il estpossible que ceci :

#include "sc_in_include1"
#include "sc_in_include2"


ne fonctionne pas, tandis que ceci :
#include "sc_in_include2"
#include "sc_in_include1"

focntionne... Et ce, même si les 2 includes sont totalement séparés...
Je n'ai encore pas d'explication...

- 4: En général, si tu n'arrive pas a comprendre une erreur sur cet include


int ACTION_TYPE_ATTACK = 1;
int ACTION_TYPE_CAST_SPELL_AT_OBJECT = 2;
int ACTION_TYPE_CAST_SPELL_AT_LOCATION = 3;
int ACTION_TYPE_CAST_FAKE_SPELL_AT_OBJECT = 4;
int ACTION_TYPE_CAST_FAKE_SPELL_AT_LOCATION = 5;
int ACTION_TYPE_CLOSE_DOOR = 6;
int ACTION_TYPE_COUNTER_SPELL = 7;
int ACTION_TYPE_DO_COMMAND = 8;


il te suffit de faire ca:

int ACTION_TYPE_ATTACK = 1;
int ACTION_TYPE_CAST_SPELL_AT_OBJECT = 2;
int ACTION_TYPE_CAST_SPELL_AT_LOCATION = 3;
int ACTION_TYPE_CAST_FAKE_SPELL_AT_OBJECT = 4;
int ACTION_TYPE_CAST_FAKE_SPELL_AT_LOCATION = 5;
int ACTION_TYPE_CLOSE_DOOR = 6;
int ACTION_TYPE_COUNTER_SPELL = 7;
int ACTION_TYPE_DO_COMMAND = 8;
//void main {}


tu decommente le void main, tu compile, si ca passe, tu recommente le void et tu save. Si ca passe pas... tu corrige =D

Par Skanzo Sylan le 15/1/2003 à 14:36:44 (#3027579)

donc j'ai mis un fichier de nom 4a_constfile (ce qu'il y a ci dessus n'est qu'un extrait, y'a 38 constantes en tout, joint au nwscripts par : #include "4a_constfile"


Heum... je viens de relire et relier ton include à nwscripts me semble être une mauvaise idée.
Le plus simple semble être de ne mettre #include "4a_constfile" que dans les scripts où tu as besoin de ces constantes et de ne pas te préoccuper de nwscripts.

Déjà là, tu aura moins de problème. Mais je sais qu'avec mes includes je passe toujours un bon quart d'heure à virer toutes les erreurs de compilation lol :mdr:

Par Azrael07 le 15/1/2003 à 20:40:38 (#3030443)

alors merci pour vos reponses, mais c toujours pas bon ^_^'

je m'explique :

d'une part, pour les includes c pas ca le problème, j'ai aussi essayé de mettre les lignes directement dans le fichier nwscripts a marche pas non plus

pi il me faut imperativement avoir des constantes, pour pouvoir les utiliser dans des switch, pour avoir un truc du genre case ACTION_TYPE_WAIT : par exemple, pi je me voit mal me référer a chaques fois a un autre fichier^pour copier les numeros a chaques fois :/

bon j'attend encore un peu, si personne n'a d'idée en plus je vais me programmé un exe de "précompilation" qui me permettra d'utiliser les #define, se sera plus rapide que continuer a me prendre la tete :/

merci encore a vous

Par Jedaï le 15/1/2003 à 21:45:44 (#3030935)

Je crois que le compilateur de Torlack propose le support du #Define (à vérifier).:p

Par Azrael07 le 15/1/2003 à 23:47:46 (#3031686)

ah ? ben merci a toi. Il se fait tard je testerais demain

JE SUIS SAUVEEEEEEEEEEE :)

:ange: :ange:

JOL Archives 1.0.1
@ JOL / JeuxOnLine