Olá galera venho trazer aqui um script de npc que aparece sozinho dependendo do horario do server e fica por 15 min e depois some, bastante util para eventos privados. 
vamos la: 
  
Criando o script no globalevents  
  
Crie um Arquivo no globalevents/nomedoscript.lua 
nomedoscript = nome que vc quer que se script tenha ex:no meu caso ele chama npcgoup.lua 
Ctrl + c ctrl +v no codigo abaixo 
function onThink(interval, lastExecution, thinkInterval)
local pos = {x=1050,y=1060,z=7} -- Local onde aparece o npc
local npc = doCreateNpc("Goup", pos ) -- Altere o (Goup) pelo nome do seu npc.
local nMin = 15 -- tempo em minuto para o npc sumir.
addEvent(doRemoveCreature, nMin*60*1000, npc)
return true
end
  
 
Criando Chamada do npc no Global Events 
  
Abra o global events: 
data/globalevents/globalevents.xml 
Ctrl + c ctrl +v no codigo abaixo <globalevent name="npc" interval="3600" event="script" value="npcgoup.lua"/>
  
 
Explicando o Codigo: 
 
local pos = {x=1050,y=1060,z=7} -- Local onde aparece o npc
local npc = doCreateNpc("Goup", pos ) -- Altere o (Goup) pelo nome do seu npc.
local nMin = 15 -- tempo em minuto para o npc sumir.
addEvent(doRemoveCreature, nMin*60*1000, npc)
 
  
  
Oque é zeh ? 
local pos= posição no mapa aonde o npc vai nascer 
local npc= local da sua pasta aonde o npc esta ex:data/npc/goup.lua 
Pergunta:a mais eu não preciso chamar o ".lua" tbm? 
R:Nao , a funcao doCreateNpc , le o nome do npc e interpreta como se ele ja foce um codigo ".lua" , entao só coloca nome mesmo . 
local nMin = tempo em minutos que o script pega 
addEvent(doRemoveCreature, nMin*60*1000, npc)= adiciona um evento no servidor falando que o dp 15 min o npc sera retirado . 
  
E isso oque é? 
 
<globalevent name="npc" interval="3600" event="script" value="npcgoup.lua"/>
 
  
É a chamada do codigo no globalevents ,interval ="3600" é o tempo em segundos para chamar o npc . 
1hora tem ? 
r:60 min 
60min tem? 
r:3600 seg 
ou seja? 
  
Créditos : 
  
Lailton (Por fazer o script) 
Eu só disponibilizei  aqui e expliquei ^^