Ir para conteúdo

Npc Que Vende Novos Itens


zimbituba

Posts Recomendados

Agora está na seção correta

 

 

 

Entao chega de papo e vamos ao que interessa

 

 

 

O NPC vende os novos itema 8.1 que são os seguintes: armor, legs, helmets e boots.

 

 

Primeiramente vá na pasta data/npc copie um arquivo lá existente e renomeie para Farizeus.

Abra o arquivo e cole isto dentro:

 

<?xml version="1.0"?>

<npc name="[color="#FF0000"]Farizeus[/color]" script="data/npc/scripts/new_items.lua" access="3" lookdir="3" autowalk="15">
<health now="1" max="1"/>
<look type="268" head="20" body="100" legs="50" feet="99"/>
</npc>

Feche e salve.

 

Após ter feito isto, abra a pasta data/np/scripts copie um arquivo lá existente e renomeie para new_items.

Abra o arquivo e cole isto dentro:

 

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('Hello ' .. creatureGetName(cid) .. '! Eu estou vendendo os novos items, pois estou precisando de dinheiro para curar a doença que meu pai tem no coração. Desejas algo?')
 		focus = cid
 		talk_start = os.clock()


 	elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
 		selfSay('Sorry, ' .. creatureGetName(cid) .. '! Estou ocupado, atendo você daqui a pouco, aguarde...')

 	elseif focus == cid then
	talk_start = os.clock()


	if msgcontains(msg, '[color="#0000FF"]blue legs[/color]') then
		buy(cid,[color="#FF8C00"]7730[/color],[color="#808000"]1[/color],[color="#FFFF00"]25000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]terra coat[/color]') then
		buy(cid,[color="#FF8C00"]7884[/color],[color="#808000"]1[/color],[color="#FFFF00"]20000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]terra legs[/color]') then
		buy(cid,[color="#FF8C00"]7885[/color],[color="#808000"]1[/color],[color="#FFFF00"]30000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]terra boots[/color]') then
		buy(cid,[color="#FF8C00"]7886[/color],[color="#808000"]1[/color],[color="#FFFF00"]2000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]magma boots[/color]') then
		buy(cid,[color="#FF8C00"]7891[/color],[color="#808000"]1[/color],[color="#FFFF00"]2000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]glacier shoes[/color]') then
		buy(cid,[color="#FF8C00"]7892[/color],[color="#808000"]1[/color],[color="#FFFF00"]2000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]lightning boots[/color]') then
		buy(cid,[color="#FF8C00"]7893[/color],[color="#808000"]1[/color],[color="#FFFF00"]2000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]magma legs[/color]') then
		buy(cid,[color="#FF8C00"]7894[/color],[color="#808000"]1[/color],[color="#FFFF00"]30000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]lightning legs[/color]') then
		buy(cid,[color="#FF8C00"]7895[/color],[color="#808000"]1[/color],[color="#FFFF00"]30000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]glacier kilts[/color]') then
		buy(cid,[color="#FF8C00"]7896[/color],[color="#808000"]1[/color],[color="#FFFF00"]25000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]glacier coat'[/color]) then
		buy(cid,[color="#FF8C00"]7897[/color],[color="#808000"]1[/color],[color="#FFFF00"]15000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]lightning robe[/color]') then
		buy(cid,[color="#FF8C00"]7898[/color],[color="#808000"]1[/color],[color="#FFFF00"]15000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]magma coat[/color]') then
		buy(cid,[color="#FF8C00"]7899[/color],[color="#808000"]1[/color],[color="#FFFF00"]15000[/color])
	elseif msgcontains(msg, '[color="#0000FF"]magma monocle[/color]') then
		buy(cid,[color="#FF8C00"]7900[/color],[color="#808000"]1[/color],[color="#FFFF00"]2500[/color])
	elseif msgcontains(msg, '[color="#0000FF"]glacier mask[/color]') then
		buy(cid,[color="#FF8C00"]7902[/color],[color="#808000"]1[/color],[color="#FFFF00"]2500[/color])
	elseif msgcontains(msg, '[color="#0000FF"]lightning headband'[/color]) then
		buy(cid,[color="#FF8C00"]7901[/color],[color="#808000"]1[/color],[color="#FFFF00"]2500[/color])
	elseif msgcontains(msg, '[color="#0000FF"]glacier mask[/color]') then
		buy(cid,[color="#FF8C00"]7902[/color],[color="#808000"]1[/color],[color="#FFFF00"]2500[/color])
	elseif msgcontains(msg, '[color="#0000FF"]terra hood[/color]') then
		buy(cid,[color="#FF8C00"]7903[/color],[color="#808000"]1[/color],[color="#FFFF00"]2500[/color])





	elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
		selfSay('Até mais, volte sempre!, ' .. creatureGetName(cid) .. '!')
		focus = 0
		talk_start = 0
	end
 	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
	if focus ~= 0 then
		if getDistanceToCreature(focus) > 5 then
			selfSay('Até mais.')
			focus = 0
		end
	end
end

 

 

Pronto seu NPC que vende os novos itens está pronto :)

 

 

Explicando:

 

Vermelho = nome do npc.

Laranja = id do item.

Verde = Quantidade de itens que o player vai receber.

Amarelo = Prelo do item.

Azul = Nome do item.

 

Espero que gostem e façam bom proveito :)

 

 

Créditos 100% by Shynzo ( eu )

Caso for repassar em algum forum, favor não tirar meus créditos :icon1:

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

Nossa cara!

Muitooo bom mesmo o tutorial, por favor moderadores nao excluam deixem ele passar pra outra seção pois muito me interessa esse topico!

Parabpens ae Shynzo.!

Muito bom.

Link para o comentário
Compartilhar em outros sites

seu script tem acentos... e como todos sabem, nenhum server, com excessao dos SQLS, aceitam acentos...

isso tira o rpg do server, afinal todos poderiam ter todos os items novos sem esforço algum

Link para o comentário
Compartilhar em outros sites

Bom amigo já que até agora nenhum moderador apareceu, o local correto para você fazer topico dessa natureza (tutorial). Acesse OTServ > Tutoriais > Aprovação de Tutoriais> la faça o seu tutorial minutos ou horas depois seu topico será avaliado por algum moderador que irá aprovar seu tutorial e transferi-lo para a seção correta isso se for realmente aprovado.

 

Espero ter ajudado.

 

Topico reportado.

 

Nem menos =D.

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

Na verdade qualquer server aceita acentos ¬¬

Você só não pode usá-los em arquivos .XML se for .LUA não há problema nenhum em acentuar as palavras. ( Demorei pra percber isso, infelizmente :p )

Bem, embora eu use npcs com esse code no meu server, não gosto deles assim e irei adicionar novos que perguntam se o player realmente deseja executar a ação, ( ex: Você realmente quer vender 1 halberd por 300 gps? ).

Pois se você simplismente chega e diz o que quer comprar ou vender, apesar de ser mais rápido, não é muito bom de ser usado...

Anyway, isso aqui não é um tutorial, é um Npc ;o

Legalzinho pra quem gosta desse tipo...Vlws, flw.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...