Ir para conteúdo
  • 0

[Ajuda] Npc System


Mehahbr

Pergunta

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)

if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then

selfSay('Ola ' .. getCreatureName(cid) .. '! Eu vendo parcel, letter e ticket de viagem!')

focus = cid

talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk with you in one minute.')

 

 

elseif msgcontains(msg, 'ticket city') then

selfSay('Voce tem os 1000 gold coin para comprar 1 ticket of city?')

talk_state = 1

talk_start = os.clock()

elseif talk_state == 1 and msgcontains(msg, 'yes') then

if doPlayerRemoveMoney(cid,1000) == TRUE then

selfSay('Parabens! Voce adquiriu um item!')

local item1 = doPlayerAddItem(cid,1969,1)

doItemSetAttribute(item1,"text","[Air Ticket]: Passaport\nDestination: GM Island.")

doItemSetAttribute(item1,"name","GM Island Passaport")

else

selfSay('Desculpe, voce nao tem dinheiro suficiente!')

end

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', Come back.')

focus = 0

talk_start = 0

elseif msgcontains(msg, 'kashsauahsuacuyio') then

selfSay('What?')

talk_state = 0

end

end

function onCreatureChangeOutfit(creature)

end

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

 

Como passo esse npc para versao 8.6? Obrigado...

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Cara eu arurmei certinhu.

Mas esse forum nao tme uma tag que deixo o codigo certinhu ;x

Mas ta ai testei no Crystal Server e funcionou :)

Se funfa ai me da um rep xD

 

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.', cid)

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)

if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then

selfSay('Ola ' .. getCreatureName(cid) .. '! Eu vendo {parcel}, {letter} e {ticket city}!', cid)

focus = cid

talk_start = os.clock()

 

elseif msgcontains(msg, 'ticket city') or msgcontains(msg, 'ticket') then

selfSay('Voce tem os 1000 gold coin para comprar 1 ticket of city?', cid)

talk_state = 1

talk_start = os.clock()

elseif talk_state == 1 and msgcontains(msg, 'yes') then

 

if doPlayerRemoveMoney(cid, 1000) == TRUE then

selfSay('Parabens! Voce adquiriu um item!', cid)

local item1 = doPlayerAddItem(cid,1969,1)

doItemSetAttribute(item1,"text","[Air Ticket]: Passaport\nDestination: GM Island.")

doItemSetAttribute(item1,"name","GM Island Passaport")

else

selfSay('Desculpe, voce nao tem dinheiro suficiente!', cid)

end

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', Come back.', cid)

focus = 0

talk_start = 0

elseif msgcontains(msg, 'kashsauahsuacuyio') then

selfSay('What?', cid)

talk_state = 0

end

end

 

function onCreatureChangeOutfit(creature)end

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next...', cid)

end

focus = 0

talk_start = 0

end

 

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye', cid)

focus = 0

talk_start = 0

end

end

end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...