{"FileModelVersion":{"Major":1,"Minor":0},"Name":"TR set","Version":2,"SavedTotalBlockCount":250,"SavedMaterialCost":4763.0,"ContainedMaterialCost":0.0,"ItemDictionary":{"1680":"1dd66387-6293-4fa0-a1da-6f0e4cb80dfa","824":"7e9abf0f-84a7-44e6-b4c3-e3da6f942072","767":"e3cc9c71-2cd1-46b8-8198-e4f578591dd9","850":"58e7abb1-de9f-47f9-864b-d5c8218f1769","803":"e3bffdbf-01eb-4309-bdb5-4358662eaac4","684":"e63040c9-0027-4fd3-be30-67fe3e950140","833":"d3924bae-be5a-43a0-be19-64fc7c8d6059","319":"51f8afc5-b071-4639-9f96-693b952fdf80","349":"8bd20877-417f-4094-ab24-1ebae4d73f85","1679":"ac24cd04-449e-47b9-bf8c-bf58d9997264","819":"0706d2b0-c244-4e0f-8577-79338cb073cf","861":"c6b9d38c-01e5-4a37-8493-2b7f7f1d74fb","153":"26a604f0-071c-49ca-8a0e-e1d9c959b1c5","795":"8d948200-242c-47c3-b46a-ecdf40f7b39b","183":"1725c9ed-29fd-438d-97f6-8f645a1865d4"},"Blueprint":{"ContainedMaterialCost":0.0,"CSI":[0.0,0.0,-1.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,3.0,29.995578765869141,-1.0,0.0,-1.0,1.0,1.0,0.0,0.0,0.0,0.0,11.920000076293945,0.0,0.10000000149011612,0.10000000149011612,1.0,1.0,3.0,-1.0,0.0,-1.0,0.0,-1.0,1.0,0.0,-1.0,0.0,0.0,-1.0,0.0,-1.0,0.0,0.0,-1.0,38.0,0.0,-1.0,0.0,0.0,500.0,-1.0,12.0,0.0,0.0,0.0,13.933530807495117,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0],"COL":["0.01176471,0,0,0","1,0,0,0.5","0,1,0,0.5","0,0,1,0.5","0.1,0.1,0.1,0.5","0.3,0.3,0.3,0.5","0.5,0.5,0.5,0.5","1,1,1,0.1","1,1,1,0.5","1,1,1,0.99","1,0.9215686,0.01568628,0.99","0,1,1,0.99","1,0,1,0.99","0.5173232,0.6314136,0.6728567,0.9074088","0.8271372,0.4580927,0.0004619006,0.4042997","0.1471832,0.08543603,0.7933133,0.8239884","0.7946076,0.5561067,0.8599762,0.4006209","0.4369281,0.2253201,0.5671357,0.7313825","0.159072,0.1137129,0.9133981,0.7077824","0.7287016,0.8383886,0.7848549,0.1286881","0.903064,0.5732815,0.72668,0.5269063","0.03422191,0.6074477,0.2795548,0.2968943","0.8607959,0.9954066,0.683183,0.8751947","0.8373902,0.1963701,0.7176474,0.03325104","0.7772967,0.3222856,0.583198,0.3082634","0.7198496,0.6274575,0.8193285,0.1700843","0.2400916,0.3233946,0.2453322,0.3991706","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0"],"SCs":[{"ContainedMaterialCost":0.0,"CSI":[0.0,0.0,-1.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,3.0,27.495601654052734,-1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,3.1100001335144043,0.0,0.10000000149011612,0.10000000149011612,1.0,1.0,3.0,-1.0,0.0,-1.0,0.0,-1.0,1.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,2.0,22.100000381469727,0.0,-1.0,0.0,0.0,500.0,-1.0,12.0,0.0,0.0,0.0,14.80698299407959,0.0,0.0,0.0,0.0,0.027941176667809486,0.0,0.0,0.0,0.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0],"COL":["0.011764,0,0,0","1,0,0,0.5","0,1,0,0.5","0,0,1,0.5","0.1,0.1,0.1,0.5","0.3,0.3,0.3,0.5","0.5,0.5,0.5,0.5","1,1,1,0.1","1,1,1,0.5","1,1,1,0.99","1,0.921568,0.015686,0.99","0,1,1,0.99","1,0,1,0.99","0.404058,0.707526,0.671258,0.866812","0.244063,0.700547,0.965221,0.795633","0.764537,0.128509,0.619747,0.966139","0.541439,0.76879,0.956338,0.080025","0.61776,0.594064,0.034648,0.043063","0.620732,0.684509,0.905798,0.291543","0.83261,0.9734,0.533476,0.357216","0.125189,0.161956,0.251975,0.474798","0.426653,0.588484,0.912715,0.22733","0.553937,0.257035,0.903544,0.385391","0.826545,0.918959,0.262981,0.982567","0.7138,0.228949,0.483761,0.449325","0.597618,0.102864,0.474108,0.793453","0.113338,0.496676,0.249026,0.711633","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0"],"SCs":[],"BLP":["0,1,0","0,1,-1","-1,0,-1","1,0,-1","0,-1,0","0,-1,-1","0,-1,3","0,-1,6","3,-1,0","6,-1,0","-1,-1,0","-4,-1,0","0,0,-3","0,0,-2","0,-2,6","-6,-2,0","6,-2,0","0,-2,-3","-6,0,0","-1,1,0","1,1,0","0,2,0","0,0,0","-1,2,0","1,2,0","1,0,0","-1,0,0","5,-1,-1","-1,2,-1","1,2,-1","0,0,-1","1,1,-1","0,2,-1","-1,1,-1","-4,-1,-1","-5,-1,-1"],"BLR":[1,6,10,10,10,10,10,10,11,11,11,11,0,0,0,3,1,2,0,2,2,2,2,2,2,2,2,2,6,10,10,10,6,6,2,2],"BP1":null,"BP2":null,"BCI":[1,2,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,1,1,1,1,1,1,2,1,20,20,20,20,20,20,2,2],"BEI":null,"BlockData":"AAAABwAAAAcAXRsBAAAAAAAABAIAAAAMAAAOAAAABwAAAAAAAAAAXRsBAAAAAAAABAsAAAANAAAOAAAABwABAAAAAAAAXRsBAAAHAAAABAAAAAASAAAjAAAAhQAPJwAAAAAAhM0AAAAAAIXNAAAAfgCGzQAAAH4AXRsBAAB+ANwABM3MTD3dAAQAAHpD3gAEmpmZPkABBM3MTD1BAQQAAHpDQgEEmpmZPqQBBM3MTD2lAQQAAHpDpgEEmpmZPggCBM3MTD0JAgQAAHpDCgIEmpmZPmwCBM3MTD1tAgQAAHpDbgIEmpmZPtACBM3MTD3RAgQAAHpD0gIEmpmZPgAABA4AAAATAAAOAAAANQABAAAAAAAAXRsBAAAlAAIABK5HgT8DAAQAAIC/CwABAQwAAs6bDwAEFAAAABQABP8AAP8AAAQbAAAAAQAGRU5FTVk3FAAADgAAADkAAQAAAAAAAF0bAQAAKQACAASuR4E/AwAEAACAPwsAAQEMAALOmw8ABBQAAAARAAEBFAAE/wAA/wAABBwAAAABAAZFTkVNWTYVAAAOAAAAOQABAAAAAAAAXRsBAAApAAIABK5HgT8EAAQAAIC/CwABAQwAAs6bDwAEFAAAABEAAQEUAAT/AAD/AAAEHQAAAAEABkVORU1ZNRYAAA4AAAA1AAEAAAAAAABdGwEAACUAAgAErkeBPwQABAAAgD8LAAEBDAACzpsPAAQUAAAAFAAE/wAA/wAABB4AAAABAAZFTkVNWTQXAAAOAAAAPAABAAAAAAAAXRsBAAAsAAIABK5HgT8DAAQAAIC/BAAEAACAvwsAAQEMAALOmw8ABBQAAAAUAAT/AAD/AAAEHwAAAAEABkVORU1ZMxgAAA4AAABAAAEAAAAAAABdGwEAADAAAgAErkeBPwMABAAAgD8EAAQAAIC/CwABAQwAAs6bDwAEFAAAABEAAQEUAAT/AAD/AAAEIAAAAAEABkVORU1ZMhkAAA4AAABHAAEAAAAAAABdGwEAADcAAgAErkeBPwMABAAAgD8EAAQAAIA/CwABAQwAAs6bDwAEFAAAABEAAQETAAT/AAD/FAAE/wAA/wAABCEAAAABAAZFTkVNWTEaAAAOAAAANQABAAAAAAAAXRsBAAApAAIABGZmhj8DAAQAAIC/BAAEAACAPwwAA+KWsg8ABCgAAAAUAAQA/wD/AAAEJwAAAAEAAk1FGwAADgAAAD8AAQAAAAAAAF0bAQAAOAACAAQK1yM8AwAEUrhuQAQABEjhOj8MAAfOm2VuZW15DwAEGAAAABEAAQETAAT//wD/FAAE/wAA/wAABCsAAAAiAAAOAAAAMAABAAAAAAAAXRsBAAApAAIABArXIzwDAAQAAIDABAAErkcRQAwAA+KWoQ8ABN4BAAAUAAQAsgD/AAAEPQAAACMAAA4AAAA8AAEAAAAAAABdGwEAADUAAgAECtcjPAMABMP1uMAEAASkcL0/DAAEMjAwbQ8ABBgAAAARAAEBEwAEAEwA/xQABACyAP8AAAQ+AAAA","VehicleData":"Vy4AAAAAAAAHAAAAAAAAAAAAAAAA8FsKAQAAAAAOAAAAAAAPJwAAAAAA0AcAAAAAAJ9xBAAAAAAAHAAAANkADycAAAAAAKCGAQAANAAAAAAAADQAAQAAAACOAAAAEAAAAAAAAAAAAAAAAAAAAAABAAQAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAMABAEAAAAAABCasXX2Z0reQb1gZRusLP4XAQAMAABAQAAAgD8AAEBAAgAMAAAAAAAAAAAK16M8AwAMAAC0wgAAAAAAAAAABAAEGgAAAAUADAAAAAABAAAA/////wYAAQEAABD9SRXVOC5xQrhar97UVADfAQAMAABgQAAAYEAAACBBAgAMAAAAAAAAAACamZm+BAAEBwAAAAUADAAAAAABAAAA/////wYAAQFHKQEAAAAAAAcAAAAAAAAAAAAAAADBfVafAAAAAAcAAAAHAAAAAAAAAAAAAAQBAAAAOe0HAAAAAAAHAAAABwABAAAAAAAAAAAECu/LPD41FAAAAAAABwAAACMAAQAAAAAAAAoABM3MzD0LAATNzMw9DAAEzczMPQ0ABM3MzD0OAATNzMw9UkMAAAAAAAAHAAAAAAABAAAAAAAAxEoAAAAAAAAHAAAADgAAAAAAAAAAAAAEAAAsQgMABAAALEIr3goAAAAAAAcAAAAIAAEAAAAAAAAAAAEBAQABATKOUAAAAAAABwAAAAAAAAAAAAAAANCrZQAAAAAADgAAAAAAAAAAAAAAAAEAAAAAAAAuywQAAAAAAAcAAAAAACSIAAAAAADCJ2EAAAAAAAcAAABGAAAAAAAAAAAAAAQAAEhCCgAEAADIwQ8ABAAAXEIUAAQAAPpDGQAEAIA7RTIABABAHEY3AAQAQBxGHgAEAACAPyMABAAAgD8oAAQAAKBBEugBAAAAAAAOAAAAAAAPJwAAAAAAoIYBAAAAAA==","designChanged":false,"blueprintVersion":10,"blueprintName":"TR3x3mAdv","SerialisedInfo":{"JsonDictionary":{},"IsEmpty":true},"Name":null,"ItemNumber":684,"LocalPosition":"-72,2,15","LocalRotation":"0,0,0,1","ForceId":41502180,"TotalBlockCount":36,"MaxCords":"6,2,6","MinCords":"-6,-2,-3","BlockIds":[833,319,319,319,349,1679,1679,1679,1679,1679,1679,1679,819,861,767,767,767,767,153,795,795,795,795,795,795,795,795,795,319,319,319,319,319,319,795,795],"BlockState":"=0,36","AliveCount":36,"BlockStringData":["--1ブロック辺り距離-----------------------------------------\n--meter per block\nRange=200\r\n\n---------------------------------------------------------\n\nHoloplojector={\r\n    {name=\"ENEMY1\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY2\"},\r\n    {name=\"ENEMY3\"},\r\n    {name=\"ENEMY4\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY5\"},\r\n    {name=\"ENEMY6\"},\r\n    {name=\"ENEMY7\"}\r,\n    {name=\"ME\"}\n}\r\n\r\n\r\n\r\nfunction Update(I)\r\n\r\n\r\n --表示可能範囲（mapの大きさに合わせて書き換えてください）\r\n --Viewable range (please rewrite according to the size of the map)\r\n\r\n xh=1.5\r\n xl=-1.5\r\n yh=1.5\r\n yl=-1.5\r\n              --map上の１mの表示範囲 １m　display　range　on　map\r\n mainflameID=0\r\n focus_number=8         --同時識別数　Number of simultaneous identifications\r\n\r\n\r\n --変数定義 Variable define\r\n\r\n RangeX=Range*(xh-xl)\r\n RangeY=Range*(yh-yl)\r\n\r\n I:ClearLogs()\r\n target = {}\r\n x = {}\r\n y = {}\r\n\r\n\r\n --自己角度計算　Earn self azimath \r\n r=math.atan2(I:GetConstructForwardVector()[3], I:GetConstructForwardVector()[1])\r\n r=r+math.pi*-0.5\n\r\n --入力　input\r\n --自分の位置を獲得\r\n --Earn self pos\r\n selfPosition = I:GetConstructCenterOfMass()\r\n --敵のデータ獲得\r\n --Earn enemy pos\r\n for i = 0, focus_number-1, 1 do \r\n  target[i] = I:GetTargetInfo(mainflameID, i)\r\n end\r\n\r\n --座標計算 --Coordinate calculation\r\n for i = 0, focus_number-1, 1 do \r\n\r\n\n  --相対位置計算　Relative position calculation\r\n  x[i]=-target[i].Position[1]\r+selfPosition.x\n  y[i]=target[i].Position[3]\r-selfPosition.z\n\r\n  I:Log(i..\"の座標\"..x[i])\n\n\n  --グローバル座標をMAP座標に変換\r\n  --global→map\r\n--  x[i]=x[i]/RangeX*(xh-xl)+(xh-xl)/2+xl\r\n--  y[i]=y[i]/RangeY*(yh-yl)+(yh-yl)/2+yl\r\n  x[i]=x[i]/RangeX\r\n  y[i]=y[i]/RangeY\r\n\n  tempX=x[i]\n  tempY=y[i]\n \n\n  x[i] = math.cos(r)*tempX- math.sin(r)*tempY\n  y[i] = math.sin(r)*tempX+ math.cos(r)*tempY\n\n  --クランプ\r\n  --clamp\r\n  if x[i]>xh then x[i]=xh end\r\n  if y[i]>yh then y[i]=yh end\r\n  if x[i]<xl then x[i]=xl end\r\n  if y[i]<yl then y[i]=yl end\r\n\r\n -- I:Log(x[i]..\":\"..y[i])\r\n\r\n  --敵の存在確認 --enemy being?\r\n  if target[i].Valid == true then\r\n  else--敵がいない場合初期位置に移動\r\n  --Move to initial position if there are no enemies\r\n\r\n   x[i] = 0\r\n   y[i] = 0\r\n  end\r\n end\r\n\n\n\n\n\n\n --自己位置 --self pos calc\r\n-- selfposx=(xh-xl)/2+xl\r\n-- selfposy=(yh-yl)/2+yl\r\n selfposx=0\r\n selfposy=0\r\n\r\n\r\n --出力\r\n --outputs\r\n for inputID=1 ,#Holoplojector do\r\n  for i=0,#Holoplojector do\r\n   if I:Component_GetBlockInfo(33,i).CustomName == Holoplojector[inputID].name then\r\n    outputID = i\r\n   else\r\n   end\r\n  end\r\n\n  I:Log(inputID..\"→\"..outputID)\r\n  \r\n  if inputID==1 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[0]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[0]+1) \r\n  end\r\n  if inputID==2 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[1]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[1]-1) \r\n  end\r\n  if inputID==3 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[2]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[2]-1) \r\n  end\r\n  if inputID==4 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[3]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[3]+1) \r\n  end\r\n  if inputID==5 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[4]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[4]-1) \r\n  end\r\n  if inputID==6 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[5]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[5]) \r\n  end\r\n  if inputID==7 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[6]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[6]) \r\n  end\r\n  if inputID==8 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, 0-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, 0+1) \r\n  end\r\n end\r\nend"],"BlockStringDataIds":[2],"GameVersion":"3.4.8.0","PersistentSubObjectIndex":0,"PersistentBlockIndex":62,"AuthorDetails":{"Valid":true,"ForeignBlocks":0,"CreatorId":"8e393002-cf31-4333-bec7-33dec41ad5b6","ObjectId":"9aab94da-5c45-49e6-b91a-336a7fc54061","CreatorReadableName":"nisi","HashV1":"90f297a6f0ad957713c87c2dea98b7d5"},"BlockCount":36},{"ContainedMaterialCost":0.0,"CSI":[0.0,0.0,-1.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,4.6841220855712891,32.384113311767578,-1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,4.809999942779541,0.0,0.10000000149011612,0.10000000149011612,1.0,1.0,3.0,-1.0,0.0,-1.0,0.0,-1.0,1.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,2.0,35.099998474121094,0.0,-1.0,0.0,0.0,500.0,-1.0,12.0,0.0,0.0,0.0,14.446498870849609,0.0,0.0,0.0,0.0,0.020857473835349083,0.0,0.0,0.0,0.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0],"COL":["0.011764,0,0,0","1,0,0,0.5","0,1,0,0.5","0,0,1,0.5","0.1,0.1,0.1,0.5","0.3,0.3,0.3,0.5","0.5,0.5,0.5,0.5","1,1,1,0.1","1,1,1,0.5","1,1,1,0.99","1,0.921568,0.015686,0.99","0,1,1,0.99","1,0,1,0.99","0.404058,0.707526,0.671258,0.866812","0.244063,0.700547,0.965221,0.795633","0.764537,0.128509,0.619747,0.966139","0.541439,0.76879,0.956338,0.080025","0.61776,0.594064,0.034648,0.043063","0.620732,0.684509,0.905798,0.291543","0.83261,0.9734,0.533476,0.357216","0.125189,0.161956,0.251975,0.474798","0.426653,0.588484,0.912715,0.22733","0.553937,0.257035,0.903544,0.385391","0.826545,0.918959,0.262981,0.982567","0.7138,0.228949,0.483761,0.449325","0.597618,0.102864,0.474108,0.793453","0.113338,0.496676,0.249026,0.711633","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0"],"SCs":[],"BLP":["0,1,0","0,1,-1","-1,1,-1","-1,2,-1","0,2,-1","0,0,-1","-1,0,-1","1,2,-1","1,1,-1","1,0,-1","0,-1,0","0,-1,-1","0,-1,3","0,-1,6","3,-1,0","6,-1,0","-1,-1,0","-4,-1,0","0,0,-3","0,0,-2","0,-2,6","-6,-2,0","6,-2,0","0,-2,-3","-6,0,0","-1,1,0","1,1,0","0,2,0","0,0,0","-1,2,0","1,2,0","1,0,0","-1,0,0","1,0,1","0,0,1","-1,0,1","1,1,1","-7,-1,0","0,-1,7","7,-1,0","0,-1,-4","-1,1,1","-1,2,1","0,2,1","1,2,1","5,-1,-1","4,-1,-1","-5,-1,-1","-4,-1,-1"],"BLR":[1,6,6,6,6,10,10,10,10,10,10,10,10,10,11,11,11,11,0,0,0,3,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,3,0,1,2,2,2,2,2,2,2,2,2],"BP1":null,"BP2":null,"BCI":[1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,1,1,1,1,1,1,2,3,3,3,3,23,23,23,23,3,3,3,3,1,3,2,2],"BEI":null,"BlockData":"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","VehicleData":"Vy4AAAAAAAAHAAAAAAAAAAAAAAAA8FsKAQAAAAAOAAAAAAAPJwAAAAAA0AcAAAAAAJ9xBAAAAAAAHAAAANkADycAAAAAAKCGAQAANAAAAAAAADQAAQAAAACOAAAAEAAAAAAAAAAAAAAAAAAAAAABAAQAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAMABAEAAAAAABCasXX2Z0reQb1gZRusLP4XAQAMAABAQAAAgD8AAEBAAgAMAAAAAAAAAAAK16M8AwAMAAC0wgAAAAAAAAAABAAEGgAAAAUADAAAAAABAAAA/////wYAAQEAABD9SRXVOC5xQrhar97UVADfAQAMAABgQAAAYEAAACBBAgAMAAAAAAAAAACamZm+BAAEBwAAAAUADAAAAAABAAAA/////wYAAQFHKQEAAAAAAAcAAAAAAAAAAAAAAADBfVafAAAAAAcAAAAHAAAAAAAAAAAAAAQBAAAAOe0HAAAAAAAHAAAABwABAAAAAAAAAAAE0UYZPz41FAAAAAAABwAAACMAAQAAAAAAAAoABM3MzD0LAATNzMw9DAAEzczMPQ0ABM3MzD0OAATNzMw9UkMAAAAAAAAHAAAAAAABAAAAAAAAxEoAAAAAAAAHAAAADgAAAAAAAAAAAAAEAAAgQgMABAAAIEIr3goAAAAAAAcAAAAIAAEAAAAAAAAAAAEBAQABATKOUAAAAAAABwAAAAAAAAAAAAAAANCrZQAAAAAADgAAAAAAAAAAAAAAAAEAAAAAAAAuywQAAAAAAAcAAAAAACSIAAAAAADCJ2EAAAAAAAcAAABGAAAAAAAAAAAAAAQAAEhCCgAEAADIwQ8ABAAAXEIUAAQAAPpDGQAEAIA7RTIABABAHEY3AAQAQBxGHgAEAACAPyMABAAAgD8oAAQAAKBBEugBAAAAAAAOAAAAAAAPJwAAAAAAoIYBAAAAAA==","designChanged":false,"blueprintVersion":13,"blueprintName":"TR3x3mAdv2","SerialisedInfo":{"JsonDictionary":{},"IsEmpty":true},"Name":null,"ItemNumber":684,"LocalPosition":"-53,2,15","LocalRotation":"0,0,0,1","ForceId":1469223590,"TotalBlockCount":49,"MaxCords":"7,2,7","MinCords":"-7,-2,-4","BlockIds":[833,319,319,319,319,319,319,319,319,319,349,1679,1679,1679,1679,1679,1679,1679,819,861,767,767,767,767,153,795,795,795,795,795,795,795,795,795,795,795,795,183,183,183,183,795,795,795,795,795,795,795,795],"BlockState":"=0,49","AliveCount":49,"BlockStringData":["--1ブロック辺り距離-----------------------------------------\n--meter per block\nRange=200\r\n\n---------------------------------------------------------\nHoloplojector={\r\n    {name=\"ENEMY1\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY2\"},\r\n    {name=\"ENEMY3\"},\r\n    {name=\"ENEMY4\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY5\"},\r\n    {name=\"ENEMY6\"},\r\n    {name=\"ENEMY7\"}\r,\n    {name=\"ME\"},\n    {name=\"FRIEND1\"},\n    {name=\"FRIEND2\"},\n    {name=\"FRIEND3\"},\n    {name=\"FRIEND4\"},\n    {name=\"FRIEND5\"},\n    {name=\"FRIEND6\"},\n    {name=\"FRIEND7\"},\n    {name=\"FRIEND8\"}\n}\r\n\nfunction GetMissilePos(I,num,XYZ)\n if I:GetNumberOfWarnings() == 0 then\n  return -1\n else\n  if XYZ == 1 then return I:GetMissileWarning(num).ReferencePosition.x end\n  if XYZ == 2 then return I:GetMissileWarning(num).ReferencePosition.y end\n  if XYZ == 3 then return I:GetMissileWarning(num).ReferencePosition.z end\n end\n\nend\n\n\n\r\rfunction GetMyTankNum(I) --自車の車番を獲得\r\n\r\n ftbl = {}\r\n ftbl[I:GetFriendlyCount()]= I:GetUniqueId() --自車のIDを最後に保管\r\n if I:GetFriendlyCount()>0 then\r\n  for fi = 0, I:GetFriendlyCount()-1 do\r\n   local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n   ftbl[fi]=FriendlyInfo.Id  --IDを配列に保管\r\n  end\r\n end\r\n --ソートアルゴリズムでIDから自車の番号を獲得\r\n for i = 0, I:GetFriendlyCount() do\r\n  for j = I:GetFriendlyCount(), i + 1, -1 do\r\n   if ftbl[i] < ftbl[j]  then\r\n    ftbl[i], ftbl[j] = ftbl[j], ftbl[i]\r\n   end\r\n  end\r\n end\r\n --ソート結果に基づいて車番を振り分ける\r\n for fi = 0, I:GetFriendlyCount() do\r\n  if  I:GetUniqueId()== ftbl[fi] then --ソート済みの配列のfi番目に自車のIDが有ったら\r\n   tanknum=fi\r\n  end\r\n end\r\n return tanknum\r\nend\n\nfunction GetMyTankID(I,tankNum)\r\n --車番のIDを獲得\r\n if I:GetFriendlyCount()==0 then return -1 end --エラー\r\n\r\n ftbl = {}\r\n ftbl[I:GetFriendlyCount()]= I:GetUniqueId() --自車のIDを最後に保管\r\n if I:GetFriendlyCount()>0 then\r\n  for fi = 0, I:GetFriendlyCount()-1 do\r\n   local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n   ftbl[fi]=FriendlyInfo.Id  --IDを配列に保管\r\n  end\r\n end\r\n --ソートアルゴリズムでIDから自車の番号を獲得\r\n for i = 0, I:GetFriendlyCount() do\r\n  for j = I:GetFriendlyCount(), i + 1, -1 do\r\n   if ftbl[i] < ftbl[j]  then\r\n    ftbl[i], ftbl[j] = ftbl[j], ftbl[i]\r\n   end\r\n  end\r\n end\r\n if GetMyTankNum(I) == tankNum then\r\n  return I:GetUniqueId()\r\n else\r\n  return ftbl[tankNum]\r\n end\r\nend\n\n\rfunction FriendPosition(I,friendId,XYZ)--IDから位置を求める,XYZ:x=1,y=2,z=3\r\n if I:GetFriendlyCount()==0 then\r\n  if XYZ==1 then  return 0 end\r\n  if XYZ==2 then  return 0 end\r\n  if XYZ==3 then  return 0 end\r\n end\r\n if I:GetUniqueId() == friendId then\r\n  if XYZ==1 then  return 0 end\r\n  if XYZ==2 then  return 0 end\r\n  if XYZ==3 then  return 0 end\r\n end\r\n for fi = 0, I:GetFriendlyCount()-1 do\r\n  local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n  if I:GetFriendlyInfo(fi).Id == friendId then\r\n   if XYZ==1 then  return I:GetFriendlyInfo(fi).ReferencePosition.x end\r\n   if XYZ==2 then  return I:GetFriendlyInfo(fi).ReferencePosition.y end\r\n   if XYZ==3 then  return I:GetFriendlyInfo(fi).ReferencePosition.z end\r\n  end\r\n end\r\n return 0 --エラー\r\nend\n\r\nfunction Update(I)\r\n\r\n\r\n --表示可能範囲（mapの大きさに合わせて書き換えてください）\r\n --Viewable range (please rewrite according to the size of the map)\r\n\r\n xh=1.5\r\n xl=-1.5\r\n yh=1.5\r\n yl=-1.5\r\n              --map上の１mの表示範囲 １m　display　range　on　map\r\n mainflameID=0\r\n focus_number=17         --同時識別数　Number of simultaneous identifications\r\n\r\n\r\n --変数定義 Variable define\r\n\r\n RangeX=Range*(xh-xl)\r\n RangeY=Range*(yh-yl)\r\n\r\n I:ClearLogs()\r\n target = {}\r\n x = {}\r\n y = {}\r\n\r\n\r\n --自己角度計算　Earn self azimath \r\n r=math.atan2(I:GetConstructForwardVector()[3], I:GetConstructForwardVector()[1])\r\n r=r+math.pi*-0.5\n\r\n --入力　input\r\n --自分の位置を獲得\r\n --Earn self pos\r\n selfPosition = I:GetConstructCenterOfMass()\r\n --敵のデータ獲得\r\n --Earn enemy pos\r\n for i = 0, focus_number-1, 1 do \r\n  target[i] = I:GetTargetInfo(mainflameID, i)\r\n end\r\n\r\n\n\n --座標計算 --Coordinate calculation\r\n for i = 0, focus_number-1, 1 do \r\n\n\n  --相対位置計算　Relative position calculation\r\n\r  if i<8 then\n   x[i]=-target[i].Position[1]\r+selfPosition.x\n   y[i]=target[i].Position[3]\r-selfPosition.z\n\n   --敵の存在確認 --enemy being?\r\n   if target[i].Valid == true then\r\n   else--敵がいない場合初期位置に移動\r\n   --Move to initial position if there are no enemies\r\n\r\n    x[i] = 0\r\n    y[i] = 0\r\n   end\r\n\n--   I:Log(\"敵\"..i..\"の座標x\"..x[i]..\"の座標z\"..y[i])\n  else\n   x[i]=-FriendPosition(I,GetMyTankID(I,i-8),1)\r+selfPosition.x\n   y[i]=FriendPosition(I,GetMyTankID(I,i-8),3)-selfPosition.z\n\n   --味方の存在確認 --friend being?\r\n  --味方がいない場合初期位置に移動\r\n   --Move to initial position if there are no friends\r\n   if FriendPosition(I,GetMyTankID(I,i-8),1) == 0 then\r\n    x[i] = 0\n    y[i] = 0\n   end\n\n--   I:Log(\"味方\"..i..\"の位置x\"..x[i]..\"位置y\"..y[i])--IDから位置を獲得\n--   I:Log(\"自機の位置x\"..selfPosition.x..\"位置y\"..selfPosition.z)--IDから位置を獲得\n\n  end\n end\n\n\n\n\n for i = 0, focus_number-1, 1 do \r\n\n  --グローバル座標をMAP座標に変換\r\n  --global→map\r\n  x[i]=x[i]\r/RangeY\n  y[i]=y[i]/RangeY\r\n\n\n  tempX=x[i]\n  tempY=y[i]\n  x[i] = math.cos(r)*tempX- math.sin(r)*tempY\n  y[i] = math.sin(r)*tempX+ math.cos(r)*tempY\n  I:Log(i..\"の位置x\"..tempX..\"|\"..x[i]..\"位置y\"..tempY..\"|\"..y[i])\n\n  --クランプ\r\n  --clamp\r\n  if x[i]>xh then x[i]=xh end\r\n  if y[i]>yh then y[i]=yh end\r\n  if x[i]<xl then x[i]=xl end\r\n  if y[i]<yl then y[i]=yl end\r\n\r\n\r\n\n end\r\n\n --自己位置 --self pos calc\r\n-- selfposx=(xh-xl)/2+xl\r\n-- selfposy=(yh-yl)/2+yl\r\n selfposx=0\r\n selfposy=0\r\n\r\n\r\n --出力\r\n --outputs\r\n for inputID=1 ,#Holoplojector do\r\n  for i=0,#Holoplojector do\r\n   if I:Component_GetBlockInfo(33,i).CustomName == Holoplojector[inputID].name then\r\n    outputID = i\r\n   else\r\n   end\r\n  end\r\n\n  I:Log(inputID..\"→\"..outputID)\r\n  \r\n  if inputID==1 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[0]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[0]+1) \r\n  end\r\n  if inputID==2 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[1]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[1]-1) \r\n  end\r\n  if inputID==3 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[2]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[2]-1) \r\n  end\r\n  if inputID==4 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[3]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[3]+1) \r\n  end\r\n  if inputID==5 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[4]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[4]-1) \r\n  end\r\n  if inputID==6 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[5]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[5]) \r\n  end\r\n  if inputID==7 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[6]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[6]) \r\n  end\r\n  if inputID==8 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[7]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[7]+1) \r\n  end\r\n  if inputID==9 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[8]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[8]+1) \r\n  end\r\n  if inputID==10 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[9]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[9]+1) \n  end\r\n  if inputID==11 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[10]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[10]+1)\n  end\r\n  if inputID==12 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[11]+1.0) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[11]) \r\n  end\r\n  if inputID==13 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[12]-1)\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[12]) \r\n  end\r\n  if inputID==14 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[13]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[13]-1) \r\n  end\r\n  if inputID==15 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[14]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[14]-1) \r\n  end\r\n  if inputID==16 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[15]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[15]-1) \r\n  end\r\n end\r\nend"],"BlockStringDataIds":[2],"GameVersion":"3.4.8.0","PersistentSubObjectIndex":0,"PersistentBlockIndex":73,"AuthorDetails":{"Valid":true,"ForeignBlocks":0,"CreatorId":"8e393002-cf31-4333-bec7-33dec41ad5b6","ObjectId":"9aab94da-5c45-49e6-b91a-336a7fc54061","CreatorReadableName":"nisi","HashV1":"90f297a6f0ad957713c87c2dea98b7d5"},"BlockCount":49},{"ContainedMaterialCost":0.0,"CSI":[0.0,0.0,-1.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,3.791269063949585,27.495777130126953,-1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,5.7100000381469727,0.0,0.10000000149011612,0.10000000149011612,1.0,1.0,3.0,-1.0,0.0,-1.0,0.0,-1.0,1.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,2.0,44.099998474121094,0.0,-1.0,0.0,0.0,500.0,-1.0,12.0,0.0,0.0,0.0,14.264595031738281,0.0,0.0,0.0,0.0,0.02008928544819355,0.0,0.0,0.0,0.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0],"COL":["0.011764,0,0,0","1,0,0,0.5","0,1,0,0.5","0,0,1,0.5","0.1,0.1,0.1,0.5","0.3,0.3,0.3,0.5","0.5,0.5,0.5,0.5","1,1,1,0.1","1,1,1,0.5","1,1,1,0.99","1,0.921568,0.015686,0.99","0,1,1,0.99","1,0,1,0.99","0.404058,0.707526,0.671258,0.866812","0.244063,0.700547,0.965221,0.795633","0.764537,0.128509,0.619747,0.966139","0.541439,0.76879,0.956338,0.080025","0.61776,0.594064,0.034648,0.043063","0.620732,0.684509,0.905798,0.291543","0.83261,0.9734,0.533476,0.357216","0.125189,0.161956,0.251975,0.474798","0.426653,0.588484,0.912715,0.22733","0.553937,0.257035,0.903544,0.385391","0.826545,0.918959,0.262981,0.982567","0.7138,0.228949,0.483761,0.449325","0.597618,0.102864,0.474108,0.793453","0.113338,0.496676,0.249026,0.711633","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0"],"SCs":[],"BLP":["0,1,0","0,1,-1","-1,1,-1","-1,2,-1","0,2,-1","0,0,-1","-1,0,-1","1,2,-1","1,1,-1","1,0,-1","0,-1,0","0,-1,-1","0,-1,3","0,-1,6","3,-1,0","6,-1,0","-1,-1,0","-4,-1,0","0,0,-3","0,0,-2","0,-2,6","-6,-2,0","6,-2,0","0,-2,-3","-6,0,0","-1,1,0","1,1,0","0,2,0","0,0,0","-1,2,0","1,2,0","1,0,0","-1,0,0","1,0,1","0,0,1","-1,0,1","1,1,1","-7,-1,0","0,-1,7","7,-1,0","0,-1,-4","-1,1,1","-1,2,1","0,2,1","1,2,1","-1,0,2","6,-1,-1","5,-1,-1","4,-1,-1","-1,1,2","-1,2,2","0,2,2","1,2,2","1,1,2","0,0,2","1,0,2","-5,-1,-1","-4,-1,-1"],"BLR":[1,6,6,6,6,10,10,10,10,10,10,10,10,10,11,11,11,11,0,0,0,3,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,3,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"BP1":null,"BP2":null,"BCI":[1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,1,1,1,1,1,1,2,3,3,3,3,23,23,23,23,3,3,3,3,10,10,1,3,10,10,10,10,10,10,10,2,2],"BEI":null,"BlockData":"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","VehicleData":"Vy4AAAAAAAAHAAAAAAAAAAAAAAAA8FsKAQAAAAAOAAAAAAAPJwAAAAAA0AcAAAAAAJ9xBAAAAAAAHAAAANkADycAAAAAAKCGAQAANAAAAAAAADQAAQAAAACOAAAAEAAAAAAAAAAAAAAAAAAAAAABAAQAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAMABAEAAAAAABCasXX2Z0reQb1gZRusLP4XAQAMAABAQAAAgD8AAEBAAgAMAAAAAAAAAAAK16M8AwAMAAC0wgAAAAAAAAAABAAEGgAAAAUADAAAAAABAAAA/////wYAAQEAABD9SRXVOC5xQrhar97UVADfAQAMAABgQAAAYEAAACBBAgAMAAAAAAAAAACamZm+BAAEBwAAAAUADAAAAAABAAAA/////wYAAQFHKQEAAAAAAAcAAAAAAAAAAAAAAADBfVafAAAAAAcAAAAHAAAAAAAAAAAAAAQBAAAAOe0HAAAAAAAHAAAABwABAAAAAAAAAAAE+i48Pz41FAAAAAAABwAAACMAAQAAAAAAAAoABM3MzD0LAATNzMw9DAAEzczMPQ0ABM3MzD0OAATNzMw9UkMAAAAAAAAHAAAAAAABAAAAAAAAxEoAAAAAAAAHAAAADgAAAAAAAAAAAAAEAAAgQgMABAAAIEIr3goAAAAAAAcAAAAIAAEAAAAAAAAAAAEBAQABATKOUAAAAAAABwAAAAAAAAAAAAAAANCrZQAAAAAADgAAAAAAAAAAAAAAAAEAAAAAAAAuywQAAAAAAAcAAAAAACSIAAAAAADCJ2EAAAAAAAcAAABGAAAAAAAAAAAAAAQAAEhCCgAEAADIwQ8ABAAAXEIUAAQAAPpDGQAEAIA7RTIABABAHEY3AAQAQBxGHgAEAACAPyMABAAAgD8oAAQAAKBBEugBAAAAAAAOAAAAAAAPJwAAAAAAoIYBAAAAAA==","designChanged":false,"blueprintVersion":15,"blueprintName":"TR3x3mAdv3","SerialisedInfo":{"JsonDictionary":{},"IsEmpty":true},"Name":null,"ItemNumber":684,"LocalPosition":"-29,2,15","LocalRotation":"0,0,0,1","ForceId":1106073491,"TotalBlockCount":58,"MaxCords":"7,2,7","MinCords":"-7,-2,-4","BlockIds":[833,319,319,319,319,319,319,319,319,319,349,1679,1679,1679,1679,1679,1679,1679,819,861,767,767,767,767,153,795,795,795,795,795,795,795,795,795,795,795,795,183,183,183,183,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795],"BlockState":"=0,58","AliveCount":58,"BlockStringData":["--1ブロック辺り距離-----------------------------------------\n--meter per block\nRange=200\r\n\n---------------------------------------------------------\n\nHoloplojector={\r\n    {name=\"ENEMY1\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY2\"},\r\n    {name=\"ENEMY3\"},\r\n    {name=\"ENEMY4\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY5\"},\r\n    {name=\"ENEMY6\"},\r\n    {name=\"ENEMY7\"}\r,\n    {name=\"ME\"},\n    {name=\"FRIEND1\"},\n    {name=\"FRIEND2\"},\n    {name=\"FRIEND3\"},\n    {name=\"FRIEND4\"},\n    {name=\"FRIEND5\"},\n    {name=\"FRIEND6\"},\n    {name=\"FRIEND7\"},\n    {name=\"FRIEND8\"},\n    {name=\"MISSILE1\"},\n    {name=\"MISSILE2\"},\n    {name=\"MISSILE3\"},\n    {name=\"MISSILE4\"},\n    {name=\"MISSILE5\"},\n    {name=\"MISSILE6\"},\n    {name=\"MISSILE7\"},\n    {name=\"MISSILE8\"},\n    {name=\"MISSILE9\"},\n    {name=\"MISSILE10\"}\n}\r\n\nfunction GetMissilePos(I,num,XYZ)\n if I:GetNumberOfWarnings() == 0 then\n  return -1\n else\n  if XYZ == 1 then return I:GetMissileWarning(num).ReferencePosition.x end\n  if XYZ == 2 then return I:GetMissileWarning(num).ReferencePosition.y end\n  if XYZ == 3 then return I:GetMissileWarning(num).ReferencePosition.z end\n end\n\nend\n\n\n\r\rfunction GetMyTankNum(I) --自車の車番を獲得\r\n\r\n ftbl = {}\r\n ftbl[I:GetFriendlyCount()]= I:GetUniqueId() --自車のIDを最後に保管\r\n if I:GetFriendlyCount()>0 then\r\n  for fi = 0, I:GetFriendlyCount()-1 do\r\n   local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n   ftbl[fi]=FriendlyInfo.Id  --IDを配列に保管\r\n  end\r\n end\r\n --ソートアルゴリズムでIDから自車の番号を獲得\r\n for i = 0, I:GetFriendlyCount() do\r\n  for j = I:GetFriendlyCount(), i + 1, -1 do\r\n   if ftbl[i] < ftbl[j]  then\r\n    ftbl[i], ftbl[j] = ftbl[j], ftbl[i]\r\n   end\r\n  end\r\n end\r\n --ソート結果に基づいて車番を振り分ける\r\n for fi = 0, I:GetFriendlyCount() do\r\n  if  I:GetUniqueId()== ftbl[fi] then --ソート済みの配列のfi番目に自車のIDが有ったら\r\n   tanknum=fi\r\n  end\r\n end\r\n return tanknum\r\nend\n\nfunction GetMyTankID(I,tankNum)\r\n --車番のIDを獲得\r\n if I:GetFriendlyCount()==0 then return -1 end --エラー\r\n\r\n ftbl = {}\r\n ftbl[I:GetFriendlyCount()]= I:GetUniqueId() --自車のIDを最後に保管\r\n if I:GetFriendlyCount()>0 then\r\n  for fi = 0, I:GetFriendlyCount()-1 do\r\n   local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n   ftbl[fi]=FriendlyInfo.Id  --IDを配列に保管\r\n  end\r\n end\r\n --ソートアルゴリズムでIDから自車の番号を獲得\r\n for i = 0, I:GetFriendlyCount() do\r\n  for j = I:GetFriendlyCount(), i + 1, -1 do\r\n   if ftbl[i] < ftbl[j]  then\r\n    ftbl[i], ftbl[j] = ftbl[j], ftbl[i]\r\n   end\r\n  end\r\n end\r\n if GetMyTankNum(I) == tankNum then\r\n  return I:GetUniqueId()\r\n else\r\n  return ftbl[tankNum]\r\n end\r\nend\n\n\rfunction FriendPosition(I,friendId,XYZ)--IDから位置を求める,XYZ:x=1,y=2,z=3\r\n if I:GetFriendlyCount()==0 then\r\n  if XYZ==1 then  return 0 end\r\n  if XYZ==2 then  return 0 end\r\n  if XYZ==3 then  return 0 end\r\n end\r\n if I:GetUniqueId() == friendId then\r\n  if XYZ==1 then  return 0 end\r\n  if XYZ==2 then  return 0 end\r\n  if XYZ==3 then  return 0 end\r\n end\r\n for fi = 0, I:GetFriendlyCount()-1 do\r\n  local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n  if I:GetFriendlyInfo(fi).Id == friendId then\r\n   if XYZ==1 then  return I:GetFriendlyInfo(fi).ReferencePosition.x end\r\n   if XYZ==2 then  return I:GetFriendlyInfo(fi).ReferencePosition.y end\r\n   if XYZ==3 then  return I:GetFriendlyInfo(fi).ReferencePosition.z end\r\n  end\r\n end\r\n return 0 --エラー\r\nend\n\r\n\n\nfunction MissilePos(I,WarnNum,XYZ)\n wobj = I:GetMissileWarning(WarnNum)\r\n if(wobj.Valid == true) then\r\n  I:Log(WarnNum..\":\"..wobj.Range)\r\n  if XYZ==1 then return wobj.Position.x end\n  if XYZ==2 then return wobj.Position.y end\n  if XYZ==3 then return wobj.Position.z end\n else\n  return -1 --エラー\n end\r\nend\n\n\nfunction Update(I)\r\n\r\n\r\n --表示可能範囲（mapの大きさに合わせて書き換えてください）\r\n --Viewable range (please rewrite according to the size of the map)\r\n\r\n xh=1.5\r\n xl=-1.5\r\n yh=1.5\r\n yl=-1.5\r\n              --map上の１mの表示範囲 １m　display　range　on　map\r\n mainflameID=0\r\n focus_number=27         --同時識別数　Number of simultaneous identifications\r\n\r\n\r\n --変数定義 Variable define\r\n\r\n RangeX=Range*(xh-xl)\r\n RangeY=Range*(yh-yl)\r\n\r\n I:ClearLogs()\r\n target = {}\r\n x = {}\r\n y = {}\r\n\r\n\r\n --自己角度計算　Earn self azimath \r\n r=math.atan2(I:GetConstructForwardVector()[3], I:GetConstructForwardVector()[1])\r\n r=r+math.pi*-0.5\n\r\n --入力　input\r\n --自分の位置を獲得\r\n --Earn self pos\r\n selfPosition = I:GetConstructCenterOfMass()\r\n --敵のデータ獲得\r\n --Earn enemy pos\r\n for i = 0, focus_number-1, 1 do \r\n  target[i] = I:GetTargetInfo(mainflameID, i)\r\n end\r\n\r\n\n\n --座標計算 --Coordinate calculation\r\n for i = 0, focus_number-1, 1 do \r\n\n\n  --相対位置計算　Relative position calculation\r\n\r  if i<8 then\n   x[i]=-target[i].Position[1]\r+selfPosition.x\n   y[i]=target[i].Position[3]\r-selfPosition.z\n\n   --敵の存在確認 --enemy being?\r\n   if target[i].Valid == true then\r\n   else--敵がいない場合初期位置に移動\r\n   --Move to initial position if there are no enemies\r\n\r\n    x[i] = 0\r\n    y[i] = 0\r\n   end\r\n\n--   I:Log(\"敵\"..i..\"の座標x\"..x[i]..\"の座標z\"..y[i])\n  elseif i<16 then\n   x[i]=-FriendPosition(I,GetMyTankID(I,i-8),1)\r+selfPosition.x\n   y[i]=FriendPosition(I,GetMyTankID(I,i-8),3)-selfPosition.z\n\n   --味方の存在確認 --friend being?\r\n  --味方がいない場合初期位置に移動\r\n   --Move to initial position if there are no friends\r\n   if FriendPosition(I,GetMyTankID(I,i-8),1) == 0 then\r\n    x[i] = 0\n    y[i] = 0\n   end\n\n  else\n   if MissilePos(I,i-16,1)\r == -1 then\n    x[i] = 0\n    y[i] = 0\n   else\n    x[i] = -MissilePos(I,i-16,1)\r+selfPosition.x\n    y[i] = MissilePos(I,i-16,3)\r-selfPosition.z\n   end\n\n  end\n end\n\n\n\n\n for i = 0, focus_number-1, 1 do \r\n\n  --グローバル座標をMAP座標に変換\r\n  --global→map\r\n  x[i]=x[i]\r/RangeY\n  y[i]=y[i]/RangeY\r\n\n\n  tempX=x[i]\n  tempY=y[i]\n  x[i] = math.cos(r)*tempX- math.sin(r)*tempY\n  y[i] = math.sin(r)*tempX+ math.cos(r)*tempY\n  I:Log(i..\"の位置x\"..tempX..\"|\"..x[i]..\"位置y\"..tempY..\"|\"..y[i])\n\n  --クランプ\r\n  --clamp\r\n  if x[i]>xh then x[i]=xh end\r\n  if y[i]>yh then y[i]=yh end\r\n  if x[i]<xl then x[i]=xl end\r\n  if y[i]<yl then y[i]=yl end\r\n\r\n\r\n\n end\r\n\n --自己位置 --self pos calc\r\n-- selfposx=(xh-xl)/2+xl\r\n-- selfposy=(yh-yl)/2+yl\r\n selfposx=0\r\n selfposy=0\r\n\r\n\r\n --出力\r\n --outputs\r\n for inputID=1 ,#Holoplojector do\r\n  for i=0,#Holoplojector do\r\n   if I:Component_GetBlockInfo(33,i).CustomName == Holoplojector[inputID].name then\r\n    outputID = i\r\n   else\r\n   end\r\n  end\r\n\n  I:Log(inputID..\"→\"..outputID)\r\n  \r\n  if inputID==1 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[0]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[0]+1) \r\n  end\r\n  if inputID==2 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[1]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[1]-1) \r\n  end\r\n  if inputID==3 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[2]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[2]-1) \r\n  end\r\n  if inputID==4 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[3]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[3]+1) \r\n  end\r\n  if inputID==5 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[4]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[4]-1) \r\n  end\r\n  if inputID==6 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[5]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[5]) \r\n  end\r\n  if inputID==7 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[6]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[6]) \r\n  end\r\n  if inputID==8 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[7]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[7]+1) \r\n  end\r\n  if inputID==9 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[8]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[8]+1) \r\n  end\r\n  if inputID==10 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[9]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[9]+1) \n  end\r\n  if inputID==11 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[10]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[10]+1)\n  end\r\n  if inputID==12 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[11]+1.0) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[11]) \r\n  end\r\n  if inputID==13 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[12]-1)\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[12]) \r\n  end\r\n  if inputID==14 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[13]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[13]-1) \r\n  end\r\n  if inputID==15 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[14]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[14]-1) \r\n  end\r\n  if inputID==16 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[15]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[15]-1) \r\n  end\r\n  if inputID==17 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[16]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[16]-1) \n  end\r\n  if inputID==18 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[17]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[17])\n  end\r\n  if inputID==19 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[18]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[18]+1) \r\n  end\r\n  if inputID==25 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[19])--bag\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[19]+1) \r\n  end\r\n  if inputID==21 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[20]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[20]-1) \r\n  end\r\n  if inputID==22 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[21]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[21]-1) \r\n  end\r\n  if inputID==26 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[22]+1)--bag \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[22]+1) \r\n  end\r\n  if inputID==24 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[23]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[23]) \r\n  end\r\n end\r\nend"],"BlockStringDataIds":[2],"GameVersion":"3.4.8.0","PersistentSubObjectIndex":0,"PersistentBlockIndex":86,"AuthorDetails":{"Valid":true,"ForeignBlocks":0,"CreatorId":"8e393002-cf31-4333-bec7-33dec41ad5b6","ObjectId":"9aab94da-5c45-49e6-b91a-336a7fc54061","CreatorReadableName":"nisi","HashV1":"90f297a6f0ad957713c87c2dea98b7d5"},"BlockCount":58},{"ContainedMaterialCost":0.0,"CSI":[0.0,0.0,-1.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,19.418689727783203,27.495573043823242,-1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,6.5100002288818359,0.0,0.10000000149011612,0.10000000149011612,1.0,1.0,3.0,-1.0,0.0,-1.0,0.0,-1.0,1.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,2.0,52.099998474121094,0.0,-1.0,0.0,0.0,500.0,-1.0,12.0,0.0,0.0,0.0,14.110869407653809,0.0,0.0,0.0,0.0,0.019565217196941376,0.0,0.0,0.0,0.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0],"COL":["0.011764,0,0,0","1,0,0,0.5","0,1,0,0.5","0,0,1,0.5","0.1,0.1,0.1,0.5","0.3,0.3,0.3,0.5","0.5,0.5,0.5,0.5","1,1,1,0.1","1,1,1,0.5","1,1,1,0.99","1,0.921568,0.015686,0.99","0,1,1,0.99","1,0,1,0.99","0.404058,0.707526,0.671258,0.866812","0.244063,0.700547,0.965221,0.795633","0.764537,0.128509,0.619747,0.966139","0.541439,0.76879,0.956338,0.080025","0.61776,0.594064,0.034648,0.043063","0.620732,0.684509,0.905798,0.291543","0.83261,0.9734,0.533476,0.357216","0.125189,0.161956,0.251975,0.474798","0.426653,0.588484,0.912715,0.22733","0.553937,0.257035,0.903544,0.385391","0.826545,0.918959,0.262981,0.982567","0.7138,0.228949,0.483761,0.449325","0.597618,0.102864,0.474108,0.793453","0.113338,0.496676,0.249026,0.711633","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0","0,0,0,0"],"SCs":[],"BLP":["0,1,0","0,1,-1","-1,1,-1","-1,2,-1","0,2,-1","0,0,-1","-1,0,-1","1,2,-1","1,1,-1","1,0,-1","0,-1,0","0,-1,-1","0,-1,3","0,-1,6","3,-1,0","6,-1,0","-1,-1,0","-4,-1,0","0,0,-3","0,0,-2","0,-2,6","-6,-2,0","6,-2,0","0,-2,-3","-6,0,0","-1,1,0","1,1,0","0,2,0","0,0,0","-1,2,0","1,2,0","1,0,0","-1,0,0","1,0,1","0,0,1","-1,0,1","1,1,1","-7,-1,0","0,-1,7","7,-1,0","0,-1,-4","-1,1,1","-1,2,1","0,2,1","1,2,1","-1,0,2","6,-1,-1","5,-1,-1","4,-1,-1","-1,1,2","-1,2,2","0,2,2","1,2,2","1,1,2","0,0,2","1,0,2","-1,0,3","-1,1,3","-1,2,3","0,2,3","1,2,3","1,1,3","1,0,3","0,0,3","-5,-1,-1","-4,-1,-1"],"BLR":[1,6,6,6,6,10,10,10,10,10,10,10,10,10,11,11,11,11,0,0,0,3,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,3,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"BP1":null,"BP2":null,"BCI":[1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,1,1,1,1,1,1,2,3,3,3,3,23,23,23,23,3,3,3,3,10,10,1,3,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,2,2],"BEI":null,"BlockData":"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","VehicleData":"Vy4AAAAAAAAHAAAAAAAAAAAAAAAA8FsKAQAAAAAOAAAAAAAPJwAAAAAA0AcAAAAAAJ9xBAAAAAAAHAAAANkADycAAAAAAKCGAQAANAAAAAAAADQAAQAAAACOAAAAEAAAAAAAAAAAAAAAAAAAAAABAAQAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAMABAEAAAAAABCasXX2Z0reQb1gZRusLP4XAQAMAABAQAAAgD8AAEBAAgAMAAAAAAAAAAAK16M8AwAMAAC0wgAAAAAAAAAABAAEGgAAAAUADAAAAAABAAAA/////wYAAQEAABD9SRXVOC5xQrhar97UVADfAQAMAABgQAAAYEAAACBBAgAMAAAAAAAAAACamZm+BAAEBwAAAAUADAAAAAABAAAA/////wYAAQFHKQEAAAAAAAcAAAAAAAAAAAAAAADBfVafAAAAAAcAAAAHAAAAAAAAAAAAAAQBAAAAOe0HAAAAAAAHAAAABwABAAAAAAAAAAAEPQpnPz41FAAAAAAABwAAACMAAQAAAAAAAAoABM3MzD0LAATNzMw9DAAEzczMPQ0ABM3MzD0OAATNzMw9UkMAAAAAAAAHAAAAAAABAAAAAAAAxEoAAAAAAAAHAAAADgAAAAAAAAAAAAAEAAAgQgMABAAAIEIr3goAAAAAAAcAAAAIAAEAAAAAAAAAAAEBAQABATKOUAAAAAAABwAAAAAAAAAAAAAAANCrZQAAAAAADgAAAAAAAAAAAAAAAAEAAAAAAAAuywQAAAAAAAcAAAAAACSIAAAAAADCJ2EAAAAAAAcAAABGAAAAAAAAAAAAAAQAAEhCCgAEAADIwQ8ABAAAXEIUAAQAAPpDGQAEAIA7RTIABABAHEY3AAQAQBxGHgAEAACAPyMABAAAgD8oAAQAAKBBEugBAAAAAAAOAAAAAAAPJwAAAAAAoIYBAAAAAA==","designChanged":false,"blueprintVersion":16,"blueprintName":"TR3x3mAdv35","SerialisedInfo":{"JsonDictionary":{},"IsEmpty":true},"Name":null,"ItemNumber":684,"LocalPosition":"-4,2,15","LocalRotation":"0,0,0,1","ForceId":1265728769,"TotalBlockCount":66,"MaxCords":"7,2,7","MinCords":"-7,-2,-4","BlockIds":[833,319,319,319,319,319,319,319,319,319,349,1679,1679,1679,1679,1679,1679,1679,819,861,767,767,767,767,153,795,795,795,795,795,795,795,795,795,795,795,795,183,183,183,183,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795],"BlockState":"=0,66","AliveCount":66,"BlockStringData":["--1ブロック辺り距離-----------------------------------------\n--meter per block\nRange=200\r\n\n---------------------------------------------------------\n\n\n\n\n\n\nHoloplojector={\r\n    {name=\"ENEMY1\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY2\"},\r\n    {name=\"ENEMY3\"},\r\n    {name=\"ENEMY4\"},--サブコントラクトにつけた名前\r\n    {name=\"ENEMY5\"},\r\n    {name=\"ENEMY6\"},\r\n    {name=\"ENEMY7\"}\r,\n    {name=\"ME\"},\n    {name=\"FRIEND1\"},\n    {name=\"FRIEND2\"},\n    {name=\"FRIEND3\"},\n    {name=\"FRIEND4\"},\n    {name=\"FRIEND5\"},\n    {name=\"FRIEND6\"},\n    {name=\"FRIEND7\"},\n    {name=\"FRIEND8\"},\n    {name=\"MISSILE1\"},\n    {name=\"MISSILE2\"},\n    {name=\"MISSILE3\"},\n    {name=\"MISSILE4\"},\n    {name=\"MISSILE5\"},--機能していないのでホロプロ削除\n    {name=\"MISSILE6\"},\n    {name=\"MISSILE7\"},\n    {name=\"MISSILE8\"},--機能していないのでホロプロ削除\n    {name=\"MISSILE9\"},\n    {name=\"MISSILE10\"},\n    {name=\"MISSILE11\"},\n    {name=\"MISSILE12\"},\n    {name=\"MISSILE13\"},\n    {name=\"MISSILE14\"},\n    {name=\"MISSILE15\"},\n    {name=\"MISSILE16\"},\n    {name=\"MISSILE17\"},\n    {name=\"MISSILE18\"},\n    {name=\"MISSILE19\"},\n    {name=\"MISSILE20\"},\n    {name=\"MISSILE21\"},\n    {name=\"MISSILE22\"}\n}\r\n\nfunction GetMissilePos(I,num,XYZ)\n if I:GetNumberOfWarnings() == 0 then\n  return -1\n else\n  if XYZ == 1 then return I:GetMissileWarning(num).ReferencePosition.x end\n  if XYZ == 2 then return I:GetMissileWarning(num).ReferencePosition.y end\n  if XYZ == 3 then return I:GetMissileWarning(num).ReferencePosition.z end\n end\n\nend\n\n\n\r\rfunction GetMyTankNum(I) --自車の車番を獲得\r\n\r\n ftbl = {}\r\n ftbl[I:GetFriendlyCount()]= I:GetUniqueId() --自車のIDを最後に保管\r\n if I:GetFriendlyCount()>0 then\r\n  for fi = 0, I:GetFriendlyCount()-1 do\r\n   local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n   ftbl[fi]=FriendlyInfo.Id  --IDを配列に保管\r\n  end\r\n end\r\n --ソートアルゴリズムでIDから自車の番号を獲得\r\n for i = 0, I:GetFriendlyCount() do\r\n  for j = I:GetFriendlyCount(), i + 1, -1 do\r\n   if ftbl[i] < ftbl[j]  then\r\n    ftbl[i], ftbl[j] = ftbl[j], ftbl[i]\r\n   end\r\n  end\r\n end\r\n --ソート結果に基づいて車番を振り分ける\r\n for fi = 0, I:GetFriendlyCount() do\r\n  if  I:GetUniqueId()== ftbl[fi] then --ソート済みの配列のfi番目に自車のIDが有ったら\r\n   tanknum=fi\r\n  end\r\n end\r\n return tanknum\r\nend\n\nfunction GetMyTankID(I,tankNum)\r\n --車番のIDを獲得\r\n if I:GetFriendlyCount()==0 then return -1 end --エラー\r\n\r\n ftbl = {}\r\n ftbl[I:GetFriendlyCount()]= I:GetUniqueId() --自車のIDを最後に保管\r\n if I:GetFriendlyCount()>0 then\r\n  for fi = 0, I:GetFriendlyCount()-1 do\r\n   local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n   ftbl[fi]=FriendlyInfo.Id  --IDを配列に保管\r\n  end\r\n end\r\n --ソートアルゴリズムでIDから自車の番号を獲得\r\n for i = 0, I:GetFriendlyCount() do\r\n  for j = I:GetFriendlyCount(), i + 1, -1 do\r\n   if ftbl[i] < ftbl[j]  then\r\n    ftbl[i], ftbl[j] = ftbl[j], ftbl[i]\r\n   end\r\n  end\r\n end\r\n if GetMyTankNum(I) == tankNum then\r\n  return I:GetUniqueId()\r\n else\r\n  return ftbl[tankNum]\r\n end\r\nend\n\n\rfunction FriendPosition(I,friendId,XYZ)--IDから位置を求める,XYZ:x=1,y=2,z=3\r\n if I:GetFriendlyCount()==0 then\r\n  if XYZ==1 then  return 0 end\r\n  if XYZ==2 then  return 0 end\r\n  if XYZ==3 then  return 0 end\r\n end\r\n if I:GetUniqueId() == friendId then\r\n  if XYZ==1 then  return 0 end\r\n  if XYZ==2 then  return 0 end\r\n  if XYZ==3 then  return 0 end\r\n end\r\n for fi = 0, I:GetFriendlyCount()-1 do\r\n  local FriendlyInfo = I:GetFriendlyInfo(fi)\r\n  if I:GetFriendlyInfo(fi).Id == friendId then\r\n   if XYZ==1 then  return I:GetFriendlyInfo(fi).ReferencePosition.x end\r\n   if XYZ==2 then  return I:GetFriendlyInfo(fi).ReferencePosition.y end\r\n   if XYZ==3 then  return I:GetFriendlyInfo(fi).ReferencePosition.z end\r\n  end\r\n end\r\n return 0 --エラー\r\nend\n\r\n\n\nfunction MissilePos(I,WarnNum,XYZ)\n wobj = I:GetMissileWarning(WarnNum)\r\n if(wobj.Valid == true) then\r\n  I:Log(WarnNum..\":\"..wobj.Range)\r\n  if XYZ==1 then return wobj.Position.x end\n  if XYZ==2 then return wobj.Position.y end\n  if XYZ==3 then return wobj.Position.z end\n else\n  return -1 --エラー\n end\r\nend\n\n\nfunction Update(I)\r\n\r\n\r\n --表示可能範囲（mapの大きさに合わせて書き換えてください）\r\n --Viewable range (please rewrite according to the size of the map)\r\n\r\n xh=1.5\r\n xl=-1.5\r\n yh=1.5\r\n yl=-1.5\r\n\n              --map上の１mの表示範囲 １m　display　range　on　map\r\n mainflameID=0\r\n focus_number=35         --同時識別数　Number of simultaneous identifications\r\n\r\n\r\n --変数定義 Variable define\r\n\r\n RangeX=Range*(xh-xl)\r\n RangeY=Range*(yh-yl)\r\n\r\n I:ClearLogs()\r\n target = {}\r\n x = {}\r\n y = {}\r\n\r\n\r\n --自己角度計算　Earn self azimath \r\n r=math.atan2(I:GetConstructForwardVector()[3], I:GetConstructForwardVector()[1])\r\n r=r+math.pi*-0.5\n\r\n --入力　input\r\n --自分の位置を獲得\r\n --Earn self pos\r\n selfPosition = I:GetConstructCenterOfMass()\r\n --敵のデータ獲得\r\n --Earn enemy pos\r\n for i = 0, focus_number-1, 1 do \r\n  target[i] = I:GetTargetInfo(mainflameID, i)\r\n end\r\n\r\n\n\n --座標計算 --Coordinate calculation\r\n for i = 0, focus_number-1, 1 do \r\n\n\n  --相対位置計算　Relative position calculation\r\n\r  if i<8 then\n   x[i]=-target[i].Position[1]\r+selfPosition.x\n   y[i]=target[i].Position[3]\r-selfPosition.z\n\n   --敵の存在確認 --enemy being?\r\n   if target[i].Valid == true then\r\n   else--敵がいない場合初期位置に移動\r\n   --Move to initial position if there are no enemies\r\n\r\n    x[i] = 0\r\n    y[i] = 0\r\n   end\r\n\n--   I:Log(\"敵\"..i..\"の座標x\"..x[i]..\"の座標z\"..y[i])\n  elseif i<16 then\n   x[i]=-FriendPosition(I,GetMyTankID(I,i-8),1)\r+selfPosition.x\n   y[i]=FriendPosition(I,GetMyTankID(I,i-8),3)-selfPosition.z\n\n   --味方の存在確認 --friend being?\r\n  --味方がいない場合初期位置に移動\r\n   --Move to initial position if there are no friends\r\n   if FriendPosition(I,GetMyTankID(I,i-8),1) == 0 then\r\n    x[i] = 0\n    y[i] = 0\n   end\n\n  else\n   if MissilePos(I,i-16,1)\r == -1 then\n    x[i] = 0\n    y[i] = 0\n   else\n    x[i] = -MissilePos(I,i-16,1)\r+selfPosition.x\n    y[i] = MissilePos(I,i-16,3)\r-selfPosition.z\n   end\n\n  end\n end\n\n\n\n\n for i = 0, focus_number-1, 1 do \r\n\n  --グローバル座標をMAP座標に変換\r\n  --global→map\r\n  x[i]=x[i]\r/RangeY\n  y[i]=y[i]/RangeY\r\n\n\n  tempX=x[i]\n  tempY=y[i]\n  x[i] = math.cos(r)*tempX- math.sin(r)*tempY\n  y[i] = math.sin(r)*tempX+ math.cos(r)*tempY\n  I:Log(i..\"の位置x\"..tempX..\"|\"..x[i]..\"位置y\"..tempY..\"|\"..y[i])\n\n  --クランプ\r\n  --clamp\r\n  if x[i]>xh then x[i]=xh end\r\n  if y[i]>yh then y[i]=yh end\r\n  if x[i]<xl then x[i]=xl end\r\n  if y[i]<yl then y[i]=yl end\r\n\r\n\r\n\n end\r\n\n --自己位置 --self pos calc\r\n-- selfposx=(xh-xl)/2+xl\r\n-- selfposy=(yh-yl)/2+yl\r\n selfposx=0\r\n selfposy=0\r\n\r\n\r\n --出力\r\n --outputs\r\n for inputID=1 ,#Holoplojector do\r\n  for i=0,#Holoplojector do\r\n   if I:Component_GetBlockInfo(33,i).CustomName == Holoplojector[inputID].name then\r\n    outputID = i\r\n   else\r\n   end\r\n  end\r\n\n  I:Log(inputID..\"→\"..outputID)\r\n  \r\n  if inputID==1 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[0]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[0]+1) \r\n  end\r\n  if inputID==2 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[1]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[1]-1) \r\n  end\r\n  if inputID==3 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[2]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[2]-1) \r\n  end\r\n  if inputID==4 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[3]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[3]+1) \r\n  end\r\n  if inputID==5 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[4]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[4]-1) \r\n  end\r\n  if inputID==6 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[5]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[5]) \r\n  end\r\n  if inputID==7 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[6]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[6]) \r\n  end\r\n  if inputID==8 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[7]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[7]+1) \r\n  end\r\n  if inputID==9 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[8]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[8]+1) \r\n  end\r\n  if inputID==10 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[9]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[9]+1) \n  end\r\n  if inputID==11 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[10]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[10]+1)\n  end\r\n  if inputID==12 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[11]+1.0) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[11]) \r\n  end\r\n  if inputID==13 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[12]-1)\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[12]) \r\n  end\r\n  if inputID==14 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[13]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[13]-1) \r\n  end\r\n  if inputID==15 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[14]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[14]-1) \r\n  end\r\n  if inputID==16 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[15]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[15]-1) \r\n  end\r\n  if inputID==17 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[16]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[16]-1) \n  end\r\n  if inputID==18 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[17]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[17])\n  end\r\n  if inputID==19 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[18]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[18]+1) \r\n  end\r\n  if inputID==25 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[19]) \r--bag対策\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[19]+1) \r\n  end\r\n  if inputID==21 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[20]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[20]-1) \r\n  end\r\n  if inputID==22 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[21]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[21]-1) \r\n  end\r\n  if inputID==26 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[22]+1) \r--bag対策\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[22]+1) \r\n  end\r\n  if inputID==24 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[23]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[23]) \r\n  end\r--ここから\n  if inputID==35 then\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[24]+1) \r--bag\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[24]+1) \r\n  end\r\n  if inputID==34 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[25]+1)\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[25]) \r\n  end\r\n  if inputID==29 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[26]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[26]-1) \r\n  end\r\n  if inputID==30 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[27]) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[27]-1) \r\n  end\r\n  if inputID==31 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[28]+1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[28]-1) \r\n  end\r\n  if inputID==36 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[29])\r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[29]+1) \r\n  end\r\n  if inputID==27 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[30]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[30]+1) \r\n  end\r\n  if inputID==28 then\r\n     I:Component_SetFloatLogic_1(33, outputID, 3, x[31]-1) \r\n     I:Component_SetFloatLogic_1(33, outputID, 4, y[31]) \r\n  end\r\n end\r\nend"],"BlockStringDataIds":[2],"GameVersion":"3.4.8.0","PersistentSubObjectIndex":0,"PersistentBlockIndex":94,"AuthorDetails":{"Valid":true,"ForeignBlocks":0,"CreatorId":"8e393002-cf31-4333-bec7-33dec41ad5b6","ObjectId":"9aab94da-5c45-49e6-b91a-336a7fc54061","CreatorReadableName":"nisi","HashV1":"90f297a6f0ad957713c87c2dea98b7d5"},"BlockCount":66}],"BLP":["-1,0,0","-5,0,0","-9,0,0","-13,0,0","-17,0,0","-21,0,0","-25,0,0","-29,0,0","-33,0,0","-37,0,0","-41,0,0","-45,0,0","-49,0,0","-53,0,0","-57,0,0","-61,0,0","-65,0,0","-69,0,0","-72,1,0","-29,1,0","-53,1,0","-4,1,0","0,0,0","0,-3,-1","0,-3,1","0,-3,5","-73,0,0","-73,-3,-1","-73,-3,4","-73,-4,4","-73,-4,-4","0,-4,-4","0,-4,8","-72,2,0","-53,2,0","-29,2,0","-4,2,0","-3,1,0","-28,1,0","-52,1,0","-71,1,0"],"BLR":[11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,12,6,4,4,13,22,22,0,2,2,0,0,0,0,0,0,0,0,0],"BP1":null,"BP2":null,"BCI":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"BEI":null,"BlockData":"EgAADgAAABIAAQAAAAAAAF0bAQAACwAAAAEBBwAE5EV5AgAABAEAAAATAAAOAAAAEgABAAAAAAAAXRsBAAALAAAAAQEHAASTV+1BAAAEBAAAABQAAA4AAAASAAEAAAAAAABdGwEAAAsAAAABAQcABKaSklcAAAQFAAAAFQAADgAAABIAAQAAAAAAAF0bAQAACwAAAAEBBwAEAX1xSwAABAcAAAAhAAAOAAAABwABAAAAAAAAXRsBAAAHAAMABORFeQIiAAAOAAAABwABAAAAAAAAXRsBAAAHAAMABKaSklcjAAAOAAAABwABAAAAAAAAXRsBAAAHAAMABJNX7UEkAAAOAAAABwABAAAAAAAAXRsBAAAHAAMABAF9cUslAAAOAAAAQQABAAAAAAAAXRsBAAA6AAAANzcgZW5lbXkgICAgICAgIDhmcmllbmQgICAgICAgIDE2bWlzc2lsZSAgICAgIHRhcmdldHRpbmcAAAQIAAAAJgAADgAAAEEAAQAAAAAAAF0bAQAAOgAAADc3IGVuZW15ICAgICAgICA4ZnJpZW5kICAgICAgICA4bWlzc2lsZSAgICAgICB0YXJnZXR0aW5nAAAECQAAACcAAA4AAAAyAAEAAAAAAABdGwEAACsAAAAoNyBlbmVteSAgICAgICAgOGZyaWVuZCAgICAgICAgdGFyZ2V0dGluZwAABAoAAAAoAAAOAAAAIwABAAAAAAAAXRsBAAAcAAAAGTcgZW5lbXkgICAgICAgIHRhcmdldHRpbmcAAAQLAAAA","VehicleData":"Vy4AAAAAAAAHAAAAAAAAAAAAAAAA8FsKAQAAAAAOAAAAAAAPJwAAAAAA0AcAAAAAAJ9xBAAAAAAADgAAAAAADycAAAAAAKCGAQAAAABHKQEAAAAAAAcAAAAAAAAAAAAAAADBfVafAAAAAAcAAAAHAAAAAAAAAAAAAAQBAAAAOe0HAAAAAAAHAAAABwABAAAAAAAAAAAEMWVcPD41FAAAAAAABwAAACMAAQAAAAAAAAoABM3MzD0LAATNzMw9DAAEzczMPQ0ABM3MzD0OAATNzMw9UkMAAAAAAAAHAAAAAAABAAAAAAAAxEoAAAAAAAAHAAAAAAAAAAAAAAAAK94KAAAAAAAHAAAACAABAAAAAAAAAAABAQEAAQEyjlAAAAAAAAcAAAAAAAAAAAAAAADQq2UAAAAAAA4AAAAAAAAAAAAAAAABAAAAAAAALssEAAAAAAAHAAAAAAAkiAAAAAAAwidhAAAAAAAHAAAARgAAAAAAAAAAAAAEAABIQgoABAAAyMEPAAQAAFxCFAAEAAD6QxkABACAO0UyAAQAQBxGNwAEAEAcRh4ABAAAgD8jAAQAAIA/KAAEAACgQRLoAQAAAAAADgAAAAAADycAAAAAAKCGAQAAAAA=","designChanged":false,"blueprintVersion":2,"blueprintName":"TR set","SerialisedInfo":{"JsonDictionary":{},"IsEmpty":true},"Name":null,"ItemNumber":684,"LocalPosition":"-165.6213,29.49552,551.7915","LocalRotation":"1.5457E-07,-0.9796603,-1.619431E-07,0.2006631","ForceId":1125559861,"TotalBlockCount":250,"MaxCords":"0,2,8","MinCords":"-73,-4,-4","BlockIds":[1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,824,824,824,824,1680,1680,1680,1680,1680,1680,1680,767,767,767,767,850,850,850,850,803,803,803,803],"BlockState":"=0,41","AliveCount":41,"BlockStringData":[],"BlockStringDataIds":[],"GameVersion":"3.4.8.0","PersistentSubObjectIndex":0,"PersistentBlockIndex":11,"AuthorDetails":{"Valid":true,"ForeignBlocks":0,"CreatorId":"8e393002-cf31-4333-bec7-33dec41ad5b6","ObjectId":"e1657591-548a-41a4-96c3-2c8a8b1493ae","CreatorReadableName":"nisi","HashV1":"8961534139daa66b55470007db60db0b"},"BlockCount":41}}