[CF-Devel] Flying monster stealing patch
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Mon Nov 17 07:34:02 CST 2003
Hi all,
After testing my new flying monster, Katia & I found out that it cannot
steal because it's flying (pick_up() fails). In the process, we uncovered
a bug in the stealing code, that tells the player something was stolen
even if pick_up() subsequently fails. I tried to move the call to
esrv_del_item to inside the if-statement that checks if the item was
picked up, but it didn't work (apparently it's not as simple as I thought;
if the thief wasn't a player, the if-statement fails). Perhaps Mark or
somebody can figure out the correct fix for this bug.
But anyway, it seems to be a bad limitation that flying monsters cannot
steal; so I've patched pick_up() to allow pickup by flying monsters. The
patch follows the end of this email. Levitating players still cannot
pick up objects (and cannot steal either---not sure if that's a bug or a
feature), but now flying monsters can pick up stuff and steal as well. I
thought I'd bring it up for discussion before checking it into CVS.
Thoughts? Objections?
T
--
A bend in the road is not the end of the road unless you fail to make the
turn. -- Brian White
Index: crossfire/server/c_object.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/c_object.c,v
retrieving revision 1.54
diff -u -r1.54 c_object.c
--- crossfire/server/c_object.c 27 Oct 2003 09:48:34 -0000 1.54
+++ crossfire/server/c_object.c 17 Nov 2003 13:27:36 -0000
@@ -556,8 +556,8 @@
* (sack, luggage, etc), tmp->env->env then points to the player (nested
* containers not allowed as of now)
*/
- if(QUERY_FLAG(pl, FLAG_FLYING) && !QUERY_FLAG(pl, FLAG_WIZ) &&
- is_player_inv(tmp)!=pl) {
+ if (pl->type==PLAYER && QUERY_FLAG(pl, FLAG_FLYING) &&
+ !QUERY_FLAG(pl, FLAG_WIZ) && is_player_inv(tmp)!=pl) {
new_draw_info(NDI_UNIQUE, 0,pl, "You are levitating, you can't reach the ground!");
return;
}
_______________________________________________
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