1 | /* |
1 | /* |
2 | * static char *rcsid_c_object_c = |
2 | * static char *rcsid_c_object_c = |
3 | * "$Id: c_object.C,v 1.6 2006/08/26 23:36:33 root Exp $"; |
3 | * "$Id: c_object.C,v 1.7 2006/08/27 15:24:22 root Exp $"; |
4 | */ |
4 | */ |
5 | /* |
5 | /* |
6 | CrossFire, A Multiplayer game for X-windows |
6 | CrossFire, A Multiplayer game for X-windows |
7 | |
7 | |
8 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
8 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
… | |
… | |
636 | } |
636 | } |
637 | } |
637 | } |
638 | else |
638 | else |
639 | remove_ob (tmp); |
639 | remove_ob (tmp); |
640 | |
640 | |
641 | /* Lauwenmark: Handle for plugin drop event */ |
641 | if (INVOKE_OBJECT (DROP, tmp, ARG_OBJECT (op))) |
642 | if (execute_event (tmp, EVENT_DROP, op, NULL, NULL, SCRIPT_FIX_ALL) != 0) |
|
|
643 | return; |
642 | return; |
644 | |
643 | |
645 | if (QUERY_FLAG (tmp, FLAG_STARTEQUIP)) |
644 | if (QUERY_FLAG (tmp, FLAG_STARTEQUIP)) |
646 | { |
645 | { |
647 | sprintf (buf, "You drop the %s.", query_name (tmp)); |
646 | sprintf (buf, "You drop the %s.", query_name (tmp)); |
… | |
… | |
687 | /* Need to update the weight for the player */ |
686 | /* Need to update the weight for the player */ |
688 | esrv_send_item (op, op); |
687 | esrv_send_item (op, op); |
689 | } |
688 | } |
690 | |
689 | |
691 | for (floor = get_map_ob (op->map, op->x, op->y); floor; floor = floor->above) |
690 | for (floor = get_map_ob (op->map, op->x, op->y); floor; floor = floor->above) |
692 | if (execute_event (floor, EVENT_DROP_ON, op, tmp, NULL, SCRIPT_FIX_ALL)) |
691 | if (INVOKE_OBJECT (DROP_ON, floor, ARG_OBJECT (tmp), ARG_OBJECT (op))) |
693 | return; |
692 | return; |
694 | |
693 | |
695 | if (floor |
694 | if (floor |
696 | && floor->type == SHOP_FLOOR |
695 | && floor->type == SHOP_FLOOR |
697 | && !QUERY_FLAG (tmp, FLAG_UNPAID) |
696 | && !QUERY_FLAG (tmp, FLAG_UNPAID) |