这个例子昨天正好看了,话说那本书的例子都很不错~
, L! H( m2 w4 h4 Y不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
3 N& Y) ^# w z* T( ois/ [6 R( a2 A/ O a; h' r
i,no,m:integer; --定义整型
' ~' |( _/ A. G5 I- k9 Z% X b Buf:object; --定义object
0 _( a W- `3 U' V0 V4 wdo9 y( M& c# ^! W
m:=0;
& f/ f0 `! X2 h$ b no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) u! K( A. x6 f/ j
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 F; l1 Z8 \% g2 s; h; {5 N! I
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * `" w9 u, Q' b; M
@._From:=PartsTable[5,i];
3 }7 f. a* e- r9 C3 c8 M$ j, l: y @._To:=PartsTable[6,i];4 h1 E' ?- r5 K% t: @6 L! K: c' F, t4 L
if no=PartsNo+PartsTable[2,i] then
, [; L" r! c( E% w6 y) ~ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 i; {; v2 S6 j5 h
2 U% f' i8 T1 o6 x- p
end;
5 c' E; H! O3 J/ s9 B, ]3 U# s i:=PartsTable.YDim+1;
3 Q; c4 Y9 d$ [! r1 R6 { end;
; M/ w4 ?5 i) |7 o& a m:=m+PartsTable[2,i];6 F$ ], D; l# U
next;
0 M) U; G3 ?: n! g, c" t $ }0 A' i6 g, V& E( z/ C" y* t) [
Buf:=str_to_obj(sprint("BF",@._From));8 a) c4 }! D: u0 x" s" U, A% a
@.move(Buf);
+ [/ {) `3 K: \4 a% ?4 u5 j+ [8 send; |