BL
pedido

Sistema Pontos Por Tempo Online

Por blumaster, 10 de ago. de 2012 em Scripts

18
4.6k
blumasterB
10 de agosto de 2012 às 16:56

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 Agosto 10 por blumaster

NewtonnotwenN
10 de agosto de 2012 às 17:02

Script muito difícil esse.

 

Porque não faz um item que ganha na loteria a cada 30min?

AkzsA
10 de agosto de 2012 às 17:20

Ultiliza Este Aqui.

 

 

Ultiliza esse sistema ai nele tem o script de Points por tempo Online

 

 

 

Ajudei Rep+

blumasterB
10 de agosto de 2012 às 17:45

@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.

NewtonnotwenN
10 de agosto de 2012 às 17:54

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 Agosto 10 por Newtonnotwen

blumasterB
10 de agosto de 2012 às 18:20

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 Agosto 10 por blumaster

NewtonnotwenN
10 de agosto de 2012 às 18:24

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?

blumasterB
10 de agosto de 2012 às 18:43

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 Agosto 10 por blumaster

NewtonnotwenN
10 de agosto de 2012 às 18:48

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 Agosto 10 por Newtonnotwen

blumasterB
10 de agosto de 2012 às 18:50

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?

NewtonnotwenN
10 de agosto de 2012 às 19:00

Sim, vou fazer o da moeda.

 

Sobre o script, da debug porque o local se chama p_points, só que não sei qual o local, ao meu ver um script totalmente confuso.

 

Por isso não consegui editar.

blumasterB
10 de agosto de 2012 às 19:05

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

 

?

NewtonnotwenN
10 de agosto de 2012 às 19:36

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 Agosto 10 por Newtonnotwen

blumasterB
10 de agosto de 2012 às 20:01

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 Agosto 10 por blumaster

NewtonnotwenN
10 de agosto de 2012 às 20:06

Sim, ali você põe o id do item que será pago ao npc.

 

Se tu quiser que todo mundo ganhe o item por certo tempo online, é só fazer tipo o script da loteria.