Salut ylegrand
I think you misunderstood what Mnemonic wrote.
You can keep the definition of your custom global variable within base.inc:
#include "scripts\const.inc"
global actor;
global MyCustomVariable;
Then in a script that is executed only once (such as game.script), you give it the initial value:
#include "scripts\base.inc"
//setting default values
MyCustomVariable=0;
Why should you assign its initial value in a script that is executed only once? Because you don't want to reset its value multiple times (unless that's what you intend), as it would be the case if you initialized it in a frequently called script or in base.inc (that is included by default in many scripts).
Does it mean that I need to control the existence of my globales eveywhere I use them in my scripts ?
If you define your global variable within base.inc, as you can see above, as long as you include in your scripts this line (which by default comes along in scripts created from a template):
#include "scripts\base.inc" you can just go ahead and use your custom global variable.
#include "scripts\base.inc"
...
MyCustomVariable = somefunction ();
MyCustomVariable = MyCustomVariable + 3;
//The initial value is no longer there, now my custom global variable holds the last value I assigned it
Notice the difference between defining a global variable, initializing it and using it.