This function library contains bash shell functions related to improve the Health of a player.
Though it had been tested with the busybox ash shell, some functions might only work correctly in bash ( or the other way around ).
The functions use code from
These client side scripting files are suggested to be installed
inside the user's “HOME/.crossfire/s/” folder,
with a shortcut link cf → to the .crossfire directory,
to do have not much typing to do in the client's commandline.
Functions are usually named _function(){ ;} , functions named _ _function and _ _ _function are usually alternatives to the _function.
The main function currently is _check_hp, which calls _ _check_hp, which is not an alternative function for _check_hp here in the code.
The function _heal applies a parameter to increase hit points, falls back to the HEAL_ITEM variable.
The HEAL_ITEM variable can be set to something like HEAL_ITEM=“rod of heal”
in calling scripts.
75 lines of code without much explanations…
#!/bin/ash [ "$HAVE_FUNCS_HEAL" ] && return 0 # depends : [ "$HAVE_FUNCS_COMMON" ] || . cf_funcs_common.sh [ "$HAVE_FUNCS_REQUESTS" ] || . cf_funcs_requests.sh [ "$HAVE_FUNCS_ITEMS" ] || . cf_funcs_items.sh __check_hp(){ _debug "__check_hp:$*" _log "__check_hp:$*" while :; do unset HP MAXHP _request_stat_hp case $HP in '') :;; *) break 1;; esac sleep 0.1 done if test $MAXHP -le 20; then return 0 elif test $HP -le 100; then test $HP -gt $(( ( MAXHP / 10 ) * 9 )) else test $HP -gt $(( ( MAXHP / 100 ) * 90 )) fi } _heal(){ _debug "_heal:$*" _log "_heal:$*" local lITEM=${*:-"$HEAL_ITEM"} case $lITEM in *rod*|*staff*|*wand*|*horn*|*scroll*) if _check_have_item_in_inventory $lITEM; then unset NROF_ITEM else unset NROF_ITEM return 1 fi ;; *) :;; esac case $lITEM in *rod*|*staff*|*wand*|*horn*) _is 1 1 apply -u $lITEM _is 1 1 apply -a $lITEM _is 1 1 fire 0 _is 1 1 fire_stop ;; *scroll*) _is 1 1 apply $lITEM;; '') :;; *) _is 1 1 invoke $lITEM;; esac } _check_hp(){ _debug "_check_hp:$*" _log "_check_hp:$*" while :; do __check_hp && return 0 _heal _sleep done } HAVE_FUNCS_HEAL=1 ###END###