Ir para conteúdo
  • 0

Sistema Pontos Por Tempo Online


blumaster

Pergunta

Alguem poderia criar um sistema que a cada 30 minutos online os players ganhe 5 premium points?

 

estes pontos devem ser adicionado na tabela premium_points no mysql.

 

Meu Servidor o TFS 0.36

 

Se alguem poder ajudar ficaria muito grato rep+ garantido =P.

Editado por blumaster
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

@Newto

 

Ja tenho este sistema de ganhar item por tempo online que voce crio pra mi.

 

@akzs

 

eu tentei usar este sistema porem nao conseguir usar no site.

 

eu queria usar no meu site um sistema estilo shop freee.

 

que o player ganha os pontos por ficar online e pode gastar no site free

 

estilo muonline que voce os pontos por ficar online e por dar restet e master reset.

 

so que no meu caso seria por ficar online.

 

@ newton

 

voce disse ser muito dificiu este sistema que o akzs

 

postou nao pode ser editado para dar premium_points?

ao inves de p_points?

 

eu tentei editar ele so que bugo o server nao passa da lista de char dava connect refuse.

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar.

 

--------------Editado

 

Não achei o item (p_points) que adiciona.

 

Utiliza o script normal e me fala oque você ganha e como ganha, pra eu ver se assim consigo.

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

Fica em functions:

 

nesta area:

 

function getPoints(cid)

local res = db.getResult('select `p_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')

if(res:getID() == -1) then

return false

end

local ret = res:getDataInt("p_points")

res:free()

return tonumber(ret)

end

 

function doPlayerAddPoints(cid, quant)

return db.executeQuery("UPDATE `accounts` SET `p_points` = '".. getPoints(cid) + quant .."' WHERE `name` ='"..getPlayerAccount(cid).."'")

end

 

function doPlayerRemovePoints(cid, quant)

return db.executeQuery("UPDATE `accounts` SET `p_points` = '".. getPoints(cid) - quant .."' WHERE `name` ='"..getPlayerAccount(cid).."'")

end

 

No caso de eu usar em npc deveria usar estas funcoes:

 

getPoints(cid) A função retorna a quantidade de pontos do player.

 

doPlayerAddPoints(cid, quant) A função adiciona a quantidade(quant) de pontos ao player.

 

 

doPlayerRemovePoints(cid, quant) A função remove a quantidade(quant) de pontos do player.

 

o Script completo esta neste turorial aqui:

 

http://www.xtibia.com/forum/topic/167446-p-points-system-v10/

Editado por blumaster
Link para o comentário
Compartilhar em outros sites

  • 0

Isso eu vi, mas você quer trocar a coisa que adiciona.

 

Eu não achei o local do p_points ai o seguinte:

 

Usa o script do cara, que nem ta ae e me fala oque você ganhou e como ganhou pra mim editar, entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

Entao eu fico online 30 minutos e aparece uma mensagem voce ganhou 5 points.

 

e estes pontos ficam armazenados na minha database na tabela p_points.

 

nao tem segredo nesta parte o script funciona normalmente como dis no topico.

 

so que nao peguei o turorial daqui peguei o original do LSM mesmo.

 

e estilo a loteria voce ganha a cada meia hora 5 pontos.

so que nao e random

e para todos online.

 

So que como vou usar estes pontos?

 

este e meu problema queria poder usar eles no site como o site recebe em premium points queria usar no lugar de ganhar points ganahr premium points.

 

voce disse que nao achou o local do p_points.

 

acho que e nesta area:

 

return db.executeQuery("UPDATE `accounts` SET `p_points` = '".. getPoints(cid) + quant .."' WHERE `name` ='"..getPlayerAccount(cid).."'")

end

 

porem eu editei e deu debug no server

Editado por blumaster
Link para o comentário
Compartilhar em outros sites

  • 0

Ai complica pra mim.

 

Tenta na areá de website.

 

Não entendo de website, malz.

 

