Here's a few of my ISM functions, feel free to use.
SCAR Code:
procedure Send(ID: string; val: Variant);
begin
case VarType(val) of
11: SendInterSCARBoolean(ID, val);
5: SendInterSCARExtended(ID, val);
3: SendInterSCARInteger(ID, val);
256: SendInterSCARMessage(ID, val);
end;
end;
function Get(ID: string; TimeOut: integer): Variant;
var
a: integer;
begin
a := GetSystemTime;
repeat
if GetSystemTime - a > TimeOut then
begin
Writeln('Timed out getting '+ID);
TerminateScript;
end;
case GetType(ID) of
11:
begin
Result := ReadInterSCARBoolean(ID);
if Result then Exit;
end;
5:
begin
Result := ReadInterSCARExtended(ID);
if Result > 0.0 then Exit;
end;
3:
begin
Result := ReadInterSCARInteger(ID);
if Result > 0 then Exit;
end;
256:
begin
Result := ReadInterSCARMessage(ID);
if Result <> '' then Exit;
end;
end;
Wait(100);
until False;
end;
procedure Recieve(ID: string; Target: Variant; TimeOut: integer);
var
a: integer;
begin
a := GetSystemTime;
while GetSystemTime - a < TimeOut do
begin
if Get(ID, 500) = Target then
Exit;
Wait(100);
end;
end;
Btw my GetID function looks like this
SCAR Code:
function GetType(ID: string): integer;
var
Int, Ext, Bool, Str: integer;
begin
Int := 3; Ext := 5; Bool := 11; Str := 256;
case ID of
'World': Result := Int;
'Ready': Result := Bool;
'Player1': Result := Str;
'Player2': Result := Str;
//etc
end;
end;