case SKILL_BACKSTAB: /*заколоть */
victim_sav = SAVING_REFLEX;
percent = skill_is + dex_app[GET_REAL_DEX(ch)].reaction * 2;
if (awake_others(ch))
percent -= 50;
if (vict) {
if (!CAN_SEE(vict, ch))
percent += 25;
if (GET_POS(vict) < POS_FIGHTING)
percent += (20 * (POS_FIGHTING - GET_POS(vict)));
else if (AFF_FLAGGED(vict, AFF_AWARNESS))
victim_modi -= 30;
victim_modi += size_app[GET_POS_SIZE(vict)].ac;
victim_modi -= dex_app[GET_REAL_DEX(vict)].reaction;
}
break;
int awake_others(CHAR_DATA * ch)
{
int i;
if (IS_NPC(ch) && !AFF_FLAGGED(ch, AFF_CHARM))
return (FALSE);
if (IS_GOD(ch))
return (FALSE);
if (AFF_FLAGGED(ch, AFF_STAIRS) ||
AFF_FLAGGED(ch, AFF_SANCTUARY) || AFF_FLAGGED(ch, AFF_SINGLELIGHT) || AFF_FLAGGED(ch, AFF_HOLYLIGHT))
return (TRUE);
for (i = 0; i < NUM_WEARS; i++) {
if (GET_EQ(ch, i))
if ((GET_OBJ_TYPE(GET_EQ(ch, i)) == ITEM_ARMOR &&
GET_EQ(ch, i)->obj_flags.Obj_mater <= MAT_COLOR) ||
OBJ_FLAGGED(GET_EQ(ch, i), ITEM_HUM) || OBJ_FLAGGED(GET_EQ(ch, i), ITEM_GLOW))
return (TRUE);
}
return (FALSE);
}
вроде тут по знакомым словам разобратся сможете
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
|