Dica: Porque não põe pra ganhar um "GP" especial, que pode comprar em um "npc vip" os itens que quer vender no site?

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

Entao nao consegui criar este sistema pode me ajudar?

 

eu neste topico queria mais mudar esta funcao:

 

 

function doPlayerAddPoints(cid, quant)

return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getPoints(cid) + quant .."' WHERE `name` ='"..getPlayerAccount(cid).."'")

end

 

so que eu edito e da debug nao sei o que tem nesta funçao.

 

Se fosse o caso de criar uma moeda nova que ganha a cada 30 minutos e pode ser usada em npc voce poderia ajudar?

Link para o comentário
Compartilhar em outros sites

  • 0

Newton

 

Estava olhando as functions do servidor e encontrei isso:

 

 

function doPlayerRemovePremiumDays(cid, days)

return doPlayerAddPremiumDays(cid, -days)

end

 

nao da para modificar premiumday para premiumpoints?

 

igual os p_points

 

?

Link para o comentário
Compartilhar em outros sites

  • 0

Primeiramente o npc:

 

Em data/npc/scripts crie um arquivo.lua nomeie para npcvip e adicione:

local focus = 0

local talk_start = 0

local target = 0

local days = 0

 

function onThingMove(creature, thing, oldpos, oldstackpos)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end

 

 

function onCreatureTurn(creature)

 

end

 

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

 

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Ola ' .. creatureGetName(cid) .. '! Eu vendo VIP e itens VIP.')

focus = cid

talk_start = os.clock()

 

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Falarei com voce em alguns instantes.')

 

elseif focus == cid then

talk_start = os.clock()

 

if msgcontains(msg, 'promoted') or msgcontains(msg, 'promotion') then

if getPlayerVocation(cid) > 4 then

selfSay('Desculpe, voce ja esta promovido.')

talk_state = 0

elseif getPlayerLevel(cid) < 20 then

selfSay('Voce precisa ter no minimo level 20...')

talk_state = 0

elseif not getPlayerPremium(cid) then

selfSay('Compre vip antes, depois eu lhe promoverei.')

talk_state = 0

else

selfSay('Voce quer ser promovido por 20k?')

talk_state = 1

end

 

elseif msgcontains(msg, 'premium') or msgcontains(msg, 'vip') then

selfSay('Você quer comprar Premium?')

talk_state = 2

 

elseif talk_state == 1 then

if msgcontains(msg, 'yes') then

if pay(cid,20000) then

doPlayerSetVocation(cid, getPlayerVocation(cid)+4)

selfSay('Voce foi promovido!')

else

selfSay('Voce nao tem dinheiro suficiente.')

end

end

talk_state = 0

 

elseif talk_state == 2 then

if msgcontains(msg, 'yes') then

if doPlayerRemoveItem(cid,2159,50) == TRUE then

addPremium(cid, 30)

