[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