Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name Player Only Radar Automation
- @inputs Parent:entity TargeterSeat:entity EGP:wirelink CamHeading:angle Find
- @persist TargetLoop TargetCurrent:entity TargetAngleDifference
- @outputs Targets:array Target:entity Heading:angle Position:vector
- if (first() | dupefinished()){
- rangerPersist(1)
- rangerFilter(Parent)
- rangerFilter(Parent:getConstraints())
- function reloadTargets(){
- findClearWhiteList()
- findClearBlackList()
- findExcludeEntity(Parent)
- findExcludeEntities(Parent:getConstraints())
- findExcludePlayer(TargeterSeat:driver())
- findExcludeEntity(entity())
- findByClass("player")
- local Players = findToArray()
- #findByClass("acf_engine")
- #local Engines = findToArray()
- #findByClass("gmod_wire_expression2")
- #local Chips = findToArray()
- #findByClass("npc_*")
- #local NPCs = findToArray()
- #findByClass("wac_*")
- #local NPC1s = findToArray()
- #findByClass("gmod_safespace")
- #local NPC2s = findToArray()
- #findByClass("prop_vehicle_jeep_old")
- #local NPC3s = findToArray()
- #findByClass("prop_vehicle_airboat")
- #local NPC4s = findToArray()
- #findByClass("prop_vehicle_jeep")
- #local NPC5s = findToArray()
- Targets = Players#:add(Engines):add(NPCs):add(NPC1s):add(NPC2s):add(Chips):add(NPC3s):add(NPC4s):add(NPC5s)
- timer("reloadTargets", 5000)
- }
- function stopFind(){
- Target = TargetCurrent
- TargetCurrent = noentity()
- TargetAngleDifference = 0
- TargetLoop = 0
- soundStop(1)
- TargeterSeat:soundPlay(2, 0, "acf_extra/airfx/hominglockaquired1.wav")
- }
- function findTarget(){
- local Driver = TargeterSeat:driver()
- local DriverAngles = ->CamHeading ? CamHeading : Driver:eyeAngles()
- if (TargetLoop < Targets:count()){
- TargetLoop = TargetLoop + 1
- local Entity = Targets[TargetLoop, entity]
- local AngleHeading = -heading(Driver:pos(), ang(), Entity:pos())
- local AngleDelta = angnorm(AngleHeading - DriverAngles)
- local AngleDifference = abs(AngleDelta:pitch()) + abs(AngleDelta:yaw()) + abs(AngleDelta:roll())
- if (!TargetCurrent:isValid() | AngleDifference < TargetAngleDifference){
- TargetCurrent = Entity
- TargetAngleDifference = AngleDifference
- }
- timer("findTarget", 200)
- }else{
- stopFind()
- }
- }
- function startFind(){
- TargetLoop = 0
- stoptimer("findTarget")
- findTarget()
- TargeterSeat:soundPlay(1, 0, "acf_extra/airfx/laser_track.wav")
- soundStop(2)
- }
- function update(){
- if (EGP){
- EGP:egpClear()
- local ForwardRanger = rangerOffset(16000, Parent:pos(), Parent:forward())
- EGP:egp3DTracker(1, ForwardRanger:pos())
- #EGP:egpLine(2, vec2(0, -10), vec2(0, 10))
- #EGP:egpLine(3, vec2(-10, 0), vec2(10, 0))
- EGP:egpColor(2, vec(255, 0, 0))
- EGP:egpColor(3, vec(255, 0, 0))
- EGP:egpParent(2, 1)
- EGP:egpParent(3, 1)
- local Count = 3
- foreach (I, Entity:entity = Targets){
- Count = Count + 1
- local Tracker = Count
- EGP:egp3DTracker(Tracker, vec())
- EGP:egpParent(Tracker, Entity)
- Count = Count + 1
- EGP:egpTriangleOutline(Count, vec2(-10, 10), vec2(0, -10), vec2(10, 10))
- if (Entity == Target){
- EGP:egpColor(Count, vec(255, 0, 0))
- }else{
- EGP:egpColor(Count, vec(0, 255, 0))
- }
- EGP:egpParent(Count, Tracker)
- Count = Count + 1
- local Type = Entity:type()
- if (Type == "player"){
- EGP:egpText(Count, Entity:name() + " - " + Entity:health() + "%", vec2(10, 15))
- EGP:egpColor(Count, teamColor(Entity:team()))
- # }elseif (Type == "acf_engine"){
- # EGP:egpText(Count, "Engine", vec2(10, 15))
- # }elseif (Type == "gmod_wire_expression2"){
- # EGP:egpText(Count, "E2", vec2(10, 15))
- # }elseif (Type:sub(1, 4) == "npc_"){
- # EGP:egpText(Count, Entity:name() + " - " + Entity:health() + "%", vec2(10, 15))
- # EGP:egpText(Count, "NPC", vec2(10, 15))
- # }elseif (Type:sub(1, 4) == "wac_"){
- # EGP:egpText(Count, "WAC", vec2(10, 15))
- # }elseif (Type == "gmod_safespace"){
- # EGP:egpText(Count, "Safe Space", vec2(10, 15))
- # }elseif (Type:sub(1, 4) == "prop_vehicle_jeep_old"){
- # EGP:egpText(Count, "Jeep", vec2(10, 15))
- # }elseif (Type:sub(1, 4) == "prop_vehicle_airboat"){
- # EGP:egpText(Count, "Airboat", vec2(10, 15))
- #}elseif (Type:sub(1, 4) == "prop_vehicle_jeep"){
- # EGP:egpText(Count, "Train", vec2(10, 15))
- }
- if (Entity == Target){
- EGP:egpColor(Count, vec(255, 0, 0))
- }
- EGP:egpParent(Count, Tracker)
- }
- }
- if (Target:isValid()){
- Position = Target:massCenter()
- if (Target:isPlayer()){
- Position = Target:pos() + vec(0, 0, 32)
- }
- Heading = -heading(Parent:pos(), ang(), Position)
- }
- timer("update", 250)
- }
- timer("reloadTargets", 10)
- timer("update", 500)
- }else{
- local ClkName = clkName()
- if (ClkName:length() > 0){
- ClkName()
- }elseif (~Find & Find){
- startFind()
- }
- }
- ################
- #EGP Auto Connect #
- ################
- #
- if(first() | duped())
- {
- EGP:egpHudToggle()
- reset()
- }
- #
- ################
- # End of E2. #
- ################
- ``````
- @name Player Only Radar Automation
- @inputs Parent:entity TargeterSeat:entity EGP:wirelink CamHeading:angle Find
- @persist TargetLoop TargetCurrent:entity TargetAngleDifference
- @outputs Targets:array Target:entity Heading:angle Position:vector
- if (first() | dupefinished()){
- rangerPersist(1)
- rangerFilter(Parent)
- rangerFilter(Parent:getConstraints())
- function reloadTargets(){
- findClearWhiteList()
- findClearBlackList()
- findExcludeEntity(Parent)
- findExcludeEntities(Parent:getConstraints())
- findExcludePlayer(TargeterSeat:driver())
- findExcludeEntity(entity())
- findByClass("player")
- local Players = findToArray()
- Targets = Players#:add(Engines):add(NPCs):add(NPC1s):add(NPC2s):add(Chips):add(NPC3s):add(NPC4s):add(NPC5s)
- timer("reloadTargets", 5000)
- }
- function stopFind(){
- Target = TargetCurrent
- TargetCurrent = noentity()
- TargetAngleDifference = 0
- TargetLoop = 0
- soundStop(1)
- TargeterSeat:soundPlay(2, 0, "acf_extra/airfx/hominglockaquired1.wav")
- }
- function findTarget(){
- local Driver = TargeterSeat:driver()
- local DriverAngles = ->CamHeading ? CamHeading : Driver:eyeAngles()
- if (TargetLoop < Targets:count()){
- TargetLoop = TargetLoop + 1
- local Entity = Targets[TargetLoop, entity]
- local AngleHeading = -heading(Driver:pos(), ang(), Entity:pos())
- local AngleDelta = angnorm(AngleHeading - DriverAngles)
- local AngleDifference = abs(AngleDelta:pitch()) + abs(AngleDelta:yaw()) + abs(AngleDelta:roll())
- if (!TargetCurrent:isValid() | AngleDifference < TargetAngleDifference){
- TargetCurrent = Entity
- TargetAngleDifference = AngleDifference
- }
- timer("findTarget", 200)
- }else{
- stopFind()
- }
- }
- function startFind(){
- TargetLoop = 0
- stoptimer("findTarget")
- findTarget()
- TargeterSeat:soundPlay(1, 0, "acf_extra/airfx/laser_track.wav")
- soundStop(2)
- }
- function update(){
- if (EGP){
- EGP:egpClear()
- local ForwardRanger = rangerOffset(16000, Parent:pos(), Parent:forward())
- EGP:egp3DTracker(1, ForwardRanger:pos())
- EGP:egpColor(2, vec(255, 0, 0))
- EGP:egpColor(3, vec(255, 0, 0))
- EGP:egpParent(2, 1)
- EGP:egpParent(3, 1)
- local Count = 3
- foreach (I, Entity:entity = Targets){
- Count = Count + 1
- local Tracker = Count
- EGP:egp3DTracker(Tracker, vec())
- EGP:egpParent(Tracker, Entity)
- Count = Count + 1
- EGP:egpTriangleOutline(Count, vec2(-10, 10), vec2(0, -10), vec2(10, 10))
- if (Entity == Target){
- EGP:egpColor(Count, vec(255, 0, 0))
- }else{
- EGP:egpColor(Count, vec(0, 255, 0))
- }
- EGP:egpParent(Count, Tracker)
- Count = Count + 1
- local Type = Entity:type()
- if (Type == "player"){
- EGP:egpText(Count, Entity:name() + " - " + Entity:health() + "%", vec2(10, 15))
- EGP:egpColor(Count, teamColor(Entity:team()))
- }
- if (Entity == Target){
- EGP:egpColor(Count, vec(255, 0, 0))
- }
- EGP:egpParent(Count, Tracker)
- }
- }
- if (Target:isValid()){
- Position = Target:massCenter()
- if (Target:isPlayer()){
- Position = Target:pos() + vec(0, 0, 32)
- }
- Heading = -heading(Parent:pos(), ang(), Position)
- }
- timer("update", 250)
- }
- timer("reloadTargets", 10)
- timer("update", 500)
- }else{
- local ClkName = clkName()
- if (ClkName:length() > 0){
- ClkName()
- }elseif (~Find & Find){
- startFind()
- }
- }
- ################
- #EGP Auto Connect #
- ################
- #
- if(first() | duped())
- {
- EGP:egpHudToggle()
- reset()
- }
- #
- ################
- # End of E2. #
- ################
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement