Ir para conteúdo
Entre para seguir isso  
Bonano

Super Tutorial Sobre Npc

Recommended Posts

Bonano    0
Bonano

[center:06b03e7bde]Tutorial Completo Sobre Npc[/center:06b03e7bde]

 

Bom, Vamos Começar:

 

[center:06b03e7bde]O principal: Colocando o spawn de NPC

 

-Abra a pasta do seu OTServ

-Vá em data/word

-Procure por npc.xml

-Clicke com o botão direto e vá em "editar"

-Adicione a tag do seu npc depois de:

<?xml version="1.0"?>

<npclist>

-E antes de:

</npclist>

-E adicione a TAG

Exemplo:

 

<npc name="Npc" x="74" y="220" z="7"/>
Só mude o Npc para o nome do npc que voce queira!

E a cordenada (x,y,z) para a cordenada onde voce queira que este tal npc apareça!!

 

[center:06b03e7bde]Fazendo os seus NPC's andarem!

 

-Abra a pasta do seu OTServ

-Vá em data/npc/scripts/lib/npc.lua

-Abra-o

-Entre qualquer função adicione:

 

function moveRandom(ox,oy,max)

maxx = ox + max

maxy = oy + max

minx = ox - max

miny = oy - max

cx, cy, cz = selfGetPosition()

randmove = math.random(1,50)

if randmove == 1 then

nx = cx + 1

ny = cy

end

if randmove == 2 then

nx = cx - 1

ny = cy

end

if randmove == 3 then

ny = cy + 1

nx = cx

end

if randmove == 4 then

ny = cy - 1

nx = cx

end

if randmove >= 5 then

nx = cx

ny = cy

end

if((nx < maxx) and (ny < maxy) and (nx > minx) and (ny > miny)) then

moveToPosition(nx, ny, cz)

end

end

-Abra o arquivo .lua do NPC que voce queira que ande e adicione (no topo):

 

ox = 400

oy = 400

oz = 7

max = 5

Atenção:ox, oy e oz

E o"max"

 

-Ainda no mesmo arquivo.. procure pela função onThink() (para facilitar, aperte ctrl + f e escreva onThink) adicione:

 

if(focus == 0) then

moveRandom(ox,oy,max)

end

-Npc's estatuas ? Nunca mais! http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/tongue.gif

 

[center:06b03e7bde]Faça seu NPC leva-lo para mais de um lugar!

 

-Abra a pasta do seu OTServ

-Vá em data/npc/scripts

-Procure pelo script do seu npc de barco

-Agora procure por um exeplo de viagem..

-Por exemplo:

 

if msgcontains(msg, 'tutorial') and focus == cid then

if pay(cid,50) then

