Solarus-Games English Forum

Solarus => Development => Topic started by: zutokaza on June 01, 2017, 09:44:18 PM

Title: [Solved]Get all map entities?
Post by: zutokaza on June 01, 2017, 09:44:18 PM
Is it possible make a NPC target entities with a prefix?

Code ( lua) Select
target_movement:set_target(map:get_entities("bird_"))
Title: Re: Get all map entities?
Post by: Christopho on June 01, 2017, 11:24:04 PM
Well a movement can only have one direction at a time, so you have to choose a target.
You can always make a loop to detect the closest entity from a list of entities, and repeat this in a timer.
Title: Re: Get all map entities?
Post by: zutokaza on June 02, 2017, 05:08:13 PM
Quotemake a loop to detect the closest entity from a list of entities

How is that done? My script looks like this so far.

Code ( lua) Select
-- Call a function every second.
sol.timer.start(5000, function()
    local birds = map:get_entities("bird_")
    local npc_near_birds = npc_1:get_distance(birds)
    if npc_near_birds < 10 then
       movement = sol.movement.create("target")
       movement:set_target(birds)
       movement:set_speed(48)
       movement:start(npc_1)
    end
  return true  -- To call the timer again (with the same delay).
end)
Title: Re: Get all map entities?
Post by: zutokaza on June 04, 2017, 04:47:02 AM
Can anyone give me an example? Please...  :D
Title: Re: Get all map entities?
Post by: ffomega on June 05, 2017, 01:50:45 PM
I think the best example would be the "Evil Tile".  these are the tiles in dungeons that lift up and fly at the hero, one at a time, with a timed delay between each tile's movements.
Title: Re: Get all map entities?
Post by: zutokaza on June 05, 2017, 08:36:50 PM
Quote from: ffomega on June 05, 2017, 01:50:45 PM
I think the best example would be the "Evil Tile".  these are the tiles in dungeons that lift up and fly at the hero, one at a time, with a timed delay between each tile's movements.

Do you know what map and game the "Evil Tile" exists in?

Edit:
Found it.
https://github.com/solarus-games/zsdx/blob/dev/data/maps/evil_tiles.lua