Just browsed the asss source and freqman is intended to work in pyton but advisers are only half implemented in python. So you indeed have to use C for now. Would go something like this:
static int CanChangeFreqAdv(Player *p, int new_freq, char *err_buf, int buf_len)
{
if (/*allowed to change freq*/)
{
return 1;
}
else
{
if (err_buf)
{
snprintf(err_buff, buf_len, "You do not own freq %d", new_freq);
err_buf[buf_len-1] = 0; // not need for GCC
}
return 0;
}
}
static Aenforcer enforceradv =
{
ADVISER_HEAD_INIT(A_ENFORCER)
NULL,
CanChangeFreqAdv
};
EXPORT int MM_mymodule(int action, Imodman *mm_, Arena *arena)
{
// ...
else if (action == MM_ATTACH)
{
mm->RegAdviser(&enforceradv, arena);
return MM_OK;
}
else if (action == MM_DETACH)
{
mm->UnregAdviser(&enforceradv, arena);
return MM_OK;
}
}