A stock is basically a function or variable that, if not used anywhere in the script, is simply ignored by the compiler.
Many people have the idea of doing this:
Code: Select all
#include <amxmodx>
#include <amxmisc>
public plugin_init()
{
register_plugin("The","Matrix","Has You")
fnDoFunc()
}
stock fnDoFunc()
log_amx("the world has imploded upon itself")Code: Select all
#include <amxmodx>
#include <amxmisc>
public plugin_init()
{
register_plugin("The","Matrix","Has You")
fnDoFunc()
}
fnDoFunc()
log_amx("the world has imploded upon itself")Taken straight from engine_stocks.inc:
Code: Select all
stock fakedamage(idvictim,szClassname[],Float:takedmgdamage,damagetype)
{
new entity = create_entity("trigger_hurt")
if (entity)
{
DispatchKeyValue(entity,"classname","trigger_hurt")
new szDamage[16]
// Takedamages only do half damage per attack (damage is damage per second, and it's triggered in 0.5 second intervals).
// Compensate for that.
format(szDamage,15,"%f",takedmgdamage * 2)
DispatchKeyValue(entity,"dmg",szDamage)
format(szDamage,15,"%i",damagetype)
DispatchKeyValue(entity,"damagetype",szDamage)
DispatchKeyValue(entity,"origin","8192 8192 8192")
DispatchSpawn(entity)
entity_set_string(entity, EV_SZ_classname, szClassname)
fake_touch(entity,idvictim)
remove_entity(entity)
return 1
}
return 0
}
//wrapper for find_ent_by_class
stock find_ent(iStart, szClassname[])
{
return find_ent_by_class(iStart, szClassname)
}Stocks, as said twice above, can also be used on variables as such:
Code: Select all
stock const mystring[] = "hello pm"That's basically what stocks are and why they are useful.
