Yeah, I figured that after looking into Object.scar (it's quite usefull to be able to see how the functions are created
). Now it looks like this and works like a charm:
SCAR Code:
////////////////////////////////////////////////////////////////////////////////
// procedure ColorHair( Colors: TIntegerArray); //
// By: Pure1993 //
// Description: It randomly chooses one of your selected colors as hair color.//
// The Array is set up like this: //
// 1, 2, 3, 4, 5, //
// 6, 7, 8, 9, 10, //
// 11, 12, 13, 14, 15, //
// etc. //
////////////////////////////////////////////////////////////////////////////////
procedure ColorHair( Colors: TIntegerArray);
var
DS: TPointArray;
C, L, G, W, D :Integer;
begin
l := Length(Colors)-1;
SetArrayLength( DS, l+1);
for i:=0 to l do
begin
C := Colors[i];
W := C mod 5;
W := W - 1;
if (W = -1) then W := 4;
DS[i].x := (W * 30) + 325;
end;
for i:=0 to l do
begin
C := Colors[i];
W := C / 5;
if (C mod 5 = 0) then
W := W - 1;
DS[i].y := ((W * 28) + 145 - (D * 2));
end;
G := Random(l);
Mouse(DS[G].x, DS[G].y, 3, 3, true);
end;
I still can't believe I created a function like that, and that it actually works! 
Up to this day I fought against the TPA's to try to force them to do what I wanted, but from this moment hence forth, we work as one! (oooooh, fancy words and personification, I think something is really wrong with me... xD)