Proucurei pelo Forum e não encontrei nenhum npc 7.92,
por isso fiz o tutorial, tentei deixar bem parecido com o do global,
dê sua nota(5 a 10), leve em consideração que e meu primeiro.
Crie um arquivo com nome de oracle.lua e coloque isso dentro dele:
data/npc/scripts/oracle.lua
local focus = 0local talk_start = 0
local target = 0
local following = false
local attacking = false
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
msg = string.lower(msg)
pos = {x=100, y=100, z=7}
-- greeting phrase
if string.find(msg, '(%a*)hi(%a*)') and focus == 0 and string.len(msg) == 2 and getDistanceToCreature(cid) < 4 then
selfSay('Hello, young adventurer! Are you ready to face your destiny?')
focus = cid
talk_start = os.clock()
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')
elseif focus == cid then
talk_start = os.clock()
if msgcontains(msg, 'yes') and talk_state ~= 458 then
if getPlayerLevel(cid) >= 8 then
selfSay('Great! What would you like to be? A sorcerer, a druid, a paladin or a knight?')
talk_state = 459
else
selfSay('Sorry, you need level 8 to leave rookgaard.')
talk_state = 0
end
elseif msgcontains(msg, 'no') then
selfSay('Come back when you are ready then.')
talk_state = 0
elseif talk_state == 459 then
vocationid = 0
talk_state = 458
if msgcontains(msg, 'sorcerer') then
selfSay('A mighty sorcerer! Are you sure?')
vocationid = 1
elseif msgcontains(msg, 'knight') then
selfSay('A valorous knight! Are you sure?')
vocationid = 4
elseif msgcontains(msg, 'paladin') then
selfSay('A nimble paladin! Are you sure?')
vocationid = 3
elseif msgcontains(msg, 'druid') then
selfSay('A mysterious druid! Are you sure?')
vocationid = 2
else
selfSay('Sorry, I can\'t understand that. Please type your vocation again.')
talk_state = 459
end
elseif talk_state == 458 then
if msgcontains(msg, 'yes') then
selfSay('Great! Where would you like to go? I can take you to NOME DA CIDADE.')
talk_state = 452
else
selfSay('What vocation do you want then?')
talk_state = 459
end
elseif talk_state == 452 then
if msgcontains(msg, 'now') then
doPlayerSetVocation(cid,vocationid)
doPlayerSetMasterPos(cid,pos)
selfSay('/send '.. creatureGetName(cid) ..', 100 100 7') - Troque para sua codernadas
end
end
talk_state = 0
talk_start = 0
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end
Va em creatures.xml e adicione isso:
<creature look type="138" name="The Oracle" head="78" body="119" legs="119" feet="76" type="npc"/>
Va em data/npc e faça um novo .xml e coloque isso:
<?xml version="1.0"?><npc name="The Oracle" script="data/npc/scripts/oracle.lua" access="3">
<look type="138" head="78" body="119" legs="119" feet="76" />
</npc>
OBS:Para adicionar mas cidades basta duplica a que ja tem ai.
Lembrando sempre torque as coordenadas para que se adapte ao seu mapa.
Se encontrarem algum erro mim notifique que eu editarei.
Creditos: By Paulo.
Att