Ir para conteúdo

Pergunta

Iae pessoal do Xtibia.

Queria saber como fazer um sistema de points, que o player quando compra points ele pode ir até um chest que tem o item "x" e compra o item. Ex.: O player "Manolo" foi até o sala de itens, e quis comprar o item "Wand Vip" a wand custa 30 points, e o player "Manolo" tem 40, ai ele abria o chest, ganhava o item. Depois que ele comprasse o item os points fossem para 10.

Se ele não tiver points necessário apararece-se assim " Voce nao tem itens suficientes".

E quando ele falasse, !points. Aparece o tanto de points que ele tem.

Valew

Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/
Compartilhar em outros sites

Posts Recomendados

  • 0

blz,fiz uma aqui rapidinha...

 

em lib/functions vc adiciona:

 

function getPoints(cid)
local check = db.getResult("SELECT `points` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
return check:getDataInt("points") <= 0 and 0 or check:getDataInt("points") end
function addPoints(cid,amount)
db.executeQuery("UPDATE `players` SET `points` = "..getPoints(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end
function removePoints(cid,amount)
db.executeQuery("UPDATE `players` SET `points` = "..getPoints(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end
function setPoints(cid,value)
db.executeQuery("UPDATE `players` SET `points` = "..value.." WHERE `id` = "..getPlayerGUID(cid)) end

 

e na sua database vc executa:

 

ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'

 

Caso não saiba executar você me fala que eu te ensino como.

 

 

getPoints(cid) -- checa qnto tem de pontos

addPoints(cid,amount) -- adc pontos ao jogador,por exemplo Vodkart tem 10 pontos e eu adiciono 30 vai ficar 40

removePoints(cid,amount) -- remove os pontos do jogador,minimo é 0

setPoints(cid,value) -- altera os pontos do jogador pra qual valor vc quiser

 

 

 

talk

 

  Mostrar conteúdo oculto

 

 

baú de exemplo:

 

  Mostrar conteúdo oculto

 

 

Npc que vende itens por Points

 

  Mostrar conteúdo oculto

 

---------------------------------------------------

 

Adicionado comando !rankpoints ali na talkactions

 

e se você quiser adicionar points para todos os player do ot que estejam online/offline você usa:

 

local count = 5
db.executeQuery("UPDATE players SET points = "..getPoints(cid).."+"..count)

nesse caso vai adicionar 5 points para todos os jogadores do server.

Editado por Vodkart
Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1208246
Compartilhar em outros sites

  • 0
  Em 07/03/2012 em 01:05, LuisSergio disse:

explica o script um poquim .-. ..

se puder explica como executa e tals =D

parabéns pelo script vai ajudar muita gente!

REP+

 

1° Abra o programa Sqlite

2° na parte superior do programa tem a aba "Tools",clica nela e seleciona "Open SQL query editor" ou (ALT + E) se preferir

3° Vai abrir uma janela branca,nela você coloca isso:

ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'

4° Depois clica no ícone do raio ali na parte de cima ou aperta o botão F9 que vai fazer com que a query seja executada.

Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1212336
Compartilhar em outros sites

  • 0

@Vodkart

Tipo, desculpe a ignorancia, mas nesta área eu nunca mexi...

 

Abro o SQL Studio, carrego arquivo de players do server e faço o passo acima?

  Citar

1° Abra o programa Sqlite

2° na parte superior do programa tem a aba "Tools",clica nela e seleciona "Open SQL query editor" ou (ALT + E) se preferir

3° Vai abrir uma janela branca,nela você coloca isso:

ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'

4° Depois clica no ícone do raio ali na parte de cima ou aperta o botão F9 que vai fazer com que a query seja executada.

 

Só isso? e depois é só criar o resto do script como resposta ao tópico lá em cima?

 

Gostei pakas do Script, muito bom mesmo (falta testar aqui), no entanto, se possível, teria como criar um NPC e/ou uma Action que desse esses pontos?

 

Ex: O NPC da esses pontos como recompensa de alguma missão concluída pelo player' (storage)

Ex²: O player conclui uma quest e pega um item que ao clicar, sumirá e valerá, por exemplo, 10 pontos.

 

 

Abraços, muito obrigado desde já'

Editado por Gonorreia
Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1212519
Compartilhar em outros sites

  • 0
  Em 07/03/2012 em 11:49, Gonorreia disse:

@Vodkart

Tipo, desculpe a ignorancia, mas nesta área eu nunca mexi...

 

Abro o SQL Studio, carrego arquivo de players do server e faço o passo acima?

  Citar

1° Abra o programa Sqlite

2° na parte superior do programa tem a aba "Tools",clica nela e seleciona "Open SQL query editor" ou (ALT + E) se preferir

3° Vai abrir uma janela branca,nela você coloca isso:

ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'

4° Depois clica no ícone do raio ali na parte de cima ou aperta o botão F9 que vai fazer com que a query seja executada.

 

Só isso? e depois é só criar o resto do script como resposta ao tópico lá em cima?

 

Gostei pakas do Script, muito bom mesmo (falta testar aqui), no entanto, se possível, teria como criar um NPC e/ou uma Action que desse esses pontos?

 

Ex: O NPC da esses pontos como recompensa de alguma missão concluída pelo player' (storage)

Ex²: O player conclui uma quest e pega um item que ao clicar, sumirá e valerá, por exemplo, 10 pontos.

 

 

Abraços, muito obrigado desde já'

 

Abre o Sqlite > Databases> Add database

 

Eu tenho o servidor baiak aqui e eu vou abrir o arquivo forgottenserver.s3db,pode ser outro nome,mas o arquivo é esse ".s3db"

 

Depois que abrir a sua database você já pode executar a query,não precisa selecionar nenhum index ou table(como players),só faz o procedimento ali em cima.

 

Sobre o npc e item que dá esses points,mais tarde eu faço

 

 

---EDITED

 

item

function onUse(cid, item, fromPosition, itemEx, toPosition)
local points = 10
addPoints(cid,points)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu  ".. points .." points,agora você tem um total de "..getPoints(cid).." points.")
doRemoveItem(item.uid, 1)
return TRUE
end

 

e no npc é só você adicionar a variável na hora que for ganhar a recompensa:

 

addPoints(cid,amount)

Editado por Vodkart
Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1212541
Compartilhar em outros sites

  • 0
  Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)

local points,item = 30,2494

if getPoints(cid) < points then

return doPlayerSendTextMessage(cid, 20, "você precisa de "..points.." para comprar o item " .. getItemNameById(item)) end

doPlayerAddItem(cid,item)

removePoints(cid,points)

doPlayerSendTextMessage(cid, 20, "você comprou o item " .. getItemNameById(item))

return true

end

To com uma dúvida aqui seria a quatidade de points e id do item,"local points,item = 30,2494", mas aonde aparece o id do item que é o points?

Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1253151
Compartilhar em outros sites

  • 0

Simples, olhe a posição que eles tomam

 

local points,item = 30,2494

 

2 variavéis antes do "=" e 2 complemento depois

 

seria o mesmo que

 

local points = 30

local item = 2494

Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1253156
Compartilhar em outros sites

  • 0
  Em 03/05/2012 em 02:16, Vodkart disse:

Simples, olhe a posição que eles tomam

 

local points,item = 30,2494

 

2 variavéis antes do "=" e 2 complemento depois

 

seria o mesmo que

 

local points = 30

local item = 2494

 

acho que você não entendeu minha pergunta, eu sei que os dois a frente são respectivamente 30(quantidade de points necessario) e 2494(id do item), mas eu falo tipo assim quando eu clicar no bau certo, tera que chegar o points , mas aonde aparece qual item ta sendo usando como points? pro bau remover tendeu?

exemplo: faz de conta que ao clicar no bau eu teria que ter 30 crystal coins, entao quando eu cliquei ele confere se tenho os 30 crystal coins e me da o item do id 2494, mas aonde informa o id do crystal coin 2160 usado no exemplo.

Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1253161
Compartilhar em outros sites

  • 0
  Em 03/05/2012 em 02:27, Vodkart disse:

Ah entendi, mas nesse caso o baú é para vender item por points, o que você quer é que ele compre points por crystal coin não é isso?

 

comprar por points mesmo crystal coin foi uma freferência, mas qual item ta sendo usado como POINTS tendeu? qual ID ta sendo o POINTS?

Link para o comentário
https://xtibia.com/forum/topic/181510-system-points/#findComment-1253164
Compartilhar em outros sites

×
×
  • Criar Novo...