[CF-Devel] Patch: sense curse / sense magic fix

crossfire-devel at archives.real-time.com crossfire-devel at archives.real-time.com
Sun Nov 23 05:58:29 CST 2003


The 2 skills 'sense magic' and 'sense curse' don't work on item under the 
player, as opposed to other identifying skills.
Here's a patch to fix that (imo the skills should be coherent & all check ground 
items).

Nicolas 'Ryo'
-------------- next part --------------
Index: server/skills.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/skills.c,v
retrieving revision 1.43
diff -u -r1.43 skills.c
--- server/skills.c	14 Nov 2003 07:53:08 -0000	1.43
+++ server/skills.c	23 Nov 2003 11:54:58 -0000
@@ -513,6 +513,17 @@
 		esrv_update_item(UPD_FLAGS, pl, tmp);
 		success+= calc_skill_exp(pl,tmp, skill);
 	}
+
+    /* Check ground, too */
+    for(tmp=get_map_ob(pl->map,pl->x,pl->y);tmp;tmp=tmp->above)
+	if (!QUERY_FLAG(tmp,FLAG_IDENTIFIED) && !QUERY_FLAG(tmp,FLAG_KNOWN_CURSED)
+            && (QUERY_FLAG(tmp,FLAG_CURSED) || QUERY_FLAG(tmp,FLAG_DAMNED)) &&
+	    tmp->item_power < skill->level) {
+		SET_FLAG(tmp,FLAG_KNOWN_CURSED);
+		esrv_update_item(UPD_FLAGS, pl, tmp);
+		success+= calc_skill_exp(pl,tmp, skill);
+	}
+
     return success;
 }
 
@@ -527,6 +538,16 @@
 		esrv_update_item(UPD_FLAGS, pl, tmp);
 		success+=calc_skill_exp(pl,tmp, skill);
 	}
+
+    /* Check ground, too */
+    for(tmp=get_map_ob(pl->map,pl->x,pl->y);tmp;tmp=tmp->above)
+        if(!QUERY_FLAG(tmp,FLAG_IDENTIFIED) && !QUERY_FLAG(tmp,FLAG_KNOWN_MAGICAL)
+	    && (is_magical(tmp)) && tmp->item_power < skill->level) { 
+            	SET_FLAG(tmp,FLAG_KNOWN_MAGICAL);
+		esrv_update_item(UPD_FLAGS, pl, tmp);
+		success+=calc_skill_exp(pl,tmp, skill);
+	}
+
     return success;
 }
 
-------------- next part --------------
_______________________________________________
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