Truce's: BuildChat, fail? Why? Here is script:
$BuildChar::Path="Add-Ons/Script_BuildChar/lib/";
$BuildChar::Ext=".txt";
function buildChar(%chr,%time) {
%path=$BuildChar::Path@%chr@$BuildChar::Ext;
if(!isFile(%path))
%path=$BuildChar::Path@"UNKNOWN"@$BuildChar::Ext;
%file=new FileObject();
%file.openForRead(%path);
%y=1;
while(!%file.isEOF()) {
%line=%file.readLine();
for(%i=0;%i<strLen(%line);%i++) {
%col[%x++,%y]=getSubStr(%line,%i,1)!$=" ";
}
if(%len$=""||%len<%x)
%len=%x;
%x=0;
%y++;
}
%y--;
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);
%file.close();
%file.delete();
return %time;
}
package buildChar {
function NMH_Type::send(%this) {
%msg=%this.getValue();
Parent::send(%this);
if(getWord(%msg,0)$="@BT") {
%str=getWords(%msg,1);
$BuildChar::Count=0;
for(%i=0;%i<strLen(%str);%i++) {
%time=buildChar(getSubStr(%str,%i,1),%time);
}
}
else if(getWord(%msg,0)$="@BTS") {
for(%i=1;%i<=$BuildChar::Count;%i++) {
cancel($BuildChar::Tick[%i]);
}
}
}
};
activatePackage(buildChar);