@name Vector Triad calculator Mk-III
@inputs Laser:wirelink Thrust1:wirelink Thrust2:wirelink Thrust3:wirelink
@outputs
@persist Num N M O Thrust Chips Vec1mod:vector Vec2mod:vector Vec3mod:vector Buddy1:entity Buddy2:entity Buddy3:entity VecPre:vector
if(first()){
timer("vecfinder",10)
if(Thrust1 & Thrust2 & Thrust3){
Vec2mod = Thrust1:entity():pos() - Thrust2:entity():pos()
Vec3mod = Thrust1:entity():pos() - Thrust3:entity():pos()
Vec1mod = entity():pos() - Thrust1:entity():pos()}
else{stoptimer("vecfinder")}}
if(Thrust1 & Thrust2 & Thrust3){
interval(10)
Alt = ranger(1000)
if(Laser:number("Active")){
VecBase = vec(Laser:number("X"),Laser:number("Y"),0)}
else{VecBase = entity():pos()}
THoverZ = 30 - Alt:distance()
if(Alt:distance() != 30){
interval(10)
HovAlt = Alt:distance() + (THoverZ/8)}
Vec1 = -(VecBase + Vec1mod):setZ(HovAlt)
Vec2 = -(Vec1 + Vec2mod):setZ(HovAlt)
Vec3 = -(Vec1 + Vec3mod):setZ(HovAlt)
Thrust1:setVector("Vector",Vec1)
Thrust2:setVector("Vector",Vec2)
Thrust3:setVector("Vector",Vec3)}
interval(5000)
findInSphere(entity():pos(),200)
findClipToClass("gmod_wire_locator")
findSortByDistance(entity():pos())
#DRONE DETECTION
TarProps = findResult(Num + 1):getConstraints()
N = TarProps:count()
O = floor(TarProps:count()/2)
P = O + 1
interval(10)
if(M != O|N != P){
if(TarProps:entity(M):type() == Thrust1:entity():type()){
if(Thrust == 3){Thrust = 3}
else{Thrust += 1}}
elseif(TarProps:entity(M):type() == entity():type()){
if(Chips == 1){Chips = 1}
else{Chips += 1}}
else{M += 1}
if(TarProps:entity(N):type() == Thrust1:entity():type()){
if(Thrust == 3){Thrust = 3}
else{Thrust += 1}}
elseif(TarProps:entity(N):type() == entity():type()){
if(Chips == 1){Chips = 1}
else{Chips += 1}}
else{N -= 1}
if(TarProps:entity(P):type() == Thrust1:entity():type()){
if(Thrust == 3){Thrust = 3}
else{Thrust += 1}}
elseif(TarProps:entity(P):type() == entity():type()){
if(Chips == 1){Chips = 1}
else{Chips += 1}}
else{P += 1}
if(TarProps:entity(O):type() == Thrust1:entity():type()){
if(Thrust == 3){Thrust = 3}
else{Thrust += 1}}
elseif(TarProps:entity(O):type() == entity():type()){
if(Chips == 1){Chips = 1}
else{Chips += 1}}
else{O = O - 1}}
else{Ident = Chips + Thrust}
#BUDDY GENERATION
if(Ident == 4){
if(!Buddy1){Buddy1 = findResult(Num)}
elseif(!Buddy2){Buddy2 = findResult(Num)}
elseif(!Buddy3){
Buddy3 = findResult(Num)
Num += 1}}
else{Num += 1}
#BUDDY DISTANCE MONITOR
if(Buddy1){
timer("buddy1",100)
VecPre = VecBase
Bud1Dist = entity():pos():distance(Buddy1:pos())
if(Bud1Dist > 150){VecBase = Buddy1:pos()}
elseif(Bud1Dist < 100){VecBase = -Buddy1:pos()}
else{VecBase = VecPre}}
if(Buddy2){
timer("buddy2",100)
VecPre = VecBase
Bud2Dist = entity():pos():distance(Buddy2:pos())
if(Bud2Dist > 150){VecBase = Buddy2:pos()}
elseif(Bud2Dist < 100){VecBase = -Buddy2:pos()}
else{VecBase = VecPre}}
if(Buddy3){
timer("buddy3",100)
VecPre = VecBase
Bud3Dist = entity():pos():distance(Buddy3:pos())
if(Bud3Dist > 150){VecBase = Buddy3:pos()}
elseif(Bud3Dist < 100){VecBase = -Buddy3:pos()}
else{VecBase = VecPre}}
Bookmarks