selfSay('Let's go!')

selfSay('/send ' .. creatureGetName(cid) .. ', 122 119 7')

focus = 0

talk_start = 0

else

selfSay('Sorry, you don't have enough money.')

talk_start = os.clock()

end

end

-Copie-o

-Agora depois desse ultimo end adicione denovo a mesma coisa..

-Dai é só alterar como quiser!

--Explicando:

 

if msgcontains(msg, 'tutorial')

È oque o player vai falar para ir para esse tal lugar..

 

if pay(cid,50) then

È quanto o player vai pagar pela "viagem", no caso, 50gps

 

selfSay('/send ' .. creatureGetName(cid) .. ', 122 119 7')

É pra onde o player vai ser teleportado, mude os numeros para onde voce queira que o player seja teleportado..

 

[center:06b03e7bde]Trocas com seu NPC

 

-Bom, vou postar a função de "trade" para os npc's:

 

if msgcontains(msg, 'trade') and focus == cid then

itemstatus = doPlayerRemoveItem(cid,ID_DO_ITEM)

if itemstatus == -1 then

selfSay('Where is the item?')

else

selfSay('Here it is...')

buy(cid,ID_DO_ITEM,1,0)

talk_start = os.clock()

end

Explicando:

doPlayerRemoveItem(cid,ID_DO_ITEM)

Este será o item que voce tera que dar ao npc para receber outro em troca

 

buy(cid,ID_DO_ITEM,1,0)

Este sera o item que o npc vai lhe dar em troca do outro

 

E se vc quiser vc pode acrecentar embaixo do else um

setPlayerStorageValue(cid,6019)

Que fará com que o NPC so troque uma vez o item!!

 

[center:06b03e7bde]Fazendo NPC olhar para outros lugares!

 

-Vá em data/npc

-Procure pelo NPC que voce queira que "olhe para outro lugar"

-Com o botão direito clicke em editar

-Procure por:

 

lookdir="2">

-Dai é só mudar esse "2"

-Atenção:

lookdir 0 = / (para o norte)

lookdir 1 = > (para o leste)

lookdir 2 = / (para o sul)

lookdir 3 = < (para o oeste)

 

[center:06b03e7bde]Editando preço de runas e outros itens em seu NPC

 

Bom primero passo , ecolha um NPC na pasta data/npc e veja qual o nome do script dele , fica logo apos o nome dele assim :

 

<npc name="Tutorial" script="data/npc/scripts/tutorial.lua"

Logo apos ver o nome va na pasta scripts (data/npc/scripts) e localize o arquivo que estava no seu NPC , no caso aqui tutorial.lua

 

Abra ele como bloco de notas e então procure as mensagens :

 

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

buy(cid,3085,1,5)

talk_start = os.clock()

Este é um exemplo de blank rune pode se perceber que cada runa ou item tem uma mensagem em cima do qual o player deve falar para comprar o item :

 

elseif msgcontains(msg, 'blank')

Assim se estivesse escrito SD, toda vez que ele falasse SD o npc responderia com essa ação.

 

buy(cid)

Essa é a parte mais importante: cid é o player que estará falando com o NPC

 

Se você quer editar o preço da runa, edite no caso, o 5

 

Se você quer criar uma nova runa ou item é só copiar essa parte e adicionar o ID da runa ou item que você quer mudar.

 

Mude a mensagem de Blanklembrando que para pegar o ID da runa ou do item é só ir no Items.xml que localiza-se na pasta data/items.

 

Lembrando que isso funciona do mesmo jeito para itens.

 

*******************

 

- Creditos a Todos Que Criam Topicos De Tutoriais;

- A todos Que Dão Suporte e;

A Eu

 

Espero Ter Ajudado

 

Bonano ~

Compartilhar este post


Link para o post
Compartilhar em outros sites
dR. tWiX.    0
dR. tWiX.

Ótimo tuto, mas já tem TUTO Sobre NPC no pedaço, obrigado por tentar!

 

Atitude Moderador!!

 

 

 

Donativos por gentileza.... Presciso de um Kit-Avatar xD

 

 

 

Atenciosamente,

dR.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Faelzinhow    0
Faelzinhow

Nossa senhora, perfeito rapaz :/ta muito bem explicado. Parabens

Compartilhar este post


Link para o post
Compartilhar em outros sites
Linkz    0
Linkz

Na verdade não tem nenhum tutorial de NPCs completo :]Aprovado! Lindo tutorial ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites
Hell Raiser    0
Hell Raiser

po esse fiko show mermo todo perfeinto e detalhado mwn parabens sem criticas nem acrescimos de ideias grats 10 /hb

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dexavo    0
Dexavo

tipo no meu ot num tem esse npc.xml oq eu faço ele eh 7.81?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fast hand I    0
Fast hand I

muuuuuito útil,tutorial ta praticamente perfeito...vou usar xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
Don flyer    0
Don flyer

Muito bom, explica tudo certinho .

Compartilhar este post


Link para o post
Compartilhar em outros sites
Arthos    0
Arthos

Olá,

Ajudou muito sim!

Parabens, tudo explicado perfeito.

 

/Arthray

Compartilhar este post


Link para o post
Compartilhar em outros sites
RC-X    0
RC-X

Muito Bom Bonano Parabêns , Ta Ajudando Bastante Aqui =P

Compartilhar este post


Link para o post
Compartilhar em outros sites
RedZL    0
RedZL

O meu dá erro =/sobre essa parte:function moveRandom(ox,oy,max) maxx = ox + max maxy = oy + max minx = ox - max miny = oy - max cx, cy, cz = selfGetPosition() randmove = math.random(1,50) if randmove == 1 then nx = cx + 1 ny = cy end if randmove == 2 then nx = cx - 1 ny = cy end if randmove == 3 then ny = cy + 1 nx = cx end if randmove == 4 then ny = cy - 1 nx = cx end if randmove >= 5 then nx = cx ny = cy end if((nx < maxx) and (ny < maxy) and (nx > minx) and (ny > miny)) then moveToPosition(nx, ny, cz) end end algo dá errado quando abro o ot...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Convidado Trakinaz   
Convidado Trakinaz

nao é super+ da 1 ajudinha

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bonano    0
Bonano

@RedzL

 

Vc adicionou isso no topo do seu Npc:

 

ox = 400 

oy = 400 

oz = 7 

max = 5

-Ainda no mesmo arquivo.. procure pela função onThink() (para facilitar, aperte ctrl + f e escreva onThink) adicione:

 

if(focus == 0) then 

moveRandom(ox,oy,max) 

end

Se Persistir o erro me mande uma mensagem...

 

Bonano ~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bonano    0
Bonano

@RedzL

 

Vc adicionou isso no topo do seu Npc:

 

ox = 400 

oy = 400 

oz = 7 

max = 5

-Ainda no mesmo arquivo.. procure pela função onThink() (para facilitar, aperte ctrl + f e escreva onThink) adicione:

 

if(focus == 0) then 

moveRandom(ox,oy,max) 

end

Se Persistir o erro me mande uma mensagem...

 

Bonano ~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gabizinha    0
Gabizinha

Eu quero fazer um trade npc, mas como ele chega e fala Hi, ai ele diz as parada e tal? eh soh copiar um lua branco e por isso ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gabizinha    0
Gabizinha

Eu quero fazer um trade npc, mas como ele chega e fala Hi, ai ele diz as parada e tal? eh soh copiar um lua branco e por isso ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Convidado Oponomo   
Convidado Oponomo

Nossa! Muito obrigado mesmo! Ajudou cara! ;)

 

Eu não conhecia alguns dos comandos para NPC assim, me ajudou muito...

1 pequena contribuição minha:

 

learnSpell(cid,'exori mort',600)

Faz com que o npc ensine uma magia ao jogador... Neste exemplo o jogador aprenderia a magia "exori mort" e pagaria 600 gold coins por ela. Se tentar comprar novamente o NPC dirá que voce já conhece a magia.

 

OBS: Não funciona em Evolutions 0.7.6 (para client 7.92) e provavelmente não funciona em nenhum outro OTserv 7.9+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×