这个例子昨天正好看了,话说那本书的例子都很不错~
) v4 v( b, v9 u4 K8 C: q+ M% v+ `4 r. D& o不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) {% a9 v1 ?/ _: d& O9 m* V
is
% C: `. i2 f1 I; U i,no,m:integer; --定义整型4 p) W5 b! W* x; N2 D
Buf:object; --定义object# e1 g: N( {: ^
do* ^$ b" B) d& V6 Y7 S; @5 J
m:=0;" f# B+ z& t# P5 d5 Y/ p
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
, i! @5 Z$ N) o5 `2 S0 p; c for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 ~+ f0 x, m8 n, M9 R
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 R/ Z8 B6 s# ?: H1 C
@._From:=PartsTable[5,i];
: v, W% u; X8 z# W" W! [/ H$ J0 S @._To:=PartsTable[6,i];
, m- T- `" e4 Q! k% z! u if no=PartsNo+PartsTable[2,i] then
0 @! Q- O v M4 W PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* a' d4 S! M* W- y0 Q O w& U' ?) B! q3 t
end;
+ H& f0 E% W: F% ~+ D i:=PartsTable.YDim+1;3 S: j( y7 R# s' y
end;
" X% M) I/ l% B) d! f2 Y m:=m+PartsTable[2,i];
( k) h$ A Z' n6 U4 j) n1 U& m; ?7 z next;
' _( I7 y$ n& n2 h " W) J1 B5 P; Y: t& ^( V3 k* H! R: s
Buf:=str_to_obj(sprint("BF",@._From));
) i {7 T. e% @" i @.move(Buf);
1 T, t) n1 _) g* {/ O$ ?9 K3 i* w% w# Kend; |