It has to point to an actual array of floats. The example simply casts an skill to a pointer, but the skill has to be filled first in the entity initialization.

Code:
float4 *myFloatsArray = sys_malloc(sizeof(float) * 4); // only once!
my->skFloatArray = (var)myFloatsArray;
... // whenever you need to change the values
myFloatsArray[0] = (float)my->red / 255.0;
myFloatsArray[1] = (float)my->green / 255.0;
myFloatsArray[2] = (float)my->blu / 255.0;
myFloatsArray[3] = (float)my->lightrange;