serverCmdUseSprayCan is what you should look into. Not sure if this is exactly what you are going for, but for getting a person's current paint color, it's %client.currentColor.
EDIT:
This might help as something to look at.
for(%i=0;%i<PaintRowGroup.getCount();%i++) {
%obj=PaintRowGroup.getObject(%i);
if(%obj.getName()$="PaintRow")
%row+=%obj.numSwatches;
}
%row-=9;
for(%i=0;%i<%row;%i++) {
%temp=getColorIDTable(%i);
%a=(255-getWord(%temp,0))+(255-getWord(%temp,1))+(255-getWord(%temp,1))-(0-getWord(%temp,3));
if(%trans$=""||%a<%transT) {
%trans=%i;
%transT=%a;
}
}
for(%i=5;%i<HUD_PaintBox.getCount()-10;%i++) {
%obj=HUD_PaintBox.getObject(%i);
if(%obj.getPosition()$=getWords(vectorAdd(HUD_PaintActive.getPosition(),"1 1"),0,1)) {
%solid=%i-5;
break;
}
}
for(%i=%len;%i>0;%i--) {
for(%j=%y;%j>0;%j--) {
if(%col[%len-%i+1,%j])
%new=%solid;
else
%new=%trans;
$BuildChar::Tick[$BuildChar::Count++]=schedule(%time+=(!$IamAdmin)*150,0,commandToServer,'useSprayCan',%new);
$BuildChar::Tick[$BuildChar::Count++]=schedule(%time,0,commandToServer,'plantBrick');
$BuildChar::Tick[$BuildChar::Count++]=schedule(%time,0,commandToServer,'superShiftBrick',0,0,1);
}
$BuildChar::Tick[$BuildChar::Count++]=schedule(%time,0,commandToServer,'superShiftBrick',0,-1,-%y);
}
$BuildChar::Tick[$BuildChar::Count++]=schedule(%time,0,commandToServer,'superShiftBrick',0,-1,0);
$BuildChar::Tick[$BuildChar::Count++]=schedule(%time,0,commandToServer,'useSprayCan',%solid);