Você poderia postar aqui o script que teleporta o player para o castle? Neste, o player recebe um "valor", que, com ele, poderá criar condições (como uma utilizada em meu comentário anterior), até que este valor seja retirado do jogador.
Realmente, não sou bom com explicação, tente descobrir qual o código que teleporta (provável) o jogador para o castelo.
Para adicionar/registrar esses códigos que passei, faça o seguinte:
Vá em data/creaturescripts/scripts, copie e cole um arquivo com extensão .lua qualquer desta pasta, delete todo o conteúdo. Depois, adicione nele o código que passei.
Feito isso, vá em data/creaturescripts e abra o arquivo creaturescripts.xml.
Nele, você verá várias "tags", como, por exemplo:
<event type="look" name="LookSystem" event="script" value="look.lua"/>
Neste arquivo, você deve adicionar a seguinte tag:
<event type="preparedeath" name="Nome do arquivo (para registrar depois no login.lua)" event="script" value="nome do arquivo.lua criado (como expliquei acima).lua"/>
Salve então o arquivo.
Após ter criado o arquivo.lua e colocado a tag no creaturescripts.xml, vá em data/creaturescripts/scripts, e abra o arquivo login.lua.
Lá, procure pela parte que terá vários semelhantes a esses:
registerCreatureEvent(cid, "EffectOnAdvance")
registerCreatureEvent(cid, "GeneralConfiguration")
registerCreatureEvent(cid, "SaveReportBug")
registerCreatureEvent(cid, "LookSystem")
Após o último registro de creatureevent, pule uma linha e coloque isso (ou coloque entre eles, isso você decide):
registerCreatureEvent(cid, "Nome do arquivo que você colocou na tag em actions.xml")
Como eu disse, não sou muito bom em explicações, mas espero que você tenha entendido um pouco sobre o que fazer.
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.