It took my nerves, but finally i found a way how to do that. It's not the best way i think, but it works..
Example to remove all entities got triggered by the button:
PHP Code:
public affect(ent)
{
remove_entity (ent)
}
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
new PLUGIN[] = "Buttons affect"
new AUTHOR[] = "Schwabba"
new VERSION[] = "1.0"
new mID, mID2
new manager[100][100];
new manager_name[100][100];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Use, "func_button", "hamUseButton_Pre", 0 );
}
public hamUseButton_Pre(button, id)
{
new szTarget[32]
pev(button, pev_target, szTarget, 31)
new ent = -1
while((ent = find_ent_by_tname(ent, szTarget)))
{
affect(ent)
}
for(new i=0;i<mID;i++)
{
if(manager[i][1] && equal(szTarget, manager_name[i]))
{
new ent = -1
while((ent = find_ent_by_tname(ent, manager[i])))
{
affect(ent)
}
}
}
}
public pfn_keyvalue(entid)
{
if(is_valid_ent(entid))
{
new classname[33]
new keyname[33]
new keyvalue[33]
copy_keyvalue(classname,32,keyname,32,keyvalue,32)
if(equal(classname, "multi_manager"))
{
if(!equal(keyname, "origin") && !equal(keyname, "targetname") && !equal(keyname, "spawnflags"))
{
mID++
copy(manager[mID], 99, keyname)
}
if(equal(keyname, "targetname"))
{
for(new i;i<mID;i++)
{
if(mID2-1 < i)
{
mID2 = i+1
copy(manager_name[mID2], 99, keyvalue)
}
}
}
}
}
}
public affect(ent)
{
// Do something
}