Not sure if it is AI but anyway. I am making an entity that moves from checkpoint to checkpoint. If a player is near it will go to then, else if a creep it will go to them, else if a tower ect... all the way to base.
If there is nothing near it it will move to the next checkpoint. If there is no next checkpoint then it will move to the enemy base.
Well this is what i have. The only problem is that it doesn't move anywhere but to the player if the player is near. Any suggestions/criticizing on my coding will be accepted. This is the first time i have done anything like this..
Well just before the code. I have all the variables, all the entitys are working ect.. it only follows the player.. PLEASE HELP ME
BTW This is just the think code. I think this is all the code u need if you need to see anymore just post i will put more up.
[code]
function ENT:Think()
if self.Entity.Active == 1 then
if self.Entity.dogaEnemyTeam && self.Entity.Lane then
if self.Entity.Timer < CurTime() then
if self.Entity.dogaEnemyTeam == 1 then
self.Entity:SetColor(0,0,255,255)
else
self.Entity:SetColor(0,255,0,255)
end
self.Entity.MoveToEnt = 0
self.Entity.Timer = CurTime() + 1
for k,v in pairs (ents.FindInSphere(self:GetPos(),200)) do
local tower = "doga_Team"..self.Entity.dogaEnemyTeam.."Tower"
if v:IsPlayer() && v:Alive() && v:Team() != self.Entity.dogaEnemyTeam then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == "doga_Creep" && v.dogaEnemyTeam != self.Entity.dogaEnemyTeam then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == tower then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == "doga_Spawner" && v.DogaTeam != self.Entity.dogaEnemyTeam then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == "doga_CheckPoint"..self.Entity.Lane then
if v.DogaTeam == self.Entity.dogaEnemyTeam && v.DogaCheckPoint == self.Entity.CurrentMovepoint then
for k2,v2 in pairs (ents.FindByClass( "doga_CheckPoint"..self.Entity.Lane )) do
if v2.DogaCheckPoint == self.Entity.CurrentMovepoint + 1 then
self.Entity.CurrentMovepoint = self.Entity.CurrentMovepoint + 1
self.Entity.self.Entity.MoveToEnt = 0
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
else
self.Entity.MoveToBase = 1
end
end
end
end
end
if self.Entity.MoveToBase == 1 then
for _,base in pairs (ents.FindByClass("doga_Team"..self.Entity.dogaEnemyTeam.."Base")) do
self.Entity:SetPos(self.Entity:GetPos() +((base:GetPos() - self.Entity:GetPos()):GetNormal()*40))
if (base:GetPos() - self.Entity:GetPos()):Length() < 100 then
base:TakeDamage(20,self.Entity)
end
end
end
if self.Entity.MoveToEnt == 0 then
for _,ent in pairs (ents.FindByClass("doga_CheckPoint"..self.Entity.Lane )) do
print ("works")
if ent.DogaCheckPoint == self.Entity.CurrentMovepoint then
self.Entity:SetPos(self.Entity:GetPos() +((ent:GetPos() - self.Entity:GetPos()):GetNormal()*40))
end
end
end
end
else
self:Remove()
end
end
end
[/code]
[lua]function ENT:Think()
if self.Entity.Active == 1 && self.Entity.dogaEnemyTeam
&& self.Entity.Lane && self.Entity.Timer < CurTime() then
if self.Entity.dogaEnemyTeam == 1 then
self.Entity:SetColor(0,0,255,255)
else
self.Entity:SetColor(0,255,0,255)
end
self.Entity.MoveToEnt = 0
self.Entity.Timer = CurTime() + 1
for k,v in pairs (ents.FindInSphere(self:GetPos(),200)) do
local tower = "doga_Team" .. self.Entity.dogaEnemyTeam .. "Tower"
if v:IsPlayer() && v:Alive() && v:Team() != self.Entity.dogaEnemyTeam then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == "doga_Creep" && v.dogaEnemyTeam != self.Entity.dogaEnemyTeam then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == tower then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == "doga_Spawner" && v.DogaTeam != self.Entity.dogaEnemyTeam then
if (v:GetPos() - self.Entity:GetPos()):Length() < 100 then
v:TakeDamage(20,self.Entity)
end
self.Entity.MoveToEnt = 1
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
elseif v:GetClass() == "doga_CheckPoint"..self.Entity.Lane
&& v.DogaTeam == self.Entity.dogaEnemyTeam
&& v.DogaCheckPoint == self.Entity.CurrentMovepoint then
for k2,v2 in pairs (ents.FindByClass( "doga_CheckPoint"..self.Entity.Lane )) do
if v2.DogaCheckPoint == self.Entity.CurrentMovepoint + 1 then
self.Entity.CurrentMovepoint = self.Entity.CurrentMovepoint + 1
self.Entity.self.Entity.MoveToEnt = 0
self.Entity:SetPos(self.Entity:GetPos() +((v:GetPos() - self.Entity:GetPos()):GetNormal()*40))
else
self.Entity.MoveToBase = 1
end
end
end
end
if self.Entity.MoveToBase == 1 then
for _,base in pairs (ents.FindByClass("doga_Team"..self.Entity.dogaEnemyTeam.."Base")) do
self.Entity:SetPos(self.Entity:GetPos() +((base:GetPos() - self.Entity:GetPos()):GetNormal()*40))
if (base:GetPos() - self.Entity:GetPos()):Length() < 100 then
base:TakeDamage(20,self.Entity)
end
end
end
if self.Entity.MoveToEnt == 0 then
for _,ent in pairs (ents.FindByClass("doga_CheckPoint"..self.Entity.Lane )) do
print ("works")
if ent.DogaCheckPoint == self.Entity.CurrentMovepoint then
self.Entity:SetPos(self.Entity:GetPos() +((ent:GetPos() - self.Entity:GetPos()):GetNormal()*40))
end
end
end
else
self:Remove()
end
end[/lua]
Just made a quick fix up. I didn't really change the content, but rather organized it better so there wasn't as much indentation. You can try and see if this fixed your problem or not(Doubt it, but it looks a little better).
Hi, I am Andres Kramack from [url]http://www.cathybarryadultstore.com/[/url].
It's a 'pleasure' serving the public if you know what I mean and this message is
Here at Cathy Barry Adult Store, we offer a wide variety of dildos that come in all sizes from goblin-sized dicks to black-man draconic dicks. I know at Facepunch everyone loves good old dicks which is why [B]I[/B] personally offer anyone with an association with Facepunch Forums a 50% discount code "DIL4FACEPUNCH". Don't forget, this offer lasts until the next Garry's Mod update which we so much love.
Here are pictures of our products just for you!
[IMG]http://pic.esmatube.com/imgs/a/g/t/x/x/giant_dildo_in_my_ass_part_ii-3_tmb.jpg[/IMG]
[IMG]http://pic.esmatube.com/imgs/a/d/d/h/r/bbw_giant_dildo_squat_25cm_round-3_tmb.jpg[/IMG]
[IMG]http://xxxdessert.com/tube/contents/videos_screenshots/15000/15261/preview.mp4.jpg[/IMG]
[IMG]http://g04.a.alicdn.com/kf/HTB1JlHlIpXXXXaJXVXXq6xXFXXXo/Silicone-Huge-Dildos-Vibrator-for-woman-shake-Horse-Dildos-penis-swith-sucker-african-Dong-dildos.jpg[/IMG]
Sponsored Images:
[IMG]http://45.media.tumblr.com/f81f8d61fa253dc804edb423c8ab149f/tumblr_mfbk96QAug1rvbfkuo1_500.gif[/IMG]
[IMG]http://49.media.tumblr.com/9110819111aa37acf4cd1c9d5341dd97/tumblr_nc4hqkdESo1skwv6ko1_500.gif[/IMG]
[IMG]http://1.bp.blogspot.com/-gueWbSnnsIc/UUtenyLS0oI/AAAAAAAANF4/L4aZnTrMaqs/s1600/dermatologists-hate-her.jpg[/IMG]
[IMG]http://static.fjcdn.com/pictures/Gym+leaders+hate+him_ab471d_5017861.jpg[/IMG]
[IMG]https://static.fjcdn.com/comments/That+one+with+the+lamp+got+me+_e68beb19422eea14289caa5f4d6dffb7.jpg[/IMG]
Got any questions? Visit my Steam Profile!
[url]http://steamcommunity.com/id/Robotboy655[/url]
Sorry, you need to Log In to post a reply to this thread.