Maybe this will help you better, idk...
Code:
int g_iNextPAttO = FindSendPropInfo("CBaseCombatWeapon","m_flNextPrimaryAttack");
float flGameTime = GetGameTime();
float flNextTime_ret = GetEntDataFloat(weaponID, g_iNextPAttO); //weaponID - entityID of your weapon, g_iNextPAttO - value of "m_flNextPrimaryAttack" prop.
float flNextTime_calc;
flNextTime_calc = (flNextTime_ret - flGameTime) * 0.900 //(0.900 as I remember is a default value of reload speed modifier).
flNextTime_calc - this will be your final value of time of your reload speed (float value).
For shotguns:
const float g_fl_AutoS = 0.666666;
const float g_fl_AutoI = 0.4;
const float g_fl_AutoE = 0.675;
const float g_fl_SpasS = 0.5;
const float g_fl_SpasI = 0.375;
const float g_fl_SpasE = 0.699999;
const float g_fl_PumpS = 0.5;
const float g_fl_PumpI = 0.5;
const float g_fl_PumpE = 0.6;
All shotguns has a 3-stage reloading (Start, Insert, End)
Autoshotgun (M1014):
Start:
g_fl_AutoS * 0.900
Insert:
g_fl_AutoI * 0.900
End:
g_fl_AutoE * 0.900
SPAS-12:
Start:
g_fl_SpasS* * 0.900
Insert:
g_fl_SpasI * 0.900
End:
g_fl_SpasE * 0.900
Pump / Chrome Shotguns:
Start:
g_fl_PumpS* * 0.900
Insert:
g_fl_PumpI * 0.900
End:
g_fl_PumpE * 0.900