void spell_bless(byte level, struct char_data *ch, struct char_data *victim, struct obj_data *obj) { struct affected_type af; if(ch && (victim || obj)){ if (obj) { if ( (5*GET_LEVEL(ch) > GET_OBJ_WEIGHT(obj)) && (GET_POS(ch) != POSITION_FIGHTING) && !IS_OBJ_STAT(obj, ITEM_EVIL)) { SET_BIT(obj->obj_flags.extra_flags, ITEM_BLESS); act("$p briefly glows.",FALSE,ch,obj,0,TO_CHAR); } } else { if(!victim)return; if (affected_by_spell(victim, SPELL_BLESS)) affect_from_char(victim, SPELL_BLESS); send_to_char("You feel righteous.\n\r", victim); af.type = SPELL_BLESS; af.duration = 6+level; af.modifier = 5; af.location = APPLY_HITROLL; af.bitvector = 0; affect_to_char(victim, &af); af.location = APPLY_SAVING_SPELL; af.modifier = -1; /* Make better */ affect_to_char(victim, &af); } } }