Script muito difícil esse.
Porque não faz um item que ganha na loteria a cada 30min?
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Script muito difícil esse.
Porque não faz um item que ganha na loteria a cada 30min?
Ultiliza esse sistema ai nele tem o script de Points por tempo Online
Ajudei Rep+
@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.
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

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
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
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

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?
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
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

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
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?
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

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.
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
?
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

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
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
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

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.
info
Grupo: Artesão
Registrado: 09/06/12
Posts: 104
Reputação: +6
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