[CF-Devel] Client side improvements
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Sun Nov 9 19:27:23 CST 2003
Adam Ashenfelter wrote:
>
I usualy use the gtk client, but if the common client can be updated it would
>
be better in the long run.
>
>
As far as scipting languages are concerned, I think perl/python are overkill
>
for the client side. Some simple if, else, while, for statements would be
>
nice. The 'if' statement should be able to check success.
>
>
if (apply health potion)
>
else
>
cast heal
>
endif
Well, it depends on what you mean by success.
If you mean success in that we find a matching object and send it to the
server or process, that is easy.
If you mean success in that the server said it succeeded, what is much more
difficult due to the time delay involved (this applies more to casting spells,
where you might fumble it for example - there will definately be some lag
between the client sending the command and the server getting the chance to
execute it.
>
>
>
Probably the best way to automate the client that would be easy for everybody
>
to use would be a trigger mechanism. So I can add a trigger that runs the
>
above script whenever my hitpoints fall below a certain point. The interface
>
would be similar to setting up shortcut keys.
Or it may be more flexible for the script to run every tick, and the script
itself has its conditions and what to do.
I say this in that if we start having C code in the client that is the
condition for running the script, it starts to make more sense to just have
likely actions of what to do when that happens, also in C code.
One could for example have something like a 'hp < 20%' check in C code, but
the client then has the list of objects/spells to cast (in order of preference)
when that happens. Eg, have a little interface where you drag the
potions/spells/whatever to for order to apply. When all of the first one run
it, everything else moves up.
But then I start having other concerns - under such a mechanism, players might
start to ask 'well, I had this script set to apply healing potions, and I still
had healing potions, yet I still died due to lack of hp'. And of course the
real reason that happened is lag or whatever else, but try to start explaining
that to players since it woudl appear like a built in feature which should do
what you want to do.
Anyways, if you had a script that was called every tick, and it had some
number of preset known variables (hp, sp, grace, etc) then you could start doing
things like:
if (hp < 20) { do healing stuff }
if (sp < 20) { do sp regen stuff}
if (grace < 20) {do grace regen stuff }
and so in, without having to insert hooks for all that into the client itself
- the script itself becomes its own hook so to speak.
This also has an interesting idea in that you can then have commands to run a
special script instead of the normal one, eg, a 'prayer' regen script:
if (grace > maxgrace) exit 1
else { do praying; exit 0}
If the client sees the exit 1, it then stops running that script and then goes
back to running the default script or something
>
>
>
As for other improvements to the client, a command history would be nice. So
>
up and down arrow in the command window would cycle back and forth through
>
history.
That already exists for the gtk client.
>
>
Another nice feature to have (I'm not sure this is possible in the client)
>
would be a more mud like command language. For instance take 'apply', and
>
create more specific commands (eat, drink, enter/go,wear, wield,read,etc).
>
They do the same exact thing as apply, but can only target certain item
>
types. For example, a corpse is on the exit, I could use 'go' on the exit,
>
and I apply the exit instead of the corpse. Currently, when I'm in a hurry
>
to leave a room, I sometimes eat a corpse. Also some of the skills should
>
have a command (ie,disarm,hide,pick,steal, meditate, etc).
Well, that later case is really just binding keys to them. I suppose command
aliases coudl also be done also, but not sure how bug adeal that really is (as
said, I'd expect players to just bind keys to them).
That said, apply of 'meta' types coudl be done, eg, 'apply food' vs 'apply
floor', etc. The client could key in on the client types or something on what
it thinks is food (eg, it wouldn't be perfect, as that booze could be poisonous
or something).
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list