|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: BUGZILLA report all bugs here![message #324667]
|
Tue, 03 September 2013 21:43
|
|
Kriplo |
|
Messages:256
Registered:February 2008 Location: Zagreb - Croatia |
|
|
OCTH in CalcChanceToHitGun practically return 0 when you try to aim torso and distance between your prone merc and standing soldier less then 3 tiles. Aiming legs or head haven't this problem.
Comparing v1.12 with latest one shows that iPenalty is introduced in chance depending on target stance and seems have unset value for AIM_SHOT_TORSO.
Attached code shows where problem rise:
// Effects of visual range
// From for JA2.5: 3% bonus/penalty for each tile different from range NORMAL_RANGE.
if (!TANK(pSoldier)) // WANNE: No penalty on the tank
iPenalty = 3 * ( NORMAL_RANGE - iSightRange ) / CELL_X_SIZE;
...
//CHRISL: We should probably include these target size penalties even if we can't see the target so that shooting a "hidden" head is harder then a "hidden" body
// if aiming at the head, reduce chance to hit
if (ubAimPos == AIM_SHOT_HEAD)
{
// penalty of 3% per tile
//iPenalty = 3 * iSightRange / 10; //comm by ddd
iPenalty = INT32(gGameExternalOptions.uShotHeadPenalty * iSightRange / 10);
iChance -= iPenalty;
}
else if (ubAimPos == AIM_SHOT_LEGS)
{
// penalty of 1% per tile
iPenalty = iSightRange / 10;
iChance -= iPenalty;
}
//CHRISL: A target's stance should have no impact on an aimed, headshot. The head doesn't get any smaller just because the target is crouching down.
if (pTarget != NULL && ubAimPos != AIM_SHOT_HEAD)
{
// targeting a merc
// adjust for crouched/prone target
switch( gAnimControl[ pTarget->usAnimState ].ubHeight )
{
case ANIM_CROUCH:
...
break;
case ANIM_PRONE:
...
break;
case ANIM_STAND:
// if we are prone and at close range, then penalize shots to the torso or head!
if ( iRange <= MIN_PRONE_RANGE && stance == ANIM_PRONE )
{
if ( ubAimPos == AIM_SHOT_RANDOM || ubAimPos == AIM_SHOT_GLAND )
{
ubAdjAimPos = AIM_SHOT_TORSO;
}
else
{
ubAdjAimPos = ubAimPos;
}
// lose 10% per height difference, lessened by distance
// e.g. 30% to aim at head at range 1, only 10% at range 3
// or 20% to aim at torso at range 1, no penalty at range 3
// NB torso aim position is 2, so (5-aimpos) is 3, for legs it's 2, for head 4
iChance -= (INT32)((5 - ubAdjAimPos - iRange / CELL_X_SIZE) * 10 * iPenalty);
}
break;
default:
break;
}
}
As CTH is part of never ending public debates and will probably never satisfy, I prefer to stand away messing with that and left to someone with OCTH/NCTH experience to fix that
Report message to a moderator
|
Master Sergeant
|
|
|
|
|
|
|
|
|
|
|
|
|