Jan E. wrote: > On Tue, Jan 09, 2001 at 03:50:37PM -0800, crossfire-cvs-admin at lists.sourceforge.net > wrote: > > diff -u crossfire/server/apply.c:1.28 crossfire/server/apply.c:1.29 > > --- crossfire/server/apply.c:1.28 Tue Dec 26 23:53:35 2000 > > +++ crossfire/server/apply.c Tue Jan 9 15:50:37 2001 > > @@ -1575,7 +1579,7 @@ > > } else if(QUERY_FLAG(tmp,FLAG_STARTEQUIP) || RANDOM()%150-(2*SK_level(op)) < > > learn_spell[spells[tmp->stats.sp].cleric ? op->stats.Wis : op->stats.Int]) { > > new_draw_info(NDI_UNIQUE, 0,op,"You succeed in learning the spell!"); > > - do_learn_spell (op, tmp->stats.sp, tmp->stats.Wis); > > + do_learn_spell (op, tmp->stats.sp, 0); > > #ifdef ALLOW_SKILLS /* xp gain to literacy for spell learning */ > > if ( ! QUERY_FLAG (tmp, FLAG_STARTEQUIP)) > > add_exp(op,calc_skill_exp(op,tmp)); > > Why this change? The purpose if tmp->stats.Wis is to support the > god_spellbook_*.arc objects as an alternative to the old-style > god_spelldirect_*.arc objects. god_intervention() inserts a spellbook > with stats.Wis = 1 in the players inventory. This seems to be broken > now. The function "do_learn_spell" has the following format: "extern void do_learn_spell (object *op, int spell, int special_prayer)". If special_prayer is greater zero, the spell you learn is marked as godgiven spell. It is possible that the above change I've made was unneccessary. I first thought the "tmp->stats.Wis" was the reason that *all* spells were marked as godgiven. At second thought, I guess the true bug was fixed in the following lines: > Index: crossfire/server/apply.c > diff -u crossfire/server/apply.c:1.28 crossfire/server/apply.c:1.29 > --- crossfire/server/apply.c:1.28 Tue Dec 26 23:53:35 2000 > +++ crossfire/server/apply.c Tue Jan 9 15:50:37 2001 > @@ -1459,7 +1459,11 @@ > op->contr->known_spells[op->contr->nrofknownspells++] = spell; > if (op->contr->nrofknownspells == 1) > op->contr->chosen_spell = spell; > - insert_special_prayer_mark (op, spell); > + > + /* For godgiven spells the player gets a reminder-mark inserted, > + that this spell must be removed on changing cults! */ > + if (special_prayer) > + insert_special_prayer_mark (op, spell); > > new_draw_info_format (NDI_UNIQUE, 0, op, > "Type 'bind cast %s", spells[spell].name); So, please revert my changes to function "apply_spellbook" above, as long as you know what you're doing. Maybe make a short test afterwards. Some players might kill me if they lost spells again, since I promised them this has been fixed now ;) Andreas V.