Ir para conteúdo

[pedido] Npc Vende Arma Em Troca De Outros Itens.


zaratustralogin

Posts Recomendados

Tipo do script: NPC

Protocolo (versão do Tibia): 8.40

Servidor utilizado: Tfs 0.3.1

 

Boa Tarde a todos,

Eu estou fazendo um projeto com tudo "diferenciado" em relação aos outros Ots, e venho através deste post pedir se alguem poderia fazer para mim, ou me ajudar a fazer um NPC, em que ele vendesse itens como armas e armaduras em troca de outros itens.

Calma! darei um exemplo :smile_positivo:

 

Item desejado: Dragon Shield

Itens necessários para o NPC forjar o item: 20 iron ore, 3 piece of iron, 3 green dragon leather

 

Item desejado de gradativamente maior: Vampire Shield

Itens necessários para o NPC forjar o item: 1 dragon shield, 28 vampire dust, 7 piece of iron

 

assim por diante...

 

(vale lembrar que isto foi só um exemplo do que eu quero) se puder fazer o script com esses exemplos pra mim continuar já seria uma ajuda e tanto! :mdr:

 

Esse é meu primeiro post, por favor, me auxilie caso eu esteja fazendo algo errado.

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

Eu não mexo com npc, mas posso te dar a action, ai você faz com alavanca sei lá..:

 

function onUse(cid,item,pos)

 

if getThingfromPos({x=123,y=123,z=7,stackpos=2}) == 1234 and getThingfromPos({{x=123,y=123,z=7,stackpos=3}) == 1234 and getThingfromPos({x=123,y=123,z=7,stackpos=4}) == 1234 then

doRemoveItem(getThingfromPos({x=123,y=123,z=7,stackpos=2}))

doRemoveItem(getThingfromPos({x=123,y=123,z=7,stackpos=3}))

doRemoveItem(getThingfromPos({x=123,y=123,z=7,stackpos=4}))

doCreateItem(1234,1,{x=123,y=123,z=7,stackpos=2})

doSendMagicEffect({x=123,y=123,z=7,stackpos=2},4)

else

doPlayerSendCancel(cid,"Sorry but the itens are incorrect.")

end

end

 

Então.. os itens estão sobre uma mesa, um sobre o outro. São três itens. Os ids deles estão em 1234 e as posições x e y 123. Altere elas mas não altere o stackpos. O item criado fica sobre a mesa e é enviado um efeito sobre ela. A posição da mesa também esta em 123,123,7. Espero que funcione pois não testei :p :smile_positivo:

Link para o comentário
Compartilhar em outros sites

Eu não mexo com npc, mas posso te dar a action, ai você faz com alavanca sei lá..:

 

function onUse(cid,item,pos)

 

if getThingfromPos({x=123,y=123,z=7,stackpos=2}) == 1234 and getThingfromPos({{x=123,y=123,z=7,stackpos=3}) == 1234 and getThingfromPos({x=123,y=123,z=7,stackpos=4}) == 1234 then

doRemoveItem(getThingfromPos({x=123,y=123,z=7,stackpos=2}))

doRemoveItem(getThingfromPos({x=123,y=123,z=7,stackpos=3}))

doRemoveItem(getThingfromPos({x=123,y=123,z=7,stackpos=4}))

doCreateItem(1234,1,{x=123,y=123,z=7,stackpos=2})

doSendMagicEffect({x=123,y=123,z=7,stackpos=2},4)

else

doPlayerSendCancel(cid,"Sorry but the itens are incorrect.")

end

end

 

 

Então.. os itens estão sobre uma mesa, um sobre o outro. São três itens. Os ids deles estão em 1234 e as posições x e y 123. Altere elas mas não altere o stackpos. O item criado fica sobre a mesa e é enviado um efeito sobre ela. A posição da mesa também esta em 123,123,7. Espero que funcione pois não testei :p :smile_positivo:

 

Então amigo, isto não poderia ser transformado por uma ação de um npc? pois eu gostaria que fosse o mesmo sistema de um npc que vende addons para os players entende?

 

Exemplo:

player:hi

 

npc: olá, eu trabalho nesta forjaria, e poderia fazer itens para você, verifique a lista de itens ao livro ao lado.

 

player: dragon shield

 

npc: para que eu possa fazer o dragon shield, eu vou precisar de 20 iron ore, 3 piece of iron, 3 green dragon leather, já tem os itens?

 

player: yes => está aqui o item, obrigado e volte sempre

player: no => volte quando obter todos itens.

 

entendeu? eu não tenho idéia na ação que eu poderia usar para fazer isso! pois a unica ação parecida que eu sei é justamente essa de addons, mais eu não tenho como editar ela pois ela já é uma função especifica para os addons ;/

se fosse um item seria muito melhor.

Link para o comentário
Compartilhar em outros sites

Tipo do script: NPC

Protocolo (versão do Tibia): 8.40

Servidor utilizado: Tfs 0.3.1

 

Boa Tarde a todos,

Eu estou fazendo um projeto com tudo "diferenciado" em relação aos outros Ots, e venho através deste post pedir se alguem poderia fazer para mim, ou me ajudar a fazer um NPC, em que ele vendesse itens como armas e armaduras em troca de outros itens.

Calma! darei um exemplo :smile_positivo:

 

Item desejado: Dragon Shield

Itens necessários para o NPC forjar o item: 20 iron ore, 3 piece of iron, 3 green dragon leather

 

Item desejado de gradativamente maior: Vampire Shield

Itens necessários para o NPC forjar o item: 1 dragon shield, 28 vampire dust, 7 piece of iron

 

assim por diante...

 

(vale lembrar que isto foi só um exemplo do que eu quero) se puder fazer o script com esses exemplos pra mim continuar já seria uma ajuda e tanto! :mdr:

 

Esse é meu primeiro post, por favor, me auxilie caso eu esteja fazendo algo errado.

Agradeço desde já.

 

 

Boa idéia, aqui vai:

 

1º Passo: Crie um arquivo com o nome: A Sweaty Cyclops.xml na pasta data/npc e cole isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="A Sweaty Cyclops" script="data/npc/scripts/Sweaty Cyclops.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="22" head="0" body="0" legs="0" feet="0"/>
<parameters>
	<parameter key="message_greet" value="Ola |PLAYERNAME|, eu trabalho nesta forjaria, e poderia 

fazer itens para vc, verifique a lista de itens ao livro ao lado. " />
</parameters>
</npc>

 

2º Passo: Dentro da pasta data/npc/scripts crie o arquivo Sweaty Cyclops.lua e cole isso dentro:

local talk_state = 0

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)  npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) 	npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) 	npcHandler:onCreatureSay(cid, type, msg) 	end
function onThink()  npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)


       if msgcontains(msg, 'dragon shield') then
       if getPlayerItemCount(cid,5880) >= 20 and getPlayerItemCount(cid,2225) >= 3 and getPlayerItemCount(cid,5877) >= 3 then
       if doPlayerRemoveItem(cid,5880,20) and doPlayerRemoveItem(cid,2225,3) and doPlayerRemoveItem(cid,5877,3) then
       doPlayerAddItem(cid,2516,1)
       npcHandler:say('Esta aqui o item, obrigado e volte sempre!')
               end
               else
       npcHandler:say('Voce nao tem todos os itens.. ')
       talk_state = 0
               end
       elseif msgcontains(msg, 'no') then
               npcHandler:say('Thau, volte sempre!!')
               talk_state = 0
    end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Espero ter ajudado, em breve irei fazer um mais completo p incluir ele na quest da blue legs e da obsidian knife no meu server e depois posto aqui no fórum!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...