[Ohrrpgce] SVN: james/8834 Add preliminary scripting interface for NPC pathfinding. None of these a

Ralph Versteegen teeemcee at gmail.com
Thu Jun 8 21:06:17 PDT 2017


On 9 June 2017 at 10:32, <subversion at hamsterrepublic.com> wrote:

> james
> 2017-06-08 15:32:01 -0700 (Thu, 08 Jun 2017)
> 235
> Add preliminary scripting interface for NPC pathfinding. None of these are
> documented yet, because I gotta do testing first
>   pathfind npc to (n, x, y)
>   npc chases npc (n, dest n, stop when reached)
>   cancel npc movement override (n)
> ---
> U   wip/const.bi
> U   wip/game.bas
> U   wip/game.bi
> U   wip/plotscr.hsd
> U   wip/scriptcommands.bas
> U   wip/udts.bi
>

Cool!
Instead of cancelnpcmovementoverride I think we should add a generic
stopnpc command to stop the current walk. Currently you have to script it
yourself by doing walknpc(npc, left, 0) , walknpc(npc, down, 0), but that's
non-obvious and can leave the npc misaligned (I guess we can add an arg
whether to finish the current tile's movement or stop immediately).
I think that the NPC/hero pathfinding commands should behave like other
NPC/hero walking commands; for example waitfornpc should work, and using
walknpc would cancel pathfinding and vice versa. (Is it useful enough to
have a way to move an npc without cancelling pathfinding to go to the
trouble of special commands? I guess they would be 'pause' and 'resume'
commands.)
Still, I guess npciswalking should probably return false for a pathfinding
npc that's currently stuck for consistency, with a separate way to check
whether an npc is pathfinding.

I know we're not using script error levels for much currently, but I expect
they will be more important in future (in particular, I'd like to add a
script error log where you can see warning messages without them causing
annoying notifications). Don't use serrBound for new script commands. Use
serrBadOp. That's already the default for get_valid_npc_id.

pathfinder_stop_when_npc_reached won't work if the dest npc is just over
the map edge.

I'm rather amazed that it's possible to define constants with names npc and
pos, which are used elsewhere as variable names...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20170609/411a2fb4/attachment.htm>


More information about the Ohrrpgce mailing list