===NPC===
Crie um arquivo.lua em data/npcs/scripts e cole isto dentro:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
local t = { --- posições para level menor que 40
["cyclops"] = {pos = {x=1,y=1,z=1}},
["templo"] = {pos = {x=100,y=40,z=7}},
["troll"] = {pos = {x=1,y=1,z=1}},
["dwarf"] = {pos = {x=1,y=1,z=1}},
["elf"] = {pos = {x=1,y=1,z=1}},
["amazon"] = {pos = {x=1,y=1,z=1}},
["orc"] = {pos = {x=1,y=1,z=1}}
}
local x = { -- posições para level maior que 40
["templo"] = {go = {x=100,y=40,z=7}},
["dragon"] = {go = {x=1,y=1,z=1}},
["scarab"] = {go = {x=1,y=1,z=1}},
["vampire"] = {go = {x=1,y=1,z=1}},
["giant spider"] = {go = {x=1,y=1,z=1}},
["hydra"] = {go = {x=1,y=1,z=1}},
["dragon lord"] = {go = {x=1,y=1,z=1}}
}
local min = "Escolha para onde quer ser teleportado: {cyclops}, {templo}, {troll}, {dwarf}, {orc}, {elf}, {amazon}." --- msg para lvl menor q 40
local max = "Escolha para onde quer ser teleportado: {templo}, {dragon}, {scarab}, {vampire}, {giant spider}, {hydra}, {dragon lord}." -- msg para lvl maior que 40
if msgcontains(msg, "travel") or msgcontains(msg, "Travel") then
if getPlayerLevel(cid) <= 40 then
selfSay(min, cid)
talkState[talkUser] = 1
elseif getPlayerLevel(cid) > 40 and getPlayerLevel(cid) <= 80 then
selfSay(max, cid)
talkState[talkUser] = 2
end
elseif talkState[talkUser] == 1 then
if t[msg] then
doTeleportThing(cid, t[msg].pos)
doSendMagicEffect(getCreaturePosition(cid), 10)
selfSay("Boa viagem.", cid)
talkState[talkUser] = 0
end
elseif talkState[talkUser] == 2 then
if x[msg] then
doTeleportThing(cid, x[msg].go)
doSendMagicEffect(getCreaturePosition(cid), 10)
selfSay("Boa viagem.", cid)
end
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Em data/npcs, crie um arquivo.xml e cole isto dentro:
<npc name="NOMEDOSEUNPC" script="data/npc/scripts/NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola. Para mais informacoes de meus servicos diga {travel}." />
<parameter key="message_farewell" value="Tchau." />
<parameter key="message_walkaway" value="Tchau." />
</parameters>
</npc>
===TALKACTION===
Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro:
local maxlevel = 80 -- abaixo desse level os players poderão ir
local npc = {x=1, y=1, z=1} --- local que o npc estará
function onSay(cid, words, param)
if getPlayerLevel(cid) < 80 then
doTeleportThing(cid, npc)
doSendMagicEffect(npc, 10)
else
doPlayerSendTextMessage(cid, 22, "Apenas players com level abaixo de ".. maxlevel .." tem acesso ao npc.")
end
return true
end
Em talkactions.xml cole a tag: <talkaction words="!teleport" script="NOMEDOSEUARQUIVO.lua"/>
===CREATURESCRIPTS===
Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro:
function onAdvance(cid, skill, oldLevel, newLevel)
if getPlayerLevel(cid) >= 70 and getPlayerLevel(cid) <= 80 then
doPlayerSendTextMessage(cid, 18, "Lembre-se que depois do level 80 você não poderá usar o comando !teleport")
end
return true
end
Em creaturescripts/scripts/login.lua cole antes do return true: registerCreatureEvent(cid, "Notice")
Em creaturescripts.xml cole a tag: <event type="advance" name="Notice" event="script" value=NOMEDOSEUARQUIVO.lua"/>
Vlw, espero ter ajudado, abraços.
@edit
Percebi que level 80+ podiam se teleportar com o npc,agora já resolvi isso.