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