Mad Gunther 
Apprentice

Posts: 45
Likes Given: 11
Likes Received: 5 in 5 posts
Joined: Oct 2015
Reputation: 1
![]()
|
RE: OSI Weapon Speeds
(01-20-2016 08:11 PM)XuN Wrote: You can add CombatBonusStat and CombatBonusPercent to weapons and/or characters:
Code:
[TYPEDEF t_weapon_xbow]
ON=@Equip
SRC.CombatBonusStat=2 // 0 = STR, 1 = INT, 2 = DEX
SRC.CombatBonusPercent=10 // Percent of the stat applied to the damage bonus, ie: You have 88 int and 10% of CombatBonusPercent, then +9 damage will be applied ( real dam should be 8.8, but decimal values get rounded up, so this becomes 9 in this case ).
ON=@UnEquip
SRC.CombatBonusStat
SRC.CombatBonusPercent
You can make staffs get bonus from int, daggers/bows from dex or whatever.
This effect is only applied to damage done by physical hits (Not to Magic spells).
Wow thanks very much for the answer XuN, didn´t notice there were combat stats mods for the weaps/characters. i´ll have to check the revision files more often from now on, it´s a mistake i always do.
(01-21-2016 05:45 AM)Coruja Wrote: OSI had used many formulas through years (pre-T2A / T2A / AOS / SE / ML), so these formulas on sphere source are exactly these same OSI formulas
that's not the case of the sphere old formulas, which never had followed OSI style (that why its called 'custom', or 'non-OSI'). To be more specific, most of these sphere custom formulas are the same from 0.51, which is based on something near pre-T2A or T2A formulas (but with some custom modifications)
And thanks to you for the info too Coruja, i appreciate it. This is what i realised when i was dealing with the 0.56c source today. i´ve seen the whole info about the custom sphere combat there.
OLD (55r and lower) formula using DEX; from 0.56c source
Code:
{
case 0: // OLD (55r and lower) formula using DEX and: a)Speed if set on weapon or b)calculating delay from weapon's weight if speed not set (taking in count if weapon is 2h)
{
if ( pWeapon )
{
if (iBaseSpeed)
{
int iWaitTime = (TICK_PER_SEC * g_Cfg.m_iSpeedScaleFactor) / ((pChar->Stat_GetAdjusted(STAT_DEX) + 100) * iBaseSpeed);
return ( iWaitTime < 5 ? 5 : iWaitTime ); // Never less than 5 tenths, even removing the '5' limit it should never be less than 0 or CChar will get SetTimeout(-1) and stop attack.
}
}
// Base speed is just your DEX range=40 to 0
int iWaitTime = IMULDIV(100 - pChar->Stat_GetAdjusted(STAT_DEX), 40, 100);
if (iWaitTime < 5) // no-one needs to be this fast.
iWaitTime = 5;
else
iWaitTime += 5;
// Speed of the weapon as well effected by strength (minor).
if ( pWeapon )
{
int iWeaponWait = (pWeapon->GetWeight() * 10) / (4 * WEIGHT_UNITS); // tenths of a stone.
if (pWeapon->GetEquipLayer() == LAYER_HAND2) // 2 handed is slower
{
iWeaponWait += iWaitTime / 2;
}
iWaitTime += iWeaponWait;
}
else
iWaitTime += 2;
return iWaitTime;
}
You are right, some formulas like this are the same as 51a, but some others change a lil bit i think, critical hits aswell. Now I can compare both and go in seek of the stuff i need, thanks guys!
|
|
01-22-2016 09:37 AM |
|
|