foreach hsid if ( hsid(cnt) == null || hsid(0) == hsid(cnt) ) : continue E3DChkConflict2 hsid(0), -1, hsid(cnt), -1, confflag, confstat if (confflag != 0){ mmload dir_cur+"\\Catch.wav", 2, 2 mmplay 2 E3DSetPos hsid(cnt), rnd(4000)-rnd(4000),0,rnd(4000)-rnd(4000) } loop
「foreach hsid」〜「loop」の間を、hsid配列の要素があるだけ繰り返します。
「if ( hsid(cnt) == null || hsid(0) == hsid(cnt) ) : continue」で、hsid配列の要素がない場合と自分自身の場合は、foreach〜loop間のループをやり直します。
「E3DChkConflict2 p1,p2,p3,p4,p5,p6」で、2つの形状データの指定したパーツ同士が、衝突しているかどうを判定します。
[p1]オブジェクト0である形状データを識別するid
[p2]p1のモデル中のパーツの番号
[p3]形状データを識別するid
[p4]p3のモデル中のパーツの番号
[p5]p1, p3で識別される形状同士が、衝突している場合は1が、衝突していない場合は0がセットされる。
[p6]p1が視野外にある場合は、inviewflagに1を、p2が視野外にある場合は、inviewflagに2を、両方とも視野外の場合は、inviewflagに3を、両方とも視野内の場合は、inviewflagに0を代入します。
もしp5が0でない、つまり重なっている場合。
「mmload "filename",p1,p2」で、サウンドファイル読み込み。
[p1]割り当てるバッファの番号
[p2]割り当てるモード。
「mmplay p1」で、サウンド再生します。
[p1]再生するバッファの番号
「E3DSetPos hsid(0),x,y,z」で、形状データを(x,y,z)に移動します。