[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