// cube x4 val{ jpowu_1(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowd_1(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowf_1(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowb_1(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowl_1(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowr_1(default=0,min=-10000000,max=10000000,step=0,disp=0) tgtx_1(default=0,min=-100000,max=100000,step=0,disp=0) tgty_1(default=0,min=-100000,max=100000,step=0,disp=0) tgtz_1(default=0,min=-100000,max=100000,step=0,disp=0) jpowu_2(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowd_2(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowf_2(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowb_2(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowl_2(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowr_2(default=0,min=-10000000,max=10000000,step=0,disp=0) smoke_2(default=0,min=0,max=1,step=1,disp=0) tgtx_2(default=0,min=-100000,max=100000,step=0,disp=0) tgty_2(default=0,min=-100000,max=100000,step=0,disp=0) tgtz_2(default=0,min=-100000,max=100000,step=0,disp=0) jpowu_3(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowd_3(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowf_3(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowb_3(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowl_3(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowr_3(default=0,min=-10000000,max=10000000,step=0,disp=0) smoke_3(default=0,min=0,max=2,step=2,disp=0) tgtx_3(default=0,min=-100000,max=100000,step=0,disp=0) tgty_3(default=0,min=-100000,max=100000,step=0,disp=0) tgtz_3(default=0,min=-100000,max=100000,step=0,disp=0) jpowu_4(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowd_4(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowf_4(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowb_4(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowl_4(default=0,min=-10000000,max=10000000,step=0,disp=0) jpowr_4(default=0,min=-10000000,max=10000000,step=0,disp=0) smoke_4(default=0,min=0,max=3,step=3,disp=0) tgtx_4(default=0,min=-100000,max=100000,step=0,disp=0) tgty_4(default=0,min=-100000,max=100000,step=0,disp=0) tgtz_4(default=0,min=-100000,max=100000,step=0,disp=0) } key{ 4:smoke_2(step=1),smoke_3(step=2),smoke_4(step=3) } body{ core(name=C_1,color=#FFFFFF){ // No.0 n:chip(angle=90,color=#FFFFFF){ // No.1 s:jet(angle=90,power=jpowu_1,color=#FFFFFF){ // No.2 } } n:jet(angle=90,power=jpowf_1,color=#FFFFFF){ // No.3 } w:chip(angle=90,color=#FFFFFF){ // No.4 } w:jet(angle=90,power=jpowl_1,color=#FFFFFF){ // No.5 } e:chip(angle=90,color=#FFFFFF){ // No.6 } e:jet(angle=90,power=jpowr_1,color=#FFFFFF){ // No.7 } s:chip(angle=90,color=#FFFFFF){ // No.8 s:chip(angle=90,color=#FFFFFF){ // No.9 } } s:jet(angle=90,power=jpowb_1,color=#FFFFFF){ // No.10 s:jet(angle=90,power=jpowd_1,color=#FFFFFF){ // No.11 } } n:chip(name=C_2,color=#0000FF){ // No.12 n:chip(angle=90,color=#0000FF){ // No.13 s:jet(angle=90,power=jpowu_2,color=#0000FF,effect=smoke_2){ // No.14 } } n:jet(angle=90,power=jpowf_2,color=#0000FF){ // No.15 } w:chip(angle=90,color=#0000FF){ // No.16 } w:jet(angle=90,power=jpowl_2,color=#0000FF){ // No.17 } e:chip(angle=90,color=#0000FF){ // No.18 } e:jet(angle=90,power=jpowr_2,color=#0000FF){ // No.19 } s:chip(angle=90,color=#0000FF){ // No.20 s:chip(angle=90,color=#0000FF){ // No.21 } } s:jet(angle=90,power=jpowb_2,color=#0000FF){ // No.22 s:jet(angle=90,power=jpowd_2,color=#0000FF){ // No.23 } } } n:chip(name=C_3,color=#FFFF00){ // No.24 n:chip(angle=90,color=#FFFF00){ // No.25 s:jet(angle=90,power=jpowu_3,color=#FFFF00,effect=smoke_3){ // No.26 } } n:jet(angle=90,power=jpowf_3,color=#FFFF00){ // No.27 } w:chip(angle=90,color=#FFFF00){ // No.28 } w:jet(angle=90,power=jpowl_3,color=#FFFF00){ // No.29 } e:chip(angle=90,color=#FFFF00){ // No.30 } e:jet(angle=90,power=jpowr_3,color=#FFFF00){ // No.31 } s:chip(angle=90,color=#FFFF00){ // No.32 s:chip(angle=90,color=#FFFF00){ // No.33 } } s:jet(angle=90,power=jpowb_3,color=#FFFF00){ // No.34 s:jet(angle=90,power=jpowd_3,color=#FFFF00){ // No.35 } } } n:chip(name=C_4,color=#FF0000){ // No.36 n:chip(angle=90,color=#FF0000){ // No.37 s:jet(angle=90,power=jpowu_4,color=#FF0000,effect=smoke_4){ // No.38 } } n:jet(angle=90,power=jpowf_4,color=#FF0000){ // No.39 } w:chip(angle=90,color=#FF0000){ // No.40 } w:jet(angle=90,power=jpowl_4,color=#FF0000){ // No.41 } e:chip(angle=90,color=#FF0000){ // No.42 } e:jet(angle=90,power=jpowr_4,color=#FF0000){ // No.43 } s:chip(angle=90,color=#FF0000){ // No.44 s:chip(angle=90,color=#FF0000){ // No.45 } } s:jet(angle=90,power=jpowb_4,color=#FF0000){ // No.46 s:jet(angle=90,power=jpowd_4,color=#FF0000){ // No.47 } } } } } /////////////////////////////////////////////////////////////////////////////// Lua{ c_1= 0; c_2=12; c_3=24; c_4=36; tgtx={}; tgty={}; tgtz={}; tgtx[c_1]=0; tgty[c_1]=0; tgtz[c_1]=0; tgtx[c_2]=0; tgty[c_2]=0; tgtz[c_2]=0; tgtx[c_3]=0; tgty[c_3]=0; tgtz[c_3]=0; tgtx[c_4]=0; tgty[c_4]=0; tgtz[c_4]=0; ------------------------------------------------------------------------------- function getlpos(lx,ly,lz,cn) local x,y,z -- Y軸回転を差し引く(-AYだけ回転させる) z=lz*math.cos(_AY(cn))+lx*math.sin(_AY(cn)) x=lx*math.cos(_AY(cn))-lz*math.sin(_AY(cn)) lz=z lx=x -- X軸回転を差し引く(-AXだけ回転させる) z=lz*math.cos(_AX(cn))-ly*math.sin(_AX(cn)) y=ly*math.cos(_AX(cn))+lz*math.sin(_AX(cn)) lz=z ly=y -- Z軸回転を差し引く(-AZだけ回転させる) y=ly*math.cos(_EZ(cn))-lx*math.sin(_EZ(cn)) x=lx*math.cos(_EZ(cn))+ly*math.sin(_EZ(cn)) ly=y lx=x return lx,ly,lz end ------------------------------------------------------------------------------ function target(cn) if(cn==c_1) then t1=math.mod(_TICKS(),30) t2=math.mod(_TICKS(),180) if(t1==0) then if(t2<90) then tgtx[cn]=math.floor(math.random(1001))-500 tgty[cn]=math.floor(math.random(151))+50 tgtz[cn]=math.floor(math.random(1001))-500 else tgtx[cn]=_X(cn) tgty[cn]=_Y(cn) tgtz[cn]=_Z(cn) end end else t=cn-12 tgtx[cn]=_X(t) tgty[cn]=_Y(t) tgtz[cn]=_Z(t) end if(_TICKS()>600) then tgtx[cn]=_OX() tgty[cn]=_OY()+2+math.sqrt(_VX(cn)^2+_VY(cn)^2+_VZ(cn)^2)/10 tgtz[cn]=_OZ() end lx=tgtx[cn]-_X(cn) ly=tgty[cn]-_Y(cn) lz=tgtz[cn]-_Z(cn) dst=math.sqrt(lx*lx+ly*ly+lz*lz) if(_TICKS()<30) then pow=0 elseif(_TICKS()<60) then pow=100000 elseif(t2>=100)or(_TICKS()>600) then pow=dst*50000 else pow=1000000 end return lx,ly,lz,dst,pow end ------------------------------------------------------------------------------- function vel_hosei(lx,ly,lz,cn) l=0.5 h=1 k=math.max(0,h-l*math.abs(lx)) lx=lx-_VX(cn)*math.abs(_VX(cn))*k k=math.max(0,h-l*math.abs(ly)) ly=ly-_VY(cn)*math.abs(_VY(cn))*k k=math.max(0,h-l*math.abs(lz)) lz=lz-_VZ(cn)*math.abs(_VZ(cn))*k return lx,ly,lz end ------------------------------------------------------------------------------- function jet_power(cn) lx,ly,lz,dst,pow=target(cn) lx,ly,lz=getlpos(lx,ly,lz,cn) lx,ly,lz=vel_hosei(lx,ly,lz,cn) r=math.sqrt(lx*lx+lz*lz) c=math.atan2(r,ly) jpowu= pow*math.cos(c) jpowd=-pow*math.cos(c) r=math.sqrt(lx*lx+ly*ly) c=math.atan2(r,lz) jpowf=-pow*math.cos(c) jpowb= pow*math.cos(c) r=math.sqrt(ly*ly+lz*lz) c=math.atan2(r,lx) jpowl= pow*math.cos(c) jpowr=-pow*math.cos(c) return jpowu,jpowd,jpowf,jpowb,jpowl,jpowr end ------------------------------------------------------------------------------- function main() if(t==nil) then t=_SPLIT(c_2) t=_SPLIT(c_3) t=_SPLIT(c_4) end JPOWU_1,JPOWD_1,JPOWF_1,JPOWB_1,JPOWL_1,JPOWR_1=jet_power(c_1) JPOWU_2,JPOWD_2,JPOWF_2,JPOWB_2,JPOWL_2,JPOWR_2=jet_power(c_2) JPOWU_3,JPOWD_3,JPOWF_3,JPOWB_3,JPOWL_3,JPOWR_3=jet_power(c_3) JPOWU_4,JPOWD_4,JPOWF_4,JPOWB_4,JPOWL_4,JPOWR_4=jet_power(c_4) out(0,"FPS=",_FPS()) end }