这个例子昨天正好看了,话说那本书的例子都很不错~
3 D+ \1 v9 e+ e" b+ k- O不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。! r& P( n% ~' l& ^9 @1 W' | t
is, J2 D4 o9 t" r0 i# K! @9 H. {$ d
i,no,m:integer; --定义整型- q+ Y) z! V7 y# k
Buf:object; --定义object
* ]& v! W0 [7 j( A- pdo
: f$ o, ^ y( K& l$ `! ~ m:=0;
$ a5 I0 x) Q/ f$ B; V no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 o R# L1 g4 m( p9 x
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, _- u8 L; _) @6 f j! d' o if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + r% G5 m1 n& _% u v; J
@._From:=PartsTable[5,i];
! z; s# {+ e0 X4 u# x& s* I @._To:=PartsTable[6,i];
+ @3 V; R6 Q+ T. L. [" B if no=PartsNo+PartsTable[2,i] then
' Y% N, o% S9 i7 X. _( ` PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" ^/ e, `# `- J. _7 \% [" P( K
3 C* q- C" K, G( x- r3 a! w end;2 `5 D+ a% _ E% w6 w
i:=PartsTable.YDim+1;0 A! t$ v; |* E5 q e! x
end;! o9 j$ D; u9 o1 k$ R
m:=m+PartsTable[2,i];
# c P, ~; j2 E next;9 d6 O6 h! I1 ]) P
. `$ m/ m0 x# k2 E( G Buf:=str_to_obj(sprint("BF",@._From));$ z# V$ H. J( `6 y- p' D
@.move(Buf);" P9 D! p: {) q
end; |