[crossfire] The future of Crossfire
Nicolas Weeger
nicolas.weeger at laposte.net
Wed Jun 6 12:20:15 CDT 2007
> Fair enough. It is sometimes hard to find the correct information, or if
> there is even correct information. It may be a question if there is a
> better way to organize the wiki - I don't know if there is - unless one is
> to read everything on the wiki, it can get confusing fairly quickly - you
> see same/similar topics under different sub pages, and in same cases, they
> go to the same page, in other cases, they go to different topis, so it can
> make it difficult to know if you've actually read all the relevant
> informatin.
Then feel free to ask on the list :)
People will answer if they wrote about the subject on the wiki :)
> I am saying that there should be sample scripts for some of the more
> frequently used/desired type of NPCS, or scripts in general. sure, if I'm
> asking for something fairly obscure or something that will be used once, I
> should expect that I'll need to write my own script.
>
> But if all I want is an NPC that takes and item and gives an exp reward,
> that should be standard enough that I shouldn't need to write that from
> scratch.
Yes. But no one so was used the plugins/scripting support at all.
Now we are starting to see a few things, and as I said I'm ready to develop if
people need help - but the mere fact no one asked also means there was no
need.
So call to all map makers: imagine things! Dream of fun things! You'll get
help for scripting if you need it.
> 1) I think sometimes we become overly cautious about making changes that
> may have bad effects or create other things that need fixing - the problem
> is that this tends to paralyze us into not making any change at all, which
> doesn't help us go forward.
Maybe, but game balance can be hard to maintain. Having a 2.0 branch is the
right opportunity for this kind of things. So let's break havoc! :)
> My point above is that if I write a script that moves an NPC, I
> basically want something like:
>
> move_to(x,y);
> apply_exit();
> move_to(x1, y1);
> move_to(x2, y2);
> move_to(x3, y3);
> apply_exit();
> move_to(.., ..)
>
> Where each action doesn't get processed until it does the previous one
> (we don't start move to x2,y2 until we reach x1, y1, etc.
>
> In addition, that move logic should probably have some options, like
> avoid obstacles (if something is in the way, will change course), will pick
> up things while it moves, will (or won't) attack enemy creatures as it
> moves, etc.
No, you should say:
move_to(exit_x, exit_y)
apply_exit()
move_to(other_exit_x, other_exit_y)
Note that you can already - in Python import CFMove and use
get_object_to(object, x, y) ; in C use the cf_object_move() wrapper.
> How exactly all that logic is done, I don't really care much - if it is
> with python libraries, fine. If there is C code to help, fine. One
> concern on something like this, especially if there are a lot of NPCs
> about, is actual performance - if all done in python code, I'd have to
> imagine there'd be a fair amount of extra overhead as it examines the
> objets on all the surrounding spacing, as it looks for alternative paths,
We'll deal with performance issue when we encounter it :)
Let's first write content :)
We can always rewrite parts in C later, tweak stuff, whatever - many
possibilities, which we'll use when the need arises.
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref
de l'aléatoire !]
More information about the crossfire
mailing list