Ir para conteúdo

[npc] [8.1] Npc Que Vende Bp De Fluids (manafluid)!


khaleesi95

Posts Recomendados

Nome: NPC que vende BP de fluids!

Tipo: NPC

Versão: 8.1

 

Bom, eu procurei na net várias e várias vezes, um NPC que vende BP de manafluid ou outro tipo de fluid, só achava de runas, etc.

 

Vamos começar então...

 

PRIMEIRO PASSO:

 

Entre na sua pasta NPC e copie qualquer alquivo .xml de NPC que tiver na pasta e em seguida cole-o na mesma pasta:

 

PASTA_DO_OT > Data > npc

 

img2tuto.png

 

** Pode ser qualquer arquivo.

 

Após isso renomeie com o nome do NPC que vc quer que venda as BPs

Ex: Bp Fluid.xml

 

SEGUNDO PASSO:

 

Delete tudo que está no seu novo arquivo de NPC (Bp Fluid.xml) e cole isto:

 

<?xml version="1.0"?><npc name="Vendedor de BP de MF" script="data/npc/scripts/bpfluid.lua" access="0">
<look type="251" head="57" body="57" legs="57" feet="57" addons="2" corpse="3128"/>
</npc>
 

 

name="Vendedor de BP de MF": Nome do NPC ( Vai aparecer em seu OT ).

 

script="data/npc/scripts/bpfluid.lua": Local onde se encontra o arquivo .lua que vamos configurar mais à frente.

 

access="0": O Número do acesso do NPC, no caso 0, pois queremos que ele seja acessível a todos do server.

 

Salve o arquivo.

 

TERCEIRO PASSO:

 

Vá na Pasta Scripts dentro da pasta NPC e copie qualquer arquivo e cole na mesma pasta, renomeando-o para "bpfluid.lua" (ver parte verde do código XML), em nosso caso.

 

QUARTO PASSO:

 

Apague o conteúdo de seu arquivo "bpfluid.lua" e copie isto:

 

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

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) < 3 then
 selfSay('Olá ' .. creatureGetName(cid) .. '! Eu vendo bps De MF (manafluid) 1k e LF (lifefluid) 600gp.')
 focus = cid
 talk_start = os.clock()

elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 3 then
 selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Eu falo com você em um minuto.')




elseif msgcontains(msg, 'bp de mf') and focus == cid then
buyContainer(cid,1988,2006,7,1000,20)
talk_start = os.clock()

elseif msgcontains(msg, 'bp mf') and focus == cid then
buyContainer(cid,1988,2006,7,1000,20)
talk_start = os.clock()

elseif msgcontains(msg, 'bp de lf') and focus == cid then
buyContainer(cid,1988,2006,10,600,20)
talk_start = os.clock()

elseif msgcontains(msg, 'bp lf') and focus == cid then
buyContainer(cid,1988,2006,10,600,20)
talk_start = os.clock()

elseif string.find(msg, '(%a*)bye(%a*)')  and getDistanceToCreature(cid) < 3 then
 selfSay('Até logo, ' .. 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('Próximo por favor...')
 end
 focus = 0
end
end
 

 

Bom, eu são sou um bom scripter, por isso não vou comentar boa parte desse código, mas vou falar da parte (pelo menos eu acho) mais importante do script, que é a parte onde o NPC vende a BP de Fluid.

 

Vou mostrar só uma parte da venda (BP de MF) porque a outra é igual só muda um número, e o preço.

 

elseif msgcontains(msg, 'bp de mf') and focus == cid then
buyContainer(cid,1988,2006,7,1000,20)
talk_start = os.clock()
 

 

elseif msgcontains(msg, 'bp de mf'): O que o player deverá diser para comprar sua BP cheia de manalfuid.

 

Agora vou explicar a parte importante do código:

 

buyContainer(cid,1988,2006,7,1000,20)

 

Em marrom: ID da Backpack Simples. Você pode escolher o modelo da Backpack basta saber a ID e trocar por ali.

Em verde: ID de um "vial": provavelmente vidros onde ficam os fluids (não troque aqui se quer fluid).

Em azul: ID que define qual tipo de fluid, ex: manafluid, lifefluid, água, e por ai vai. Pra você saber a ID do tipo de fluid, basta ir na pasta "items", e entrar em "items.xml", aqui procure pelo fluid que você quer, no meu pro exemplo a manafluid está com a ID assim: "20007", ai é só utilizar o numero 7 (10 para lifefluid - por exemplo).

Em vermelho: Preço que o usuário vai pagar pela BP cheia: 1000gp (1k).

Em rosa: Número de manafluids dentro da backpack, como a bp só cabe 20, ali fica 20. Se quiser colocar bps que cabem mais, você vai ter que editar ali.

 

NPC QUE VENDE BP DE ITENS

 

Como prometido, vou falar um pouco sobre esse assunto.

 

TODOS OS PASSOS DESSE SÃO IGUAIS AOS DA BP DE MANAFLUID, com excesão do último.

 

Vou explicar este código:

 

elseif msgcontains(msg, 'bp de uh') and focus == cid then
buyContainer(cid,1988,2273,100,600)
talk_start = os.clock()
 

 

elseif msgcontains(msg, 'bp de uh'): O que o player deverá diser para comprar sua BP cheia de UH.

 

Agora vou explicar a parte importante do código:

 

buyContainer(cid,1988,2273,100,600)

 

Em marrom: ID da Backpack Simples. Você pode escolher o modelo da Backpack basta saber a ID e trocar por ali.

Em verde: ID do Item, no caso UH.

Em azul: Números de item por slot (UH é agrupável). Se for item que só cabe 1 por slot (ex.: rope - corda), você só precisa apagar o número 100 e uma das vírgulas:buyContainer(cid,1988,2273,600).

Em vermelho: O preço por BP cheia do Item: 600gp.

 

COMO COLOCAR SEU NPC NO MAP EDITOR

 

To sem o MAP EDITOR, mas vou falar mais ou menos aqui:

 

Vá na pasta do seu MAP editor e procure o arquivo "creatures.xml", copie uma das linhas e Add uma dessas:

 

<creature looktype="251" name="Bp Fluid" head="57" body="57" legs="57" feet="57" type="npc"/>

 

lokktype, head, body, legs, feet você copia do arquivo que você criou do NPC na pasta NPC, (PRIMEIRO PASSO).

name: coloque o Nome que você colocou no seu arquivo de NPC, (PRIMEIRO PASSO).

type: npc (porque é um NPC).

 

É bem simples, tem um quadrado vermelho, ao lado de um verde (onde add protection zone), que adiciona uma espécie de "fogo" em um local, nesta área vermelha você pode adicionar NPCs ou Monstros...

 

Coloque na área onde vai ficar o NPC, esse "fogo" e o QUALQUER (Qualquer um da lista) NPC do lado do "fogo".

 

Clique numa setinha que tem numa barra horizontal no topo, e dê dois cliques em cima no NPC, agora edite, coloque no lugar do Nome, o nome do arquivo XML que você criou para o NPC.

 

Ex.: Bp Fluid (só o nome sem o .xml)

 

 

** Só testei no 8.1, mas acredito que funcione em outras versões.

 

Abraços a todos.

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

  • 1 year later...
×
×
  • Criar Novo...