Not sure if you could do that using local variables, but using Arrays and Types, you could do it. Kind of a pain in the ass to have to have a bunch of Global variables running around, but oh well ^^
Use the Type/ Endtype to define your data:
TYPE Character
blah as integer
location as integer
whatever as integer
ENDTYPE
Then define an array and use your Character type to define it:
dim pcharacter(1) as Character
Now you can call and define these data types in any part of your code:
FUNCTION UpdateCharacter(number)
pcharacter(number).blah = x
pcharacter(number).location = y
pcharacter(number).whatever = z
ENDFUNCION
In this fashion, you won't have to worry about returning a value with the function as you can call the array anywhere in the code. More memory usage =P
Cheers,
Bishop
*EDIT*
Don't forget, you can use user defined types to define other custom types =P for example:
TYPE XYZ
x as float
y as float
z as float
ENDTYPE
...is quite cool for keeping track of positions. It can be used for game data like this:
TYPE type_XYZ
x as float
y as float
z as float
ENDTYPE
TYPE Character
blah as integer
location as type_XYZ
ENDTYPE
This way, you can call the players stuff like this;
pcharacter(1).location.x = x
pcharacter(1).location.y = y
pcharacter(1).location.z = z
Tux is my guildmaster.