selfSay('Voce recebeu 30 dias de premium!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

elseif focus == cid then

talk_start = os.clock()

 

if msgcontains(msg, 'shield of honor') then

if doPlayerRemoveItem(cid,2159,200) == TRUE then

doPlayerAddItem(cid,2535,1)

selfSay('Voce recebeu Shield of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'helmet of honor') then

if doPlayerRemoveItem(cid,2159,50) == TRUE then

doPlayerAddItem(cid,2506,1)

selfSay('Voce recebeu Helmet of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'armor of honor') then

if doPlayerRemoveItem(cid,2159,50) == TRUE then

doPlayerAddItem(cid,2505,1)

selfSay('Voce recebeu Armor of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'legs of honor') then

if doPlayerRemoveItem(cid,2159,50) == TRUE then

doPlayerAddItem(cid,2507,1)

selfSay('Voce recebeu Legs of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'sword of honor') then

if doPlayerRemoveItem(cid,2159,200) == TRUE then

doPlayerAddItem(cid,7382,1)

selfSay('Voce recebeu Sword of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'axe of honor') then

if doPlayerRemoveItem(cid,2159,200) == TRUE then

doPlayerAddItem(cid,7388,1)

selfSay('Voce recebeu Axe of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'club of honor') then

if doPlayerRemoveItem(cid,2159,200) == TRUE then

doPlayerAddItem(cid,7392,1)

selfSay('Voce recebeu Club of Honor!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'damage ring') then

if doPlayerRemoveItem(cid,2159,150) == TRUE then

doPlayerAddItem(cid,2210,1)

selfSay('Voce recebeu Damage Ring!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'warrior ring') then

if doPlayerRemoveItem(cid,2159,150) == TRUE then

doPlayerAddItem(cid,2211,1)

selfSay('Voce recebeu Warrior Ring!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'magician ring') then

if doPlayerRemoveItem(cid,2159,150) == TRUE then

doPlayerAddItem(cid,2212,1)

selfSay('Voce recebeu Magician Ring!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'flames sword') then

if doPlayerRemoveItem(cid,2159,250) == TRUE then

doPlayerAddItem(cid,7748,1)

selfSay('Voce recebeu Flames Sword!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'united axe') then

if doPlayerRemoveItem(cid,2159,250) == TRUE then

doPlayerAddItem(cid,7751,1)

selfSay('Voce recebeu United Axe!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

if msgcontains(msg, 'quero tal item') then

if doPlayerRemoveItem(cid,id,quantidade) == TRUE then

doPlayerAddItem(cid,7756,1)

selfSay('Voce recebeu seu item!')

else

selfSay('Voce nao tem dinheiro!')

end

end

if msgcontains(msg, 'onyx arrow') then

if doPlayerRemoveItem(cid,2159,200) == TRUE then

doPlayerAddItem(cid,7365,1)

selfSay('Voce recebeu Onix Arrow!')

else

selfSay('Sorry, you do not have scarab Coins.')

end

end

 

talk_state = 0

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Good bye, ' .. creatureGetName(cid) .. '!')

focus = 0

talk_start = 0

end

end

end

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next Please...')

end

focus = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 4 then

selfSay('Good bye then.')

focus = 0

end

end

end

Editando:

 

-Vermelho: Mensagem que o player irá falar.

-Verde Escuro: Mensagem que o npc ira responder.

-Marrom: Função para falar o nome do player.

-Laranja: Mensagem do player para comprar vip.

-Roxo: Mensagem que o npc ira responder.

-Verde claro: Id do item (que ira custar o premium)

-Rosa: Quantidade do item id.

-Azul escuro: Quantidade de dias premium.

-Azul claro: Fala do npc ao comprar premium.

-Cinza: Fala do npc ao cancelar (quando player não tem o dinheiro suficiente).

-Salmão: Mensagem para comprar item.

-Teal: Id do item / Quantidade (preço).

-Dourado: Item que irá receber e quantidade.

-Pale turques: Mensagem de confirmação (quando tem dinheiro)

-Light Blue: Mensagem de negação (quando não tem dinheiro)

 

Obs: Vários items estão no tutorial bastando apenas edita-los, também possui função de promotion.

 

Itens por: Medicalghosr

 

Creditos:

 

Funções by: MUTAN0

Script e tutorial by: Newtonnotwen

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

So uma duvida no caso de eu usar este npc eu teria de cria um item que seria removido?

 

if doPlayerRemoveItem(cid,2159,200) == TRUE then

no caso onde esta destacado em vermelho?

 

ou seja teria de criar uma moedar?

 

certo?

se for isso tem como eu por eu criar um sistema

para ganhar a moeda por tempo online?

 

tipo a loteria porem todos ganhar?

Editado por blumaster
Link para o comentário
Compartilhar em outros sites

  • 0

Ta certo o npc eu consegui configurar.

 

Criei uma nova moeda que so se ganha ficando online fis uma loteria paralela a que eu ja tinha =P.

 

Obrigado amigo dinovo =P.

Editado por blumaster
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...