Page 1 of 1

[Resolved] Who Killed the Biter...

Posted: Sat Jul 08, 2017 5:02 pm
by TheSAguy
Hi,

I have some new enemies that have a new force I created (Vampire) and want to do something each time they kill the normal biters (Force.enemy)

How will I do the check to see who killed the biter?
I can only thing of doing it that when the normal biter dies, look in a small radius around it, and if it finds the new force, Vampire, assume it did the killing.

Is there another/better way of doing this?

Thanks.

Re: Who Killed the Biter...

Posted: Sat Jul 08, 2017 5:20 pm
by prg
on_entity_died
Called when an entity dies.

Contains
entity :: LuaEntity
cause :: LuaEntity (optional): The entity that did the killing if available.
force :: LuaForce (optional): The force that did the killing if any.

Re: Who Killed the Biter...

Posted: Sat Jul 08, 2017 5:30 pm
by TheSAguy
Thanks.

Re: Who Killed the Biter...

Posted: Sat Jul 08, 2017 7:43 pm
by TheSAguy
prg wrote:on_entity_died
Called when an entity dies.

Contains
entity :: LuaEntity
cause :: LuaEntity (optional): The entity that did the killing if available.
force :: LuaForce (optional): The force that did the killing if any.
Hey prg,

I have a follow-up question, so "on_entity_died" gives me the info on the killed unit.
What if I also want to do something with the unit that did the killing. Can I access the "cause" unit and do something with it?

Thanks.

Re: Who Killed the Biter...

Posted: Sat Jul 08, 2017 8:15 pm
by prg
Yes. (Be sure to check for nil since it's optional.)

Re: Who Killed the Biter...

Posted: Mon Jul 10, 2017 9:39 am
by bobingabout
Assuming you're using this example: (The important part being function(event))

Code: Select all

script.on_event(defines.events.on_entity_died, function(event)
   local recently_deceased_entity = event.entity
   local time_of_death = event.tick

   for _, player in pairs(game.players) do
     player.print("Let it be known that " .. recently_deceased_entity.name ..
                  " died a tragic death on tick " .. time_of_death)
   end
 end)

Code: Select all

if event.cause then
  --do stuff to event.cause here
end

Re: Who Killed the Biter...

Posted: Mon Jul 10, 2017 8:53 pm
by TheSAguy
Thanks so much for this, will save me hours of trail and error... :D