Add Float: tags to all functions, variables, constants, array, parameters, args related to it, and change all integer literals to floating-point literal literals.Replace all functions that return integers with floating point numbers.
In all ZP source code and header file.
like this:
PHP Code:
//new db_ammopacks[33]
new Float:db_ammopacks[33]
//new g_ammopacks[33] // ammo pack count
new Float:g_ammopacks[33] // ammo pack count
//g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect)
g_ammopacks[attacker] += get_pcvar_float(cvar_ammoinfect)
//if (g_ammopacks[id] < 1)
if (g_ammopacks[id] <= 0.0)
//if (g_ammopacks[id] < ArrayGetCell(g_extraitem_cost, itemid))
if (g_ammopacks[id] < Float:ArrayGetCell(g_extraitem_cost, itemid))
//g_ammopacks[id] -= ArrayGetCell(g_extraitem_cost, itemid)
g_ammopacks[id] -= Float:ArrayGetCell(g_extraitem_cost, itemid)
//"%d", g_ammopacks
"%f", g_ammopacks
//static function()return g_ammopacks
static Float:function()return g_ammopacks
//static function(id, amount) g_ammopacks[id] = amount
static function(id, Float:amount) g_ammopacks[id] = amount
//const ItemCost = 10
const Float:ItemCost = 10.0
The calculation of floating point numbers has errors. The farther the value is from 0, the greater the error. Therefore, it is not recommended to use floating point numbers.
You can divide an integer by ten and display it as a floating-point number in Hud to preserve a certain degree of accuracy
such as:
1000 is displayed as 100.0-- "%. 1f", float (1000)/10.0
1005 is displayed as 100.5-- "%. 1f", float (1005)/10.0