@Newtonnotwen
Pelo que eu vi, esse NPC não é exatamente um NPC que dá vocation só até o player deslogar. Isso só funcionaria se a vocation possuísse o fromvoc diferente do ID dela mesma. Por exemplo, se colocar pra virar Druid, a vocation continuaria mesmo deslogando. Para seu NPC ficar 100% igual você diz, teria que usar uma storage e um creaturescript. Gostaria que eu fizesse para você?
E dica, esse trecho:
if(getPlayerItemCount(cid, 2160) >= 100) then
doPlayerRemoveItem(cid, 2160, 100)
Poderia ser reduzido para isso:
if doPlayerRemoveMoney(cid, 1000000) then