Bow Sentinel Calculations
2018-02-17 22:26:24 - [Reply]
int calc_arrow_dam (CHAR_DATA *ch, OBJ_DATA *bow, int arrow, int power)
{{
int stat = 0;
stat += get_curr_dex(ch) / 4;
if (arrow == FIRE_ARROW) stat += get_curr_int(ch) / 3;
else stat += get_curr_agi(ch) / 4;
stat += get_curr_str(ch) / 2;
stat += GET_HITROLL(ch) / 10;
if (arrow == STUN_ARROW) power /= 10;
if (arrow == MITH_ARROW) power *= 1.5;
if (arrow == POIS_ARROW) power *= 1.25;
if (ch->powers[PATH] == BOW) power *= 1.25;
return calc_damage(stat, power, bow, NULL);
}
bool check_arrow_hit (CHAR_DATA *ch)
{{
int chance = 40;
chance += get_curr_dex(ch) / 150;
chance += GET_HITROLL(ch) / 150;
chance += ch->powers[BOW] * 2;
if (chance > 90) chance = 90;
printf_to_char(ch, '%d%% chance to hit..\n\r', chance);
if (number_percent() <= chance)
return TRUE;
else return FALSE;
}
{{
int stat = 0;
stat += get_curr_dex(ch) / 4;
if (arrow == FIRE_ARROW) stat += get_curr_int(ch) / 3;
else stat += get_curr_agi(ch) / 4;
stat += get_curr_str(ch) / 2;
stat += GET_HITROLL(ch) / 10;
if (arrow == STUN_ARROW) power /= 10;
if (arrow == MITH_ARROW) power *= 1.5;
if (arrow == POIS_ARROW) power *= 1.25;
if (ch->powers[PATH] == BOW) power *= 1.25;
return calc_damage(stat, power, bow, NULL);
}
bool check_arrow_hit (CHAR_DATA *ch)
{{
int chance = 40;
chance += get_curr_dex(ch) / 150;
chance += GET_HITROLL(ch) / 150;
chance += ch->powers[BOW] * 2;
if (chance > 90) chance = 90;
printf_to_char(ch, '%d%% chance to hit..\n\r', chance);
if (number_percent() <= chance)
return TRUE;
else return FALSE;
}
2018-02-17 22:34:39 - [Reply]
Back to Forums