Ir para conteúdo

Super Tutorial Sobre Npc


Heitorzin

Posts Recomendados

Ow bom trabalho kra mto bom mesmo tudo bem explicadinho e talz

 

Soh um problema cara..

 

Tipow.. Antes c vc empurrase os npc eles naum c moviam..

 

Agora c vc empurrar eles movem

 

Soh q ele num anda por conta própria

 

Ve c vc consegue resolver o brema ae

 

Flwss mlk

Link para o comentário
Compartilhar em outros sites

  • 3 months later...

bom tutorial, facil de entender, separado por cores...gratz

mas se puder me dar uma ajuda...eu tinha um npc funcionando q vendia td os addons, dai fiz um outro pra vender soh o citizen, e naum ta dando certo, fala que falta '>' perto do 's' na linha 181.

mas na minha linha 181 aparece: selfsay...(o que precisa pro segundo addon)

se puder ajudar agradeço...

Link para o comentário
Compartilhar em outros sites

  • 5 months later...

Seu tuto é ótimo, vai ajudar os iniciantes no assunto, todo tópico relacionado a script de npc eu entro correndo, para procurar o que há tempos estou atras mais nunca acho...

 

Queria ajuda para npc vender bp de runes

 

PS: não akeles que vende bp junto com as runes, quero que venham já dentroda bp, porque vender junto eu já sabia fazer, e não ajuda nada

 

Vlw

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Opa, eu sou um GOD que acabou de criar seu OtServer 8.1 e tenho algumas duvidas!!!

Bom, quando eu abro o map editor vem um lista na minha frente com varios NPCs que estaum faltando. Mas no jogo eles estaum la mas n estaum funcionando, eu quero saber como add esse NPCs no meu Ot.

 

Se puder me ajudar mande a resp para emlucas@hotmail.com!

 

 

flw...

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
  • 2 years later...

Motivo do Tópico:Muitas duvidas sobre NPC (quem ajuda lá no fórum de Suporte sabe oque eu estou falando)..

Estou aqui para tentar ajuda-los, e com esse tutorial eu sempre vou estar editando/adicionando coisas novas aqui, e aceito opniões!

Alem de eu criar/editar/arrumar tópicos sobre NPC's eu estou adicionando alguns tutoriais para ficar tudo mais completo!

 

Versão Padrão: Yurots

 

Bom, vamos começar:

 

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 apareca!!

 

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é a posição de respaw do seu NPC, altere de acordo com cada NPC.

E o "max"é a quantidade maxima de sqms que o NPC vai poder se afastar do ser respaw original.

 

-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! :icon1:

 

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..

 

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!!

 

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)

 

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,3085,1,5)

 

Essa é a parte mais importantecid é o player que estará falando com o NPC,3085 é o ID da blank rune,1 é o numero de blanks que o NPC dará pra elee 5 é o preço da blank rune

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

 

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 deBlankpara o nome da runa ou item escolhido, lembrando 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:

-Todos usuarios com tópicos sobre NPC no fórum de tutoriais.

-Todos criadores de tutoriais sobre NPC.

-Todas duvidas respondidas sobre NPC.

-Tutorial by Gaspar de um otro fórum

Espero ter ajudado,

Heitorzin

 

OBS: Rotciv,obrigado por me alertar que o nome era Yurots.

Abraços

 

 

isso e pra qe versao 8.60 ? pq meu aki naum tem :/

me ajuda ae ?

Link para o comentário
Compartilhar em outros sites

  • 5 weeks later...
×
×
  • Criar Novo...