I'm trying to make a E2 that floats above my head and aims where I point like I've seen all over gmod. So far my efforts have been unsuccessful. Here's what I got so far.
[CODE]@name
@inputs
@outputs
@persist
@trigger
@model models/hunter/blocks/cube025x025x025.mdl
interval(1)
entity():applyForce(owner():pos()-entity():pos()+vec(0,0,100))
entity():setMass(0.08)
[/CODE]
This works as long as I don't run. When I run or noclip the E2 decides to sit where it was, frozen in the air. Any help would be grate.
[code]@name MatadorForAll
@persist E:entity O:entity Hold Attack Dest:vector Vec:vector Ang:angle
if(first()){
#Make the angle for the death ball to spin randomly
A = 45
Ang = ang(randint(-A,A),randint(-A,A),randint(-A,A)) * 50000
#Hide the chip
entity():setColor(0,0,0,0)
O = owner()
runOnTick(1)
}
Pos=E:pos()
#Spin the ball randomly
E:applyAngForce(Ang+$Ang*5)
#Only hover if the owner is alive
if(O:isAlive()){
#If holding, then move the chip above the owners head
if(Hold){
#Set Destination
Dest=O:pos()+vec(0,0,(200+E:radius()))
#If the ball is close, move slowly and accurately
if(Pos:distance(Dest)<50){
Attack = 0
Vec=(Dest-Pos)*E:mass()
E:applyForce(Vec+$Vec*5)
}
#If its far away, move quickly
else{
Vec=(Dest-Pos)*E:mass()*Pos:distance(Dest)*50000
E:applyForce(Vec)
}
}
#If the owner left clicks, start the attack sequence
if(Attack==0&O:keyAttack1()&E&O:aimEntity()!=E){
#Just incase it gets stuck
stoptimer("ManualReset")
timer("ManualReset",3000)
Dest=O:aimPos()
Hold=0
Attack=1
}
#Attack Code - Strikes the spot once
if(Attack==1){
Vec=(Dest-Pos)*E:mass()*50000*Pos:distance(Dest)
E:applyForce(Vec)
#When the ball reaches its target, go back to holding
if((Pos:distance(Dest)<20)){
Attack=2
Hold=1
}
}
#Attack 2 code - Flys constantly at the spot
if(O:keyAttack2()&E&O:aimEntity()!=E){
Attack=0
Hold=1
Dest=O:aimPos()
Vec=(Dest-Pos)*E:mass()*50000*Pos:distance(Dest)
E:applyForce(Vec)
}
if((O:keyUse()|O:keyAttack1()|O:keyAttack2())&!E){
print("ERROR: No prop selected")
}
#If porp is stuck, return to owner
if(clk("ManualReset")){
Attack=0
Hold=1
}
#Prop selection code
if(O:keyUse()&O:aimEntity()&O:aimEntity()!=E){
#Set the old prop to 5 mass and remove the trail
E:setMass(5)
E:removeTrails()
#Designate the new prop and play with its properties
E=O:aimEntity()
E:setMaterial("models/debug/debugwhite")
#E:setMaterial("models/props_combine/metal_combinebridge001")
E:setMass(80000)
print("Prop selected")
Hold=1
}
}
[/code]I know it's probably not what you want but it's a E2 that makes a proper hover above your head and follows you around (also I didn't make it got it from a E2 thread)
yea not really what i was looking for. i just want the e2 to float above my head and aim where i aim with the model of the .25x.25x.25 phx block. im just having trouble with it staying above me.
entity():applyForce(owner():pos()-entity():pos()+vec(0,0,100)*entity():isWeldedTo():mass())
oh and add
runOnTick(1)
Use this formula:
[code](((TargetPos-CurrentPos)*Multiplier-Velocity)*Mass)[/code]
I usually use 20, 50, or 100 for the Multiplier. Lower multiplier = slower speed. Higher multiplier = faster. Too high and it freaks out.
This means the code would be something like
[code]@persist E:entity
if (first()) {
E = entity()
runOnTick(1)
}
E:applyForce(((owner():pos()+vec(0,0,200)-E:pos())*20-E:vel())*E:mass())[/code]
thanks Divran. Again. Are you stalking me?
now to make it aim
still cant figure it out. heres what i got
[CODE]@name box
@outputs V:vector A:angle S:angle
@persist E:entity D:angle
@model models/hunter/blocks/cube025x025x025.mdl
if (first()) {
E = entity()
runOnTick(1)
}
E:applyForce(((owner():pos()+vec(0,0,100)
-E:pos())*40-E:vel())*E:mass())
V=owner():aimPos()
A=owner():eyeAngles()
S=E:angles()
#E:applyAngForce(A-S)
#E:setAng(A)
[/CODE]
Sorry, you need to Log In to post a reply to this thread.