Creio que seja porque a função:
doPlayerSetSkill(cid, 3, 400)
está antes das outras, ou seja é executada primeiro, por isso quando as outras são executadas da creature not found.
Deveria ficar assim:
function onSay(cid, words, param)
if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
doPlayerSendTextMessage(cid,22,"você precisa estar em protection zone pra poder usar este comando.")
return TRUE
end
if doPlayerRemoveItem(cid,2160,500) and getPlayerVocation(cid) == 8 then
doCreatureSay(cid, "AXE FULL KNIGHT!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)
doPlayerSetSkill(cid, 3, 400)
else
doPlayerSendCancel(cid, 'voce precisa de 5kk para usar este comando e ser Kina.')
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)
end
end