… | |
… | |
24 | */ |
24 | */ |
25 | |
25 | |
26 | #include <global.h> |
26 | #include <global.h> |
27 | #include <loader.h> |
27 | #include <loader.h> |
28 | #include <skills.h> |
28 | #include <skills.h> |
29 | #ifndef __CEXTRACT__ |
|
|
30 | # include <sproto.h> |
29 | #include <sproto.h> |
31 | #endif |
|
|
32 | #include <living.h> |
30 | #include <living.h> |
33 | #include <math.h> |
31 | #include <math.h> |
34 | |
32 | |
35 | /* |
33 | /* |
36 | * Object id parsing functions |
34 | * Object id parsing functions |
… | |
… | |
710 | |
708 | |
711 | tmp->destroy (); |
709 | tmp->destroy (); |
712 | op->update_stats (); |
710 | op->update_stats (); |
713 | return; |
711 | return; |
714 | } |
712 | } |
715 | |
|
|
716 | /* If SAVE_INTERVAL is commented out, we never want to save |
|
|
717 | * the player here. |
|
|
718 | */ |
|
|
719 | #ifdef SAVE_INTERVAL |
|
|
720 | /* I'm not sure why there is a value check - since the save |
|
|
721 | * is done every SAVE_INTERVAL seconds, why care the value |
|
|
722 | * of what he is dropping? |
|
|
723 | */ |
|
|
724 | if (op->type == PLAYER && !QUERY_FLAG (tmp, FLAG_UNPAID) && |
|
|
725 | (tmp->nrof ? tmp->value * tmp->nrof : tmp->value > 2000) && (op->contr->last_save_time + SAVE_INTERVAL) <= time (NULL)) |
|
|
726 | { |
|
|
727 | op->contr->save (); |
|
|
728 | op->contr->last_save_time = time (NULL); |
|
|
729 | } |
|
|
730 | #endif /* SAVE_INTERVAL */ |
|
|
731 | |
713 | |
732 | if (op->type == PLAYER) |
714 | if (op->type == PLAYER) |
733 | esrv_del_item (op->contr, tmp->count); |
715 | esrv_del_item (op->contr, tmp->count); |
734 | |
716 | |
735 | /* Call this before we update the various windows/players. At least |
717 | /* Call this before we update the various windows/players. At least |