Ir para conteúdo
  • Cadastre-se

Monster/NPC Shop System - Pontos no Site por Vocações


Posts Recomendados

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.

 

Link para o post
Compartilhar em outros sites
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

Link para o post
Compartilhar em outros sites
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

Link para o post
Compartilhar em outros sites
11 horas atrás, KotZletY disse:

@dissolima Você pediu, está ae! 

 

xD

Perfeito cara. REP+ mds. kkkk

 

mas tipo, meu servidor é de DBO e irei fazer 1 npc para cada vocação."para não ter dor de cabeça" 

problema q tem a parada de Reborn. :/

ai quando o player ja Rebornado compra a vocation ele volta pra vocation antes do reborn tendeu?

 tem como por tipo se tiver o player for voca id 1  vira voca id 2, e se for voca id 3 vira voca id 4?

ou se o player for voca id 1 vira voca id 2,  más se o player tiver tal Storage "ou seja voca id 3" ele em vez de virar voca id 2, virasse voca id 4.

 

sei que é meio complicado de tender, pq é para Server de DBO. mas se possivel dar essa forcinha tbm. dou outro Rep+ vlw

 

Haa tipo pra facilitar, tenho esse Script. ele faz isso que te pedi, problema q é em item.

ai caso tenha algo important no Script para vc arrancar e editar pra min. agradeceria.

function onThink(cid, interval)
local itemid = 13490 -- é o item que se o player tivesse na BP, automaticamente mudaria de vocation
local outfit = {lookType = 363} -- looktype da nova vocação caso o player seja não rebornado

if isPlayer(cid) then
if getPlayerItemCount(cid, itemid) >= 1 then
if getPlayerStorageValue(cid,30023) == 4 then
doPlayerSetVocation(cid, 454) -- Vocation ID da vocação já Rebornada
else
doPlayerSetVocation(cid, 449) -- Vocation ID da vocação não Rebornada
end
doPlayerRemoveItem(cid, itemid, 1)
doCreatureChangeOutfit(cid, outfit)
addEvent(doRemoveCreature, 1, cid)
end
end
return true
end

 

Editado por dissolima
achei um script para ajudar. (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Entendo, não deve ser difícil de fazer que já o Reborn usa uma Storage para dizer que é rebornado, mas terei que te chamar pm, pedi algumas informações e fazer uma modificação pequena no meu Sistema.

 

E acredite, eu faria se eu não estivesse numa preguiça docaes.jpg!

 

 

Kkk xD

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

Link para o post
Compartilhar em outros sites
3 minutos atrás, KotZletY disse:

Entendo, não deve ser difícil de fazer que já o Reborn usa uma Storage para dizer que é rebornado, mas terei que te chamar pm, pedi algumas informações e fazer uma modificação pequena no meu Sistema.

 

E acredite, eu faria se eu não estivesse numa preguiça docaes.jpg!

 

 

Kkk xD

intendo. mas assim que possivel, e vc tiver um tempinho me ajuda nessa questão msm.

 só preciso msm que o Npc faça mesma coisa que o script que mostrei. 

que ele reconheça se o player é reborn ou não. 

Obs: só para 1 vocação msm. kk mas vlw aew

Link para o post
Compartilhar em outros sites

@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 assim! xD

Veja um exemplo:

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())

 

 

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

Link para o post
Compartilhar em outros sites
Em 18/11/2016 ás 17:23, KotZletY disse:

@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 assim! xD

Veja um exemplo:

  Ocultar conteúdo


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())

 

REP+ irei testar o Script. vlw pela ajuda novamente

 

Link para o post
Compartilhar em outros sites
  • 4 months later...
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

Nao esta fucionando, em que parte do .lua boto isso mim ajuda! o npc pega normal eu viro a vocaçao e tudo mas n descontar os pontos no site!

Link para o post
Compartilhar em outros sites

@isac001 interessante isso, você me manda mensagem com toda pressa do mundo pra te responder aqui, e não tem moral para ler o tópico ?

No tópico, explica tudo, não falta nada, e não sabe onde colocar essa parte do script, sendo que em cima de onde você pegou o script fala onde deve colocar ? Sério isso ?

 

Spoiler

ahush.thumb.png.3e3aa10d74df96478c8d2fd24b58374d.png

 

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

Link para o post
Compartilhar em outros sites
1 minuto atrás, KotZletY disse:

@isac001 interessante isso, você me manda mensagem com toda pressa do mundo pra te responder aqui, e não tem moral para ler o tópico ?

No tópico, explica tudo, não falta nada, e não sabe onde colocar essa parte do script, sendo que em cima de onde você pegou o script fala onde deve colocar ? Sério isso ?

 

  Ocultar conteúdo

ahush.thumb.png.3e3aa10d74df96478c8d2fd24b58374d.png

 

EU COLOQUEI MAS N TIROU OS PONTOS NO SHOP!

Link para o post
Compartilhar em outros sites

@isac001 reinicie o servidor para ele poder carregar as duas funções. 

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

Link para o post
Compartilhar em outros sites

@victor4312 nas minhas funções da lib, troque 

db.executeQuery

por

db.query

 

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

Link para o post
Compartilhar em outros sites

@victor4312 voce usa mysq ou sqlite ? Com site ou sem ? Que site você usa ?

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

Link para o post
Compartilhar em outros sites

@victor4312 não acha um script que funcione ? Cara, meu script está mais que perfeito, se não funciona no seu server, então o problema é "com seu server".

Qual a versão da sua distro ? 

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

Link para o post
Compartilhar em outros sites

@victor4312 então mano, você mudou para a versão 0.4 recentemente ? Se sim atualizou as libs do NPC ?

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

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Henrique Gaudard
      Olá pessoal, primeiramente quero dizer que acho muito complicado mecher em monsters, poís qualquer erro, é fatal!! não sei porque quando fasso algumas modficações nos monsters/npcs que é quando eu modfico algumas coisas.., não entendo, só edito os nomes tipo assim;
      name "sfdsdfds" eu ponho "dhfudshgusopofkpsdakfgjid" (obs: não é no nome do arquivo lua mais sim o nome do monster mesmo já na edição) e dá erro. Se eu meche-se nas parada lá nos código todo doido de scripting tudo bem mais eu só quero editar e quando eu vou colocá-lo no mapa acontece o seguinte:
       
      Quando ligo aparece: "[Spawn : : addMonster] Cannot find "Ninja Star"" (ele está no presente no mapa e é um script obviamente). Falo!!
       
      Sistema Operacional: Windows 10

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo