Ir para conteúdo

Npc Oracle


XPaulo

Posts Recomendados

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 = 0

local 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

Editado por XPaulo
Link para o comentário
Compartilhar em outros sites

o tuto tá até bom por ser seu primeiro^^mas isso aqui não existe em 7.8x pra cima

Va no spawn dos npc e coloque isso:

 

QUOTE

<spawn centerx="196" centery="216" centerz="6" radius="5">

<npc name="The Oracle" x="-1" y="0"/>

</spawn>

Nas versões 7.8x pra cima você adiciona os npcs pelo map editor ¬¬ corrija isso^^ Nota: 5

 

 

//Sasky

Editado por Sasky
Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
  • 2 months later...
  • 1 month later...
  • 3 months later...
  • 3 years later...
×
×
  • Criar Novo...