acho que pelo item é mais facil...
voce pode usar as seguintes funções:
if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then
doPlayerSetVocation(cid, 9)
end
if getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then
doPlayerSetVocation(cid, 10)
end
if getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then
doPlayerSetVocation(cid, 11)
end
if getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then
doPlayerSetVocation(cid, 12)
end
ou se não usanto tables...
fiz um item aqui que o player usar ele,e ganha a vocação,mais só pode usar uma vez,e para isso tem que ser o level...
vocitem.lua
actions.xml
coloque:
<action itemid="ITEM ID" script="vocitem.lua"/>