Fourth and possibly final version of the patch. It is now tested. I fixed a bug in the new get_holy_archetype() function (returned with indeterminate value instead of NULL when archetype was not found) and a very unimportant bug in summon_avatar() (check for gods without holy servant or avatar wasn't working - you would still get a SIGSEGV; but there are no such gods). I also fixed the new archetypes - the last archetype patch (arch38b) was full of typos. Biggest change in this version is that prayers granted by gods through god_intervention() will be lost when the god is changed, or when the prayer is removed from the current god's treasure list and god_intervention() is called. The map patch changes the last Chaos Lair map: Players will only get the "finger of death" spell, "face of death" will be reserved for the Chaos Lord and for followers of Devourers. I also fixed the vampire on that map (again) - he was sleeping all the time and not toggling the lever. -- Jan -------------- next part -------------- common/treasure.c: Various changes to support several new flags that affect how treasures are created and how they are inserted into objects or put on maps. include/config.h: Increased ARCHTABLE (size of archtype hash table). lib/treasures: Added gods' treasure lists. server/apply.c: do_learn_spell() and do_forget_spell(): New functions for learning and forgetting spells. apply_spellbook() now uses do_learn_spell(). server/c_wiz.c: command_learn_spell(), command_special_prayer and command_forget_spell(): New functions that implement the new "learn_spell", "learn_special_prayer" and "forget_spell" wizard commands. server/disease.c: cure_disease(): Bugfixes: Fixed loop to traverse the whole inventory and not stop after the first disease. Corrected the return value to return true only if a disease was cured. server/disease.c: reduce_symptoms(): Only change speed_left of diseases whose symptoms where actually reduced. Return true only if some symptoms were reduced. server/gods.c: stop_using_item(): Use apply_special() directly and unapply even cursed or damned items. server/gods.c: god_intervention(): Rewrote this basically from scratch, now uses the god's treasure list to determine the effects. server/player.c: give_initial_items(): Use new GT_STARTEQUIP and GT_ONLY_GOOD flags. FLAG_STARTEQUIP is now set by create_treasure(), and we also won't get any cursed items. Don't give players the same spell twice. server/skills.c: pray(): Fixed a typo. server/spell_effect.c: cast_heal(): Fixed return value. Don't freeze the caster if the spell had no effect. server/summon_avatar(): Don't use the god archetype itself as its avatar. Use determine_holy_arch() instead (for both avatars and holy servants). Bugfix: Return immediately when we've found out that the god has no avatar or holy servant, don't continue until SIGSEGV. -------------- next part -------------- A non-text attachment was scrubbed... Name: patch38d.gz Type: application/x-gunzip Size: 16508 bytes Desc: not available Url : http://shadowknight.real-time.com/pipermail/crossfire/attachments/20001122/e569e681/patch38d.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: arch38d.gz Type: application/x-gunzip Size: 4938 bytes Desc: not available Url : http://shadowknight.real-time.com/pipermail/crossfire/attachments/20001122/e569e681/arch38d.bin -------------- next part -------------- diff -ru orig/maps-0.95.7-cvs1/Lake_Country/snake_pit/Chaos_lair4 maps-0.95.7-cvs1/Lake_Country/snake_pit/Chaos_lair4 --- orig/maps-0.95.7-cvs1/Lake_Country/snake_pit/Chaos_lair4 Mon Jun 19 14:22:54 2000 +++ maps-0.95.7-cvs1/Lake_Country/snake_pit/Chaos_lair4 Wed Nov 22 19:06:45 2000 @@ -15,6 +15,7 @@ arch vampire speed 0.010000 speed_left -1.340000 +sleep 0 randomitems none end arch blocked @@ -3578,8 +3579,14 @@ msg Death DEATH! DEATH!! endmsg -sp 87 +sp 152 value 20000 +end +arch book +name spellbook covered with even more skulls +sp 87 +invisible 1 +no_drop 1 end arch key2 name fragment-of-chaos