Não entendi muito bem...
Seria mais facil botar uma area, com tds os treiners. Mas para entrar nessa area teria que passar por apenas 1 porta. E seria nessa porta que a checagem seria feita. Aí o player, como ele ñ é cego, veria que aql treiner X está ocupado, levando-o a procurar outro.
Caso vc aceite essa minha sugestão, vamos lá:
Em data\actions\scripts crie um arquivo chamado portaVoc.lua e coloque isso dentro:
local voc = {1, 2, 3, 4} --vocações que podem acessar a porta
function onUse(cid, item, frompos, item2, topos)
for k, v in pairs(voc) do
if getPlayerVocation(cid) == voc[v] then
doSendMagicEffect(getCreaturePosition(cid), 2)
else
doPlayerSendCancel(cid, "Desculpe, para acessar esta área você precisa ser "..string.explode(getVocationInfo(voc[k]).name, ", ").."")
return false
end
end
return true
end
Agora vá em data\actions e coloque essa tag dentro do arquivo actions.xml:
<action actionid="69785" script="portaVoc.lua" />
*preste atenção nesta parte: coloque a action id na PORTA igual à que vc colocar nessa tag acima. (nesse caso, eu botei pra ser 69785)
Qualquer duvida, tamo ae.
Te ajudei?? REP+ e ficamos quites... 
Atenciosamente,
Danihcv.
Abraços!