SHARE
TWEET

Player Only Radar Automation

KrazziPro Jun 16th, 2019 115 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. @name Player Only Radar Automation
  2. @inputs Parent:entity TargeterSeat:entity EGP:wirelink CamHeading:angle Find
  3. @persist TargetLoop TargetCurrent:entity TargetAngleDifference
  4. @outputs Targets:array Target:entity Heading:angle Position:vector
  5.  
  6. if (first() | dupefinished()){
  7.     rangerPersist(1)
  8.     rangerFilter(Parent)
  9.     rangerFilter(Parent:getConstraints())
  10.    
  11.     function reloadTargets(){
  12.         findClearWhiteList()
  13.         findClearBlackList()
  14.         findExcludeEntity(Parent)
  15.         findExcludeEntities(Parent:getConstraints())
  16.         findExcludePlayer(TargeterSeat:driver())
  17.         findExcludeEntity(entity())
  18.        
  19.         findByClass("player")
  20.         local Players = findToArray()
  21.        
  22.         #findByClass("acf_engine")
  23.         #local Engines = findToArray()
  24.        
  25.         #findByClass("gmod_wire_expression2")
  26.         #local Chips = findToArray()
  27.        
  28.         #findByClass("npc_*")
  29.         #local NPCs = findToArray()
  30.        
  31.         #findByClass("wac_*")
  32.         #local NPC1s = findToArray()
  33.        
  34.         #findByClass("gmod_safespace")
  35.         #local NPC2s = findToArray()
  36.        
  37.         #findByClass("prop_vehicle_jeep_old")
  38.         #local NPC3s = findToArray()
  39.        
  40.         #findByClass("prop_vehicle_airboat")
  41.         #local NPC4s = findToArray()
  42.        
  43.         #findByClass("prop_vehicle_jeep")
  44.         #local NPC5s = findToArray()
  45.        
  46.         Targets = Players#:add(Engines):add(NPCs):add(NPC1s):add(NPC2s):add(Chips):add(NPC3s):add(NPC4s):add(NPC5s)
  47.         timer("reloadTargets", 5000)
  48.     }
  49.    
  50.     function stopFind(){
  51.         Target = TargetCurrent
  52.         TargetCurrent = noentity()
  53.         TargetAngleDifference = 0
  54.         TargetLoop = 0
  55.         soundStop(1)
  56.         TargeterSeat:soundPlay(2, 0, "acf_extra/airfx/hominglockaquired1.wav")
  57.     }
  58.    
  59.     function findTarget(){
  60.         local Driver = TargeterSeat:driver()
  61.         local DriverAngles = ->CamHeading ? CamHeading : Driver:eyeAngles()
  62.         if (TargetLoop < Targets:count()){
  63.             TargetLoop = TargetLoop + 1
  64.             local Entity = Targets[TargetLoop, entity]
  65.             local AngleHeading = -heading(Driver:pos(), ang(), Entity:pos())
  66.             local AngleDelta = angnorm(AngleHeading - DriverAngles)
  67.             local AngleDifference = abs(AngleDelta:pitch()) + abs(AngleDelta:yaw()) + abs(AngleDelta:roll())
  68.             if (!TargetCurrent:isValid() | AngleDifference < TargetAngleDifference){
  69.                 TargetCurrent = Entity
  70.                 TargetAngleDifference = AngleDifference
  71.             }
  72.             timer("findTarget", 200)
  73.         }else{
  74.             stopFind()
  75.         }
  76.     }
  77.    
  78.     function startFind(){
  79.         TargetLoop = 0
  80.         stoptimer("findTarget")
  81.         findTarget()
  82.         TargeterSeat:soundPlay(1, 0, "acf_extra/airfx/laser_track.wav")
  83.         soundStop(2)
  84.     }
  85.    
  86.     function update(){
  87.         if (EGP){
  88.             EGP:egpClear()
  89.             local ForwardRanger = rangerOffset(16000, Parent:pos(), Parent:forward())
  90.             EGP:egp3DTracker(1, ForwardRanger:pos())
  91.             #EGP:egpLine(2, vec2(0, -10), vec2(0, 10))
  92.             #EGP:egpLine(3, vec2(-10, 0), vec2(10, 0))
  93.             EGP:egpColor(2, vec(255, 0, 0))
  94.             EGP:egpColor(3, vec(255, 0, 0))
  95.             EGP:egpParent(2, 1)
  96.             EGP:egpParent(3, 1)
  97.            
  98.             local Count = 3
  99.             foreach (I, Entity:entity = Targets){
  100.                 Count = Count + 1
  101.                 local Tracker = Count
  102.                 EGP:egp3DTracker(Tracker, vec())
  103.                 EGP:egpParent(Tracker, Entity)
  104.                
  105.                 Count = Count + 1
  106.                 EGP:egpTriangleOutline(Count, vec2(-10, 10), vec2(0, -10), vec2(10, 10))
  107.                 if (Entity == Target){
  108.                     EGP:egpColor(Count, vec(255, 0, 0))
  109.                 }else{
  110.                     EGP:egpColor(Count, vec(0, 255, 0))
  111.                 }
  112.                 EGP:egpParent(Count, Tracker)
  113.                
  114.                 Count = Count + 1
  115.                 local Type = Entity:type()
  116.                 if (Type == "player"){
  117.                     EGP:egpText(Count, Entity:name() + " - " + Entity:health() + "%", vec2(10, 15))
  118.                     EGP:egpColor(Count, teamColor(Entity:team()))
  119.               #  }elseif (Type == "acf_engine"){
  120.                #     EGP:egpText(Count, "Engine", vec2(10, 15))
  121.                # }elseif (Type == "gmod_wire_expression2"){
  122.                #     EGP:egpText(Count, "E2", vec2(10, 15))
  123.                # }elseif (Type:sub(1, 4) == "npc_"){
  124.                #     EGP:egpText(Count, Entity:name() + " - " + Entity:health() + "%", vec2(10, 15))
  125.                #     EGP:egpText(Count, "NPC", vec2(10, 15))
  126.                # }elseif (Type:sub(1, 4) == "wac_"){
  127.                #     EGP:egpText(Count, "WAC", vec2(10, 15))
  128.                # }elseif (Type == "gmod_safespace"){
  129.                #     EGP:egpText(Count, "Safe Space", vec2(10, 15))
  130.                # }elseif (Type:sub(1, 4) == "prop_vehicle_jeep_old"){
  131.                #     EGP:egpText(Count, "Jeep", vec2(10, 15))
  132.                # }elseif (Type:sub(1, 4) == "prop_vehicle_airboat"){
  133.                 #    EGP:egpText(Count, "Airboat", vec2(10, 15))
  134.                 #}elseif (Type:sub(1, 4) == "prop_vehicle_jeep"){
  135.                 #    EGP:egpText(Count, "Train", vec2(10, 15))
  136.                 }
  137.                
  138.                 if (Entity == Target){
  139.                     EGP:egpColor(Count, vec(255, 0, 0))
  140.                 }
  141.                 EGP:egpParent(Count, Tracker)
  142.             }
  143.         }
  144.         if (Target:isValid()){
  145.             Position = Target:massCenter()
  146.             if (Target:isPlayer()){
  147.                 Position = Target:pos() + vec(0, 0, 32)
  148.             }
  149.             Heading = -heading(Parent:pos(), ang(), Position)
  150.         }
  151.         timer("update", 250)
  152.     }
  153.    
  154.     timer("reloadTargets", 10)
  155.     timer("update", 500)
  156. }else{
  157.     local ClkName = clkName()
  158.     if (ClkName:length() > 0){
  159.         ClkName()
  160.     }elseif (~Find & Find){
  161.         startFind()
  162.     }
  163. }
  164. ################
  165. #EGP Auto Connect #
  166. ################
  167. #
  168. if(first() | duped())
  169. {
  170. EGP:egpHudToggle()
  171. reset()
  172. }
  173. #
  174. ################
  175. #      End of E2.         #
  176. ################
  177. ``````
  178. @name Player Only Radar Automation
  179. @inputs Parent:entity TargeterSeat:entity EGP:wirelink CamHeading:angle Find
  180. @persist TargetLoop TargetCurrent:entity TargetAngleDifference
  181. @outputs Targets:array Target:entity Heading:angle Position:vector
  182.  
  183. if (first() | dupefinished()){
  184.     rangerPersist(1)
  185.     rangerFilter(Parent)
  186.     rangerFilter(Parent:getConstraints())
  187.    
  188.     function reloadTargets(){
  189.         findClearWhiteList()
  190.         findClearBlackList()
  191.         findExcludeEntity(Parent)
  192.         findExcludeEntities(Parent:getConstraints())
  193.         findExcludePlayer(TargeterSeat:driver())
  194.         findExcludeEntity(entity())
  195.        
  196.         findByClass("player")
  197.         local Players = findToArray()
  198.                
  199.         Targets = Players#:add(Engines):add(NPCs):add(NPC1s):add(NPC2s):add(Chips):add(NPC3s):add(NPC4s):add(NPC5s)
  200.         timer("reloadTargets", 5000)
  201.     }
  202.    
  203.     function stopFind(){
  204.         Target = TargetCurrent
  205.         TargetCurrent = noentity()
  206.         TargetAngleDifference = 0
  207.         TargetLoop = 0
  208.         soundStop(1)
  209.         TargeterSeat:soundPlay(2, 0, "acf_extra/airfx/hominglockaquired1.wav")
  210.     }
  211.    
  212.     function findTarget(){
  213.         local Driver = TargeterSeat:driver()
  214.         local DriverAngles = ->CamHeading ? CamHeading : Driver:eyeAngles()
  215.         if (TargetLoop < Targets:count()){
  216.             TargetLoop = TargetLoop + 1
  217.             local Entity = Targets[TargetLoop, entity]
  218.             local AngleHeading = -heading(Driver:pos(), ang(), Entity:pos())
  219.             local AngleDelta = angnorm(AngleHeading - DriverAngles)
  220.             local AngleDifference = abs(AngleDelta:pitch()) + abs(AngleDelta:yaw()) + abs(AngleDelta:roll())
  221.             if (!TargetCurrent:isValid() | AngleDifference < TargetAngleDifference){
  222.                 TargetCurrent = Entity
  223.                 TargetAngleDifference = AngleDifference
  224.             }
  225.             timer("findTarget", 200)
  226.         }else{
  227.             stopFind()
  228.         }
  229.     }
  230.    
  231.     function startFind(){
  232.         TargetLoop = 0
  233.         stoptimer("findTarget")
  234.         findTarget()
  235.         TargeterSeat:soundPlay(1, 0, "acf_extra/airfx/laser_track.wav")
  236.         soundStop(2)
  237.     }
  238.    
  239.     function update(){
  240.         if (EGP){
  241.             EGP:egpClear()
  242.             local ForwardRanger = rangerOffset(16000, Parent:pos(), Parent:forward())
  243.             EGP:egp3DTracker(1, ForwardRanger:pos())
  244.             EGP:egpColor(2, vec(255, 0, 0))
  245.             EGP:egpColor(3, vec(255, 0, 0))
  246.             EGP:egpParent(2, 1)
  247.             EGP:egpParent(3, 1)
  248.            
  249.             local Count = 3
  250.             foreach (I, Entity:entity = Targets){
  251.                 Count = Count + 1
  252.                 local Tracker = Count
  253.                 EGP:egp3DTracker(Tracker, vec())
  254.                 EGP:egpParent(Tracker, Entity)
  255.                
  256.                 Count = Count + 1
  257.                 EGP:egpTriangleOutline(Count, vec2(-10, 10), vec2(0, -10), vec2(10, 10))
  258.                 if (Entity == Target){
  259.                     EGP:egpColor(Count, vec(255, 0, 0))
  260.                 }else{
  261.                     EGP:egpColor(Count, vec(0, 255, 0))
  262.                 }
  263.                 EGP:egpParent(Count, Tracker)
  264.                
  265.                 Count = Count + 1
  266.                 local Type = Entity:type()
  267.                 if (Type == "player"){
  268.                     EGP:egpText(Count, Entity:name() + " - " + Entity:health() + "%", vec2(10, 15))
  269.                     EGP:egpColor(Count, teamColor(Entity:team()))
  270.                 }
  271.                
  272.                 if (Entity == Target){
  273.                     EGP:egpColor(Count, vec(255, 0, 0))
  274.                 }
  275.                 EGP:egpParent(Count, Tracker)
  276.             }
  277.         }
  278.         if (Target:isValid()){
  279.             Position = Target:massCenter()
  280.             if (Target:isPlayer()){
  281.                 Position = Target:pos() + vec(0, 0, 32)
  282.             }
  283.             Heading = -heading(Parent:pos(), ang(), Position)
  284.         }
  285.         timer("update", 250)
  286.     }
  287.    
  288.     timer("reloadTargets", 10)
  289.     timer("update", 500)
  290. }else{
  291.     local ClkName = clkName()
  292.     if (ClkName:length() > 0){
  293.         ClkName()
  294.     }elseif (~Find & Find){
  295.         startFind()
  296.     }
  297. }
  298. ################
  299. #EGP Auto Connect #
  300. ################
  301. #
  302. if(first() | duped())
  303. {
  304. EGP:egpHudToggle()
  305. reset()
  306. }
  307. #
  308. ################
  309. #      End of E2.         #
  310. ################
  311. ```
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top