Jump to content

Recommended Posts

So I just did a test. Spawned like 5 chests and then spawned a Deerclops. He went for the chests, destroyed one and then came for me, ignoring the other chests. Didn't even attack him, I just stood there.

So are you sure he doesn't aggro @psyk90913 ?

@psyk90913 is right. A regular Deerclops (usually) won't aggro, but a DebugSpawned one will.

The thing is when a Deerclops spawns normally (by the basehassler component), the game will search within a 10 tile radius around the player for a structure, and if it is found its position will be marked as the player's base. When it has this position specified, it won't aggro unless provoked, but otherwise it will.

EDIT: To properly spawn a test Deerclops, instead of DebugSpawn()'ing it use

GetWorld().components.basehassler:ReleaseHassler()
Note that this won't spawn it under the mouse cursor like DebugSpawn(). It will randomly appear 10 tiles away from the player.
Link to comment
Share on other sites

@psyk90913 is right. A regular Deerclops (usually) won't aggro, but a DebugSpawned one will.

The thing is when a Deerclops spawns normally (by the basehassler component), the game will search within a 10 tile radius around the player for a structure, and if it is found its position will be marked as the player's base. When it has this position specified, it won't aggro unless provoked, but otherwise it will.

EDIT: To properly spawn a test Deerclops, instead of DebugSpawn()'ing it use

GetWorld().components.basehassler:ReleaseHassler()
Note that this won't spawn it under the mouse cursor like DebugSpawn(). It will randomly appear 10 tiles away from the player.

 

Onto it.

Edit : Yep. Destroys only two things and then becomes docile.  Reported : http://forums.kleientertainment.com/index.php?/topic/29602-bug-deerclops-becomes-neutral/

Link to comment
Share on other sites

The thing is when a Deerclops spawns normally (by the basehassler component), the game will search within a 10 tile radius around the player for a structure, and if it is found its position will be marked as the player's base. When it has this position specified, it won't aggro unless provoked, but otherwise it will.

I thouhgt it's 5 radius, is it?

local inst = CreateEntity()			inst.entity:AddTransform()			inst.entity:AddSoundEmitter()			inst.persists = false			local theta = math.random() * 2 * PI			local radius = 5			self.timetonextwarningsound = 15 + math.random(4)						if self.timetoattack < 30 then				self.timetonextwarningsound = 10 + math.random(1)				radius = radius			elseif self.timetoattack < 60 then				radius = radius + 10			elseif self.timetoattack < 90 then				radius = radius + 15			else				radius = radius + 20			end

Onto it.

Edit : Yep. Destroys only two things and then becomes docile.  Reported : http://forums.kleientertainment.com/index.php?/topic/29602-bug-deerclops-becomes-neutral/

It doen't relative if it's a bug or not. The command Simplex gave is just point out Deerclop won't aggro and only destroy 2 things, it didn't clarify it's a bug.

You must make sure that A is an true statement about Deerclops's behaviour, so you can claim that ¬A(negative of A) is a bug. But at this moment we still haven't known what is real A.

Since I haven't experience on lua I can't say nothing for sure which code return to actually deerclop's behavior. But I did some test on an old version of the game(The end of the beginning, of course it's an illegal way) and those weird behavior said are actually deerclops's behavior. Most of people just had misconception about him.

24OU65t.jpg

I have to used the skip day command because the basehassler command didn't work on old version.

It's possible that the developers update some new code which cause the bug so I already took a look on the difference between 2 files. It's seem nothing relative changes cause the bug. But good to hear an expert about lua say something.

You can see the difference here:

http://www.diffchecker.com/trvydfqt

Link to comment
Share on other sites

 Since I haven't experience on lua I can't say nothing for sure which code return to actually deerclop's behavior. But I did some test on an old version of the game(The end of the beginning, of course it's an illegal way) and those weird behavior said are actually deerclops's behavior. Most of people just had misconception about him.

well some bugs can last a long time, there was a graphical bug a while back concerning the deerclops that was only fixed roughly 2-3 updates ago

 

it was there from the update involving introduction of the deerclops

Link to comment
Share on other sites

well some bugs can last a long time, there was a graphical bug a while back concerning the deerclops that was only fixed roughly 2-3 updates ago

 

it was there from the update involving introduction of the deerclops

May be. But the devs never ever said that what is his behaviour, no instruction either.

Assume we ignore the code, we can consider these is his behaviour.

Link to comment
Share on other sites

May be. But the devs never ever said that what is his behaviour, no instruction either.

Assume we ignore the code, we can consider these is his behaviour.

truth be told, none of us can be considered right until there is an official point made about it. As is it could go either way

Link to comment
Share on other sites

That's why I said assume ignore the code. Player can't know what suppose to be so they can consider it's normal, not a bug. I don't find any reason that we must think it's a bug, it's like prejudice.

Anyway the fact that I can test on older version, like which one has deerclop's debut, but the debug console wasn't allow to use yet.

Link to comment
Share on other sites

That's why I said assume ignore the code. Player can't know what suppose to be so they can consider it's normal, not a bug. I don't find any reason that we must think it's a bug, it's like prejudice.

Anyway the fact that I can test on older version, like which one has deerclop's debut, but the debug console wasn't allow to use yet.

Considering I've seen numerous cases where it attacks all structures until destroyed and then comes for the player if it sees them, then yeah, bug.

Link to comment
Share on other sites

You can't use the personal experience to find the fact.

Example mine is seem very difference, I discover his behaviour from early version. Why don't we reserve the common sense that his aggro is a bug?

These are just opinions so disregard if you don't really care for them:

 

if its aggro is a bug, why would it obtain Boss monster status? it'd seem silly to implement a boss you aren't even meant to fight

Link to comment
Share on other sites

I thouhgt it's 5 radius, is it?

local inst = CreateEntity()			inst.entity:AddTransform()			inst.entity:AddSoundEmitter()			inst.persists = false			local theta = math.random() * 2 * PI			local radius = 5			self.timetonextwarningsound = 15 + math.random(4)						if self.timetoattack < 30 then				self.timetonextwarningsound = 10 + math.random(1)				radius = radius			elseif self.timetoattack < 60 then				radius = radius + 10			elseif self.timetoattack < 90 then				radius = radius + 15			else				radius = radius + 20			end

No, it's 40 (units of distance, a tile has a side of 4 units). The radius in the code you posted is for the origin of the "growling" (?) sound, which doesn't really come from the Deerclops itself. The relevant radii are

local HASSLER_SPAWN_DIST = 40
in basehassler.lua, for the spawning distance, and

local SEE_DIST = 40
in deerclopsbrain.lua, for the structure seeking radius (it's used in the function BaseDestroy).

It doen't relative if it's a bug or not. The command Simplex gave is just point out Deerclop won't aggro and only destroy 2 things, it didn't clarify it's a bug.

As I just posted in the bug report Teo made, it's clearly not a bug, but intentional design. In deerclopsbrain.lua we have

local function CanDestroyBase(inst)    return inst.structuresDestroyed and inst.structuresDestroyed < 2end
Link to comment
Share on other sites

These are just opinions so disregard if you don't really care for them:

 

if its aggro is a bug, why would it obtain Boss monster status? it'd seem silly to implement a boss you aren't even meant to fight

Yes you are justifiable from the point of view of the people who use common sense.

But for me I don't always use common sense if not almost none. I tend to follow the EULA, readme, help book, the instruction,a documentary, what the book written... If none of them show that deerclops must be the first one attack player, I won't think it's a bug.

Well I prefer theory than practical.

 

As I just posted in the bug report Teo made, it's clearly not a bug, but intentional design. In deerclopsbrain.lua we have

local function CanDestroyBase(inst)    return inst.structuresDestroyed and inst.structuresDestroyed < 2end

Are there any code that he must attack player?

Link to comment
Share on other sites

[...] and then comes for the player if it sees them, then yeah, bug.

That's one of its quirks, as I pointed out before. If when it spawns there isn't a structure within a 10 tile radius, it will aggro. Combine that with what I pointed out in the bug report (that it always goes after walls) and you have an explanation for it.

Link to comment
Share on other sites

Are there any code that he must attack player?

The relevant code is in prefabs/deerclops.lua:

local function RetargetFn(inst)    return FindEntity(inst, TARGET_DIST, function(guy)        return inst.components.combat:CanTarget(guy)               and not guy:HasTag("prey")               and not guy:HasTag("smallcreature")               and (inst.components.knownlocations:GetLocation("targetbase") == nil or guy.components.combat.target == inst)    end)end
It will only attack you if either you are targeting him or he doesn't have a "targetbase" set (which will happens if and only he spawned when there were no structures within a 10 tile radius from the player). The "targetbase" location is never cleared, even if he were to somehow destroy everything in it, so this is completely determined by the circumstances of his spawning.

I'm so pissed at Klei right now because of this.

Me too, me too...

Link to comment
Share on other sites

I'm just confused as to whether that's their full decision or just a slight oversight or whatever it is... 

My problem is that I've had it attack me after it destroyed Bee Boxes for instance, even though there were walls and other Boxes nearby. So was it a bug that killed me those times?

Link to comment
Share on other sites

My problem is that I've had it attack me after it destroyed Bee Boxes for instance, even though there were walls and other Boxes nearby. So was it a bug that killed me those times?

Had you clicked on it? If you targeted it, even momentarily (even if you didn't manage to hit it), it could aggro (where the "could" comes from it only looking for a target every few seconds, so there's some bad timing involved).

And by the way, @TeoSS69, if it spawned away from your base (not having the "targetbase" set) it'll still target structures as well as aggroing on you. The only difference is that it won't actively search for you base, but follow you instead.

Link to comment
Share on other sites

Had you clicked on it? If you targeted it, even momentarily (even if you didn't manage to hit it), it could aggro (where the "could" comes from it only looking for a target every few seconds, so there's some bad timing involved).

No. At the time I thought that he made the player a priority over the structures so you know...why waste my boomerang when he'll come for me anyway.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...