Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Salve Galera, bom o Titulo já diz tudo, recentemente vir um Membro pedindo algo que muitos querem, e o nunca encontrei, pelo menos não aqui, vir vários Tópicos de pessoas pedindo esse NPC e nenhum resolvido.

Bem o que ele faz exatamente ? Ele vende Vocações por Pontos Diretamente do Site, hehe. Muito bem, passei a noite toda ontem testando e montando ele, então está 100%, a baixo informações dele e como instalar ele. 

 

  • Informações Gerais: 
Spoiler

Criado em TFS: 0.4 porém pode e acho que funcione em 0.3.6 

Protocolo: 8.60 - Mas como dito a cima, funciona em 8.54 também. 

Testei na Database usada em Modern AAC.

 

Esse NPC é diferente, o Player tem que ter em mente a Vocação que ele já irá comprar, pois no momento que ele falar Hi o NPC já irá falar as vocações que vende, e então o Player vai escolher qual, e na hora que ele digitar o nome da vocação, a Mágica acontece, coloquei direto assim evitando qualquer forma de repeti o nome da vocação para bugar de alguma forma. 

 

 

  • Instalando o NPC: 

 

Muito bem vamos instalar ele agora:

 

data/lib e abra o arquivo 050-function.lua e adicione essas duas funções nele:

Spoiler

function getPoints(cid)
local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')
if(res:getID() == -1) then
return 0
end
local ret = res:getDataInt("premium_points")
res:free()
return tonumber(ret)
end

function doPlayerRemovePoints(cid, pontos)
return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getPoints(cid) - pontos .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
end

 

Essas duas funções, a primeira irá verificar se você tem pontos no Site, no caso, na sua conta, e a segunda vai remover a quantidade de pontos que você irá declarar no Script a baixo. 

 

Feito isso vamos em, data/npc/scripts e crie um arquivo chamado sell_voc.lua e adicione esse script dentro:

Spoiler

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(not npcHandler:isFocused(cid)) then
return false
end


local tempo = 20 -- Tempo para falar com o NPC e evitar Spam, caso não tenha os pontos.
local storage = 115818 -- Não mude essa Storage
local pontos = 25 -- Quantidade de pontos no site que precisa para comprar a vocação, essa quantidade vale para todas vocações serem compradas

local vocs = {
	["minato"] = 16, -- nome e id da vocação, lembrando sempre em letra minuscúla o nome
	["madara"] = 21,
	["obito"] = 15
}
	
	if exhaustion.check(cid, storage) then
	doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para falar com o NPC novamente.")
	return false
	end

for voc, id in pairs(vocs) do
		if msgcontains(msg, voc) then
			if getPoints(cid) < pontos then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você não tem a quantidade de Pontos para comprar uma Vocação vip")
				exhaustion.set(cid, storage, tempo)
				return false
			else
				doPlayerSetVocation(cid, id)
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens, voce agora e um ".. voc:gsub("^%l", string.upper)..", relogue seu Char e Bom Jogo! xD")
				doPlayerRemovePoints(cid, pontos)
				addEvent(doRemoveCreature, 1000, cid)
			end
			return true
		end
	end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

E pra finalizar, você deve ir em, data/npc e criar um arquivo chamado shopvoc.xml, e dentro da Script você edita o nome verdadeiro do NPC. Vamos lá:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Vocacoes" script="data/npc/scripts/sell_voc.lua" walkinterval="2000" speed="0" floorchange="0">
	<health now="100" max="100"/>
	<look type="167" head="38" body="79" legs="107" feet="114"/>
	<parameters>
  <parameter key="message_greet" value="Então, eu vendo Vocações Vip Poderosas, elas são {Minato}, {Madara} e {Obito}, qual deseja comprar ?. "/>
  								<parameter key="message_farewell" value="Até mais!" />

								<parameter key="message_walkaway" value="Até mais!" />
    </parameters></npc>

 

 

Bom para configurar basta adicionar as vocações no Shop, o nome dela e o ID dela, e fim, e mais nada. 

["nome da vocação"] = id da vocação

Obs: nome da vocação em minusculo!

 

 Os pontos das vocações, geralmente são o mesmo valor de pontos para todas as vocações, e então fiz dessa maneira. Para editar quantos pontos as vocações irá custar, basta editar aqui nessa linha:

local pontos = 25

 

E não se esqueça de coloca o nome das vocações para o NPC mostrar aos players, 

aqui:


  <parameter key="message_greet" value="Então, eu vendo Vocações Vip Poderosas, elas são {Minato}, {Madara} e {Obito}, qual deseja comprar ?. "/>

com a chave {} abrindo e fechando o nome da vocação, ela fica em destaque, azul forte para destaca o nome da vocação. 

 

Qualquer duvida, erro na hora da instalação, estarei dando Suporte, qualquer duvida na hora de instalar só deixa nos Comentários, qualquer erro que você encontrar, bug, é só falar.

 

Créditos: Breno Neves = (KotZletY) Euzinho, criador do Sistema!

@xWhiteWolf - Por me ajudar na ultima att do sistema.

 

 

 

É proibido publicar esse Sistema em outro site, blog ou fórum, afinal fiz exclusivamente para o Tk.

Bye Bye! xD

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

  • Respostas 22
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Tópico Atualizado, sistema melhorado e mais fácil de configurar, e muito mais simples. Alteração adicionada ao Tópico!    Agora basta configurar o nome da vocação e o Id dela, e simples ass

Posted Images

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Postado
26 minutos atrás, KotZletY disse:

@dissolima Você pediu, está ae! 

 

xD

 

Muito bom. Uma coisa que eu mudaria nesse script seria a adição somente de uma função com AddEvent fazendo o character deslogar alguns segundos depois de ter trocado de vocação. Mas isso só pra personalizar e talvez só talvez evitar alguma dor de cabeça como tipo: Se o você mudar a vocação, e o servidor der rollback de alguma forma (crash), e quando voltasse você estivesse na vocação passada, porém, perdido os pontos. Então fica essa dica, eu acho hehe.

 

Todavia parabéns!

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Postado
  • Autor
1 minuto atrás, login12 disse:

Mais é exatamente pra isso, deslogar para salvar o Char.  Esse evento de deslogar, não muda em nada, é só pra isso mesmo, e talvez um enfeite.

Obrigado pelo comentário! 

 

xD

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo