Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Eai pessoal boa tarde, bom eu não sei se ja contem um tópico com este mesmo assunto sinceramente procurei e não encontrei mais vamos la vou lhes explicar oque eu quero.

Bom meu servidor tem um shop no site, que se compra os itens vip com Premium Points.

Minha intenção é fazer com que : Se o player tem 10 pontos no site e quer vender por um item dentro  do servidor ... como ele poderia passar estes 10 pontos para a conta de outra pessoa?

Bom, a intenção é a seguinte, criar um pergaminho ou qualquer outro item que ao der trade neste item ou pergaminho o cara que receber o pergaminho e tal, assim que ele receber, os 10 pontos forem retirados da conta que ja continha, e ser creditado 10 pontos na conta da pessoa que comprou entenderam?

Não sei se consegui ser muito claro no meu objetivo, mais se vocês souberem como fazer isso poderiam me ajudar por favor ?

Link para o post
Compartilhar em outros sites

@pyetrosj já contém, vários, precisaria fazer uma alteração na source, para quando o player realizar o comando, vamos supor que seja !tradepoints 10, o script irá executar a função criada diretamente na source, fazendo com que gere um pergaminho, papel ou sla, no trade do player target, com a quantidade de pontos que o player irá dizer.

 

Não diria que seja algo complexo, mais sim seria algo mediano, daria um pouco de dor de cabeça. hahaha! 

 

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

Link para o post
Compartilhar em outros sites
  • Moderador

 

na lib adc 

 

function getPremiumPoints(cid)
	local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid))
	return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points")
end
function setPremiumPoints(cid, amount)
	return db.executeQuery("UPDATE `accounts` SET `premium_points` = "..amount.." WHERE `id` = "..getPlayerAccountId(cid))
end

 

talk

 

 

sell_points.lua

 

function onSay(cid, words, param)
	local var,points = "[Sell Point System] Este documento vale %s points para você usar no site.",getPremiumPoints(cid)
	local min,max = 5, 100
	if param == "" or not tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, use somente numeros.") return true
	elseif tonumber(param) < min or tonumber(param) > max then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, Minimo "..min.." e Maximo "..max.." points.") return true
	elseif points < tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, mas você só possui "..points.." Premium Points.") return true
	end
	local item = doPlayerAddItem(cid, 7702,1) 
	doItemSetAttribute(item, "description", var:format(tonumber(param)))
	setPremiumPoints(cid, points-tonumber(param))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Sell Point System] Você recebeu um paper com "..param.." Premium Points.")
	return true
end

 

tag

 

<talkaction words="!sellpoints;/sellpoints" event="script" value="sell_points.lua"/>

 

actions

 

paper_points.lua

 

function onUse(cid, item, frompos, item2, topos)
	local var = getItemAttribute(item.uid, "description")
	if var == nil then return true end
	local x = var:match("%b[]")
	if x == "[Sell Point System]" then
		local ret = var:match("%d+")
		doPlayerSendTextMessage(cid, 22,"você recebeu "..ret.." Premium Points.")
		setPremiumPoints(cid, getPremiumPoints(cid)+ret)
		doRemoveItem(item.uid) 
	end
	return true
end

 

tag

 

<action itemid="7702" script="paper_points.lua"/>

 

 

USO E RECOMENDO, MUITO BOM

Scritp 100% do @Vodkart, só estou repassando

 

 

PAPEL.png

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites
24 minutos atrás, Zzyzx disse:

 

na lib adc 

 


function getPremiumPoints(cid)
	local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid))
	return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points")
end
function setPremiumPoints(cid, amount)
	return db.executeQuery("UPDATE `accounts` SET `premium_points` = "..amount.." WHERE `id` = "..getPlayerAccountId(cid))
end

 

talk

 

 

sell_points.lua

 


function onSay(cid, words, param)
	local var,points = "[Sell Point System] Este documento vale %s points para você usar no site.",getPremiumPoints(cid)
	local min,max = 5, 100
	if param == "" or not tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, use somente numeros.") return true
	elseif tonumber(param) < min or tonumber(param) > max then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, Minimo "..min.." e Maximo "..max.." points.") return true
	elseif points < tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, mas você só possui "..points.." Premium Points.") return true
	end
	local item = doPlayerAddItem(cid, 7702,1) 
	doItemSetAttribute(item, "description", var:format(tonumber(param)))
	setPremiumPoints(cid, points-tonumber(param))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Sell Point System] Você recebeu um paper com "..param.." Premium Points.")
	return true
end

 

tag

 


<talkaction words="!sellpoints;/sellpoints" event="script" value="sell_points.lua"/>

 

actions

 

paper_points.lua

 


function onUse(cid, item, frompos, item2, topos)
	local var = getItemAttribute(item.uid, "description")
	if var == nil then return true end
	local x = var:match("%b[]")
	if x == "[Sell Point System]" then
		local ret = var:match("%d+")
		doPlayerSendTextMessage(cid, 22,"você recebeu "..ret.." Premium Points.")
		setPremiumPoints(cid, getPremiumPoints(cid)+ret)
		doRemoveItem(item.uid) 
	end
	return true
end

 

tag

 


<action itemid="7702" script="paper_points.lua"/>

 

 

USO E RECOMENDO, MUITO BOM

Scritp 100% do @Vodkart, só estou repassando

 

 

PAPEL.png

Legal cara , mais como eu faço para estipular a quantidade de points que o pergaminho vai conter ?

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

Legal cara , mais como eu faço para estipular a quantidade de points que o pergaminho vai conter ?

 

Exemplo, 

!sellpoints 10  

e o pergaminho ganhara 10 points.

!sellpoints 50

e o pergaminho ganhara 50 points.

 

Minimo de points que da pra vender é 5 e o maximo são 100, por pergaminho ;)

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites
5 minutos atrás, Zzyzx disse:

 

Exemplo, 

!sellpoints 10  

e o pergaminho ganhara 10 points.

!sellpoints 50

e o pergaminho ganhara 50 points.

 

Minimo de points que da pra vender é 5 e o maximo são 100, por pergaminho ;)

Ok vou testar , mais nao entendi como adcionar aquele script na lib , devo criar um arquivo lua ?

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

Ok vou testar , mais nao entendi como adcionar aquele script na lib , devo criar um arquivo lua ?

coloca dentro da 050-function

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites
5 horas atrás, Zzyzx disse:

 

na lib adc 

 


function getPremiumPoints(cid)
	local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid))
	return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points")
end
function setPremiumPoints(cid, amount)
	return db.executeQuery("UPDATE `accounts` SET `premium_points` = "..amount.." WHERE `id` = "..getPlayerAccountId(cid))
end

 

talk

 

 

sell_points.lua

 


function onSay(cid, words, param)
	local var,points = "[Sell Point System] Este documento vale %s points para você usar no site.",getPremiumPoints(cid)
	local min,max = 5, 100
	if param == "" or not tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, use somente numeros.") return true
	elseif tonumber(param) < min or tonumber(param) > max then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, Minimo "..min.." e Maximo "..max.." points.") return true
	elseif points < tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, mas você só possui "..points.." Premium Points.") return true
	end
	local item = doPlayerAddItem(cid, 7702,1) 
	doItemSetAttribute(item, "description", var:format(tonumber(param)))
	setPremiumPoints(cid, points-tonumber(param))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Sell Point System] Você recebeu um paper com "..param.." Premium Points.")
	return true
end

 

tag

 


<talkaction words="!sellpoints;/sellpoints" event="script" value="sell_points.lua"/>

 

actions

 

paper_points.lua

 


function onUse(cid, item, frompos, item2, topos)
	local var = getItemAttribute(item.uid, "description")
	if var == nil then return true end
	local x = var:match("%b[]")
	if x == "[Sell Point System]" then
		local ret = var:match("%d+")
		doPlayerSendTextMessage(cid, 22,"você recebeu "..ret.." Premium Points.")
		setPremiumPoints(cid, getPremiumPoints(cid)+ret)
		doRemoveItem(item.uid) 
	end
	return true
end

 

tag

 


<action itemid="7702" script="paper_points.lua"/>

 

 

USO E RECOMENDO, MUITO BOM

Scritp 100% do @Vodkart, só estou repassando

 

 

PAPEL.png

Em qual lugar eu tenho que adcionar o talk ?

@Zzyzx Qual o comando eu devo executar in-game para que consiga o pergaminho com a quantidade de pontos que desejo ?

Link para o post
Compartilhar em outros sites

NA PASTA TALKACTIONS

 

Voce cria um arquivo chamado "sell_points.lua"

 

e poem esse script dentro

 

function onSay(cid, words, param)
	local var,points = "[Sell Point System] Este documento vale %s points para você usar no site.",getPremiumPoints(cid)
	local min,max = 5, 100
	if param == "" or not tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, use somente numeros.") return true
	elseif tonumber(param) < min or tonumber(param) > max then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, Minimo "..min.." e Maximo "..max.." points.") return true
	elseif points < tonumber(param) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, mas você só possui "..points.." Premium Points.") return true
	end
	local item = doPlayerAddItem(cid, 7702,1) 
	doItemSetAttribute(item, "description", var:format(tonumber(param)))
	setPremiumPoints(cid, points-tonumber(param))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Sell Point System] Você recebeu um paper com "..param.." Premium Points.")
	return true
end

 

e o comando eu ja te falei qual é

 

Exemplo, 

!sellpoints 10  

e o pergaminho ganhara 10 points.

!sellpoints 50

e o pergaminho ganhara 50 points.

 

Minimo de points que da pra vender é 5 e o maximo são 100, por pergaminho 

Editado por Zzyzx
a resposta bugou e foi só metade (veja o histórico de edições)

       112674.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 LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo