Ir para conteúdo

Featured Replies

Postado
  • Autor

Ótimo cara, meus parabéns, simplesmente maravilhoso!  :wow: Mais uma dúvida, tem como colocar vender em npc?  (y)  

Sim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer :

em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto :

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOMEDOSEUNPC" script="data/npc/scripts/auranpc.lua" walkinterval="50000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
<parameters>
<parameter key="message_greet" value="Oi |PLAYERNAME|. Eu possuo a habilidade de ceder {aura}. O que deseja?"/>
</parameters>
</npc>

Coloque o nome do npc, e outfits de sua preferência.

agora vá em data\npcs\scripts, crie um arquivo chamado auranpc.lua, e cole isto :

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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(not npcHandler:isFocused(cid)) then
			 return false
	 end
	 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	 if msgcontains(msg, 'aura') then
					 if getPlayerStorageValue(cid,20201) ~= 1 then
					 selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)
					 talkState[talkUser] = 1
					 else
					 selfSay('Você já possui aura.', cid)
					 end
	 elseif talkState[talkUser] == 1 then
			 if msgcontains(msg, 'yes') then
							 if doPlayerRemoveMoney(cid, 10000000) then
									 setPlayerStorageValue(cid,20201,1)
									 selfSay('Parabéns, agora você possui aura!', cid)
									 talkState[talkUser] = 0
							 else
									 selfSay('Você não possui o dinheiro necessário.', cid)
							 end
			 else
					 selfSay('Então porque veio aqui?', cid)
			 end
	 end
	 return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Você pode configurar o dinheiro (ou item) necessário ali na parte "doRemovePlayerMoney", logo após o if. Se desejar algum item, escreva "doRemovePlayerItem(cid,ID do item, quantidade)". Quando você fizer isso, também deve mudar a mensagem do NPC em que diz o que precisa, que é a parte "selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)".

 

Logo após isso, vá no creaturescript da aura (data\creaturescripts\scripts\aura.lua), e apenas na função principal (onLogin), troque por isto :

function onLogin(cid)
	if(getPlayerStorageValue(cid, 20201)==1) then
		return efeitosAura(1,tempo/8,cid)
	end
	return TRUE
end

E pronto, agora é só adicionar o NPC no seu mapa.

Editado por bielzinhocrazy (veja o histórico de edições)

  • Respostas 63
  • Visualizações 12.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • bielzinhocrazy
    bielzinhocrazy

    Sim, é possível, mas para isso você deve fazer um creaturescript, e não um talkaction, que ficaria assim : Vai em data\creaturescripts\scripts crie um arquivo chamado auralogin.lua e coloque : -- C

  • bielzinhocrazy
    bielzinhocrazy

    Sim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer : em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto : <?xml version="1.0" encoding="UTF-8"?&

  • o Npc ta funcionando mais a pessoa nao precisa comprar a aura pra usar, queria que apenas quem comprasse pudesse usar como faço isso?

Postado

seja bem vindo ao TK bielzinho, adorei seu trabalho.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

Sim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer :

em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto :

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOMEDOSEUNPC" script="data/npc/scripts/auranpc.lua" walkinterval="50000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
<parameters>
<parameter key="message_greet" value="Oi |PLAYERNAME|. Eu possuo a habilidade de ceder {aura}. O que deseja?"/>
</parameters>
</npc>

Coloque o nome do npc, e outfits de sua preferência.

agora vá em data\npcs\scripts, crie um arquivo chamado auranpc.lua, e cole isto :

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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(not npcHandler:isFocused(cid)) then
			 return false
	 end
	 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	 if msgcontains(msg, 'aura') then
					 if getPlayerStorageValue(cid,20201) ~= 1 then
					 selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)
					 talkState[talkUser] = 1
					 else
					 selfSay('Você já possui aura.', cid)
					 end
	 elseif talkState[talkUser] == 1 then
			 if msgcontains(msg, 'yes') then
							 if doPlayerRemoveMoney(cid, 10000000) then
									 setPlayerStorageValue(cid,20201,1)
									 selfSay('Parabéns, agora você possui aura!', cid)
									 talkState[talkUser] = 0
							 else
									 selfSay('Você não possui o dinheiro necessário.', cid)
							 end
			 else
					 selfSay('Então porque veio aqui?', cid)
			 end
	 end
	 return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Você pode configurar o dinheiro (ou item) necessário ali na parte "doRemovePlayerMoney", logo após o if. Se desejar algum item, escreva "doRemovePlayerItem(cid,ID do item, quantidade)". Quando você fizer isso, também deve mudar a mensagem do NPC em que diz o que precisa, que é a parte "selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)".

 

Logo após isso, vá no creaturescript da aura (data\creaturescripts\scripts\aura.lua), e apenas na função principal (onLogin), troque por isto :

function onLogin(cid)
	if(getPlayerStorageValue(cid, 20201)==1) then
		return efeitosAura(1,tempo/8,cid)
	end
	return TRUE
end

E pronto, agora é só adicionar o NPC no seu mapa.

 

Ótimo cara, meus parabéns, incrível! 

Oi

  • 2 weeks later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo