这个例子昨天正好看了,话说那本书的例子都很不错~3 r9 \. U2 j: s( m7 X% L% f8 ^
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% {% d# ]+ a) M0 R( E6 J& Y- a( jis' {3 f+ \! R6 a' h+ z- t2 E- @
i,no,m:integer; --定义整型
- L# ?+ t O: A% c; ~: C2 y Buf:object; --定义object
9 N0 d0 w% I, d( x( kdo2 t0 O3 Q, O k
m:=0;
h$ U, ~0 r4 E no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 ]6 {# `, z2 Y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% Q9 I ]& z9 ^& l7 k if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
$ d3 y) e6 T& K0 }* W$ h7 L @._From:=PartsTable[5,i]; : B( U% n' Q, m7 N G% ^
@._To:=PartsTable[6,i];
$ G8 w/ V4 ~5 U [5 y if no=PartsNo+PartsTable[2,i] then ' A& V0 G e' O1 i# O- R7 g4 ~
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ l0 C' W6 L8 z8 q M q% E E
! c/ [* u, L3 Q8 Z end;8 W. u- K( {, I0 _( V3 I$ b$ H
i:=PartsTable.YDim+1;
7 F1 e7 a/ c! s5 C# Q end;
) K, @4 Z; k- v- v8 B m:=m+PartsTable[2,i];9 C+ P7 S, Y' r& s
next;
7 i$ Q4 y K& L9 n9 ^2 }" w - Q1 u6 [" C. [8 X: [. R; f
Buf:=str_to_obj(sprint("BF",@._From));
9 G6 ]# a6 V; s- s d8 R$ r @.move(Buf);
9 A K; z# W0 M- a& M+ Q* gend; |