RO

Criando Um Npc De Compra

Por Rotciv, 18 de dez. de 2005 em Tutoriais de Scripting

22
6.1k
RotcivR
18 de dezembro de 2005 às 18:43
focus = 0 talk_start = 0 target = 0 following = false 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 ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 4 then  	selfSay('Hello, ' .. creatureGetName(cid) .. '! I sell ropes (50gps), shovels (20gps), backpacks (10gps), manafluids (100gps), lifefluids (60gps) and fishing rods (100gps). I buy vials (10gps).')  	focus = cid  	talk_start = os.clock()  elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then  	selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')  elseif msgcontains(msg, 'rope') and focus == cid then  	buy(cid,2941,1,50)  	talk_start = os.clock()  elseif msgcontains(msg, 'shovel') and focus == cid then  	buy(cid,3395,1,20)  	talk_start = os.clock()  elseif msgcontains(msg, 'backpack') and focus == cid then  	buy(cid,2792,1,10)  	talk_start = os.clock()  elseif msgcontains(msg, 'manafluid') or msgcontains(msg, 'mana fluid') and focus == cid then  	buy(cid,2812,7,100)  	talk_start = os.clock()  elseif msgcontains(msg, 'lifefluid') or msgcontains(msg, 'life fluid') and focus == cid then  	buy(cid,2812,10,60)  	talk_start = os.clock()  elseif msgcontains(msg, 'fishing rod') and focus == cid then  	buy(cid,3421,1,100)  	talk_start = os.clock()	elseif (msgcontains(msg, 'vial') or msgcontains(msg, 'flask')) and focus == cid then  	sell(cid,2812,1,10)  	talk_start = os.clock()  elseif string.find(msg, '(%a*)bye(%a*)') and focus == cid and getDistanceToCreature(cid) < 4 then  	selfSay('Good bye, ' .. creatureGetName(cid) .. '!')  	focus = 0  	talk_start = 0  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

 

AGORA VOCÊ FAZ O SEGUINTE:

elseif msgcontains(msg, 'rope') and focus == cid then

   buy(cid,2941,1,50)

   talk_start = os.clock()

EXPLICAÇÃO:

Laranja: PALAVRA QUE O PLAYER TEM QUE FALAR PARA COMPRAR O ITEM.

AZUL: ID DO ITEM QUE O VO PLAYER VAI COMPRAR.

Verde: Quantidade do item que o player vai receber ao comprar. Ex: se você colocar 2 e o player for comprar uma corda, na hora que ele falar "hi" - "rope", ele irá receber 2 cordas. Então, deixe 1.

Amarelo: Quantidade de dinheiro que o player vai ter que pagar! EM GPS!

Espero ter ajudado. Qualquer dúvida :laughing:

Editado Dezembro 18 por GM Rotciv

CalmoC
20 de dezembro de 2005 às 09:16

POR MIN EU ACHEI EXELENTE O TUTO!!

VLW

MESMO!!

OBRIGADO!!

2 semanas depois...
28 de dezembro de 2005 às 11:05

hehe isso e tao obvio + eu nem parei pra pensai brigadao ae

ImperiI
28 de dezembro de 2005 às 11:31

Muito bom o TUTO o.O

buster287B
04 de janeiro de 2006 às 00:36

Muito bom.

É muito simples nem da pra acredita q eu nem sabia disso XD

06 de janeiro de 2006 às 17:15

Mto legal xDD gosttei

gabizinh@G
06 de janeiro de 2006 às 19:13

olha eu tenhu um npc que eu fiz .... esse ultimo sacript que vc pos eu posso por no final do scirpt do q eu fiz??

gabizinh@G
06 de janeiro de 2006 às 22:53

aeee!!! testei eh mtu bom mesmo valeu acabei de fazer pastel de queijo iuaheiuahuiaei mto rox!!! valeu!! mto bom tuto!

1 mês depois...
Pato_VerdeP
07 de fevereiro de 2006 às 00:34

Hummm...realmente eh muito óbovio e eu jah sabia fazer.Porém,quando eu tento mudar o npc Dark Rodo (vendedor de runes) ele dá erro!Gostaria de saber o por quê.Obrigado!

---Edit---

Desculpe por ressuscitar o tópico mais é que eu estou começando com OT Server somente agora.Obrigado.

Editado Fevereiro 7 por Pato_Verde

2 meses depois...
fran_furiousF
20 de abril de 2006 às 18:46

cara :icon1: otimo tuto,, vlw funciono direitinhu

2 semanas depois...
shemmueS
30 de abril de 2006 às 00:00

 

:bye: eu pensei nisso + fikei com medo d erra em algo ai vim da uma conferida e tava certo vlw msm

#pico##
30 de abril de 2006 às 11:00

nosssa parabens cara, eh tao simples assim :)

1 mês depois...
joaokkJ
20 de maio de 2006 às 08:25

thx pelu tutor ;)

mi audo mtuuuu

1 mês depois...
Bob_MalucoB
10 de junho de 2006 às 10:27

ajudou pax pq todo mundo do meu ot queria compra itens e era um saco fika procurando o id depois cria o item e vende

4 meses depois...
God LuanG
16 de outubro de 2006 às 19:54

Ajudou mto cara

Parabens..

Otimo tuto

Atenciosamente,God Luan.