function onAdvance(cid) local days = 5 if getPlayerStorageValue(cid, 30004) == -1 and getPlayerLevel(cid) == 1 and getGlobalStorageValue(getPlayerAccountId(cid)+450) - os.time() <= 0 then doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have received "..days.." days of trial premium account, enjoy it!") setPlayerStorageValue(cid, 30004, 1) setGlobalStorageValue(getPlayerAccountId(cid)+450, (os.time()+days*86400)) end return true end
[Ajuda] Problema Com P.a Trial, É Possivel Acumular
Por randal923, 28 de ago. de 2012 em Scripts
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Editado Agosto 28 por Vodkart
Opa vlwww cara!
Vou testar aqui, só to pensando como testar sem ter que esperar 1 dia todo hehe.
Desse jeito que você fez o cara pode acabar a p.a e criar outro char na mesma conta e ele não ganha certo? O que você fez ai exatamente? To aprendendo agora essas coisas, queria entender =)
Novamente, muito obrigado.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Opa vlwww cara!
Vou testar aqui, só to pensando como testar sem ter que esperar 1 dia todo hehe.
Desse jeito que você fez o cara pode acabar a p.a e criar outro char na mesma conta e ele não ganha certo? O que você fez ai exatamente? To aprendendo agora essas coisas, queria entender =)
Novamente, muito obrigado.
Fiz do jeito que você disse...
Só usei os.time() junto com globalstorage para checar se o jogador pode ou não ganhar a P.A
Opa, então... Não rolou =/
Tipo, se um cara cria uma acc, o primeiro monstro que ele matar, ganha 30 dias de trial. Mas quando acabar esses 30 dias, ele pode criar outro char na mesma conta e matar outro bixo, e ganhar mais 30 dias. O ideal era conseguir fazer que se já houver 1 char criado na conta, não fosse possivel ganhar mais p.a. Mas nao estou conseguindo =/.
function onAdvance(cid)
-- Trial Premium
if getPlayerStorageValue(cid, 30004) == -1 and getPlayerLevel(cid) == 1 and getPlayerPremiumDays(cid) == 0 then
doPlayerAddPremiumDays(cid, 5)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have received 5 days of trial premium account, enjoy it!")
setPlayerStorageValue(cid, 30004, 1)
end
return TRUE
end
Ta assim aqui. Tipo, ele mata o primeiro bixo, e se criar outra acc antes de acabar a trial ele nao consegue pegar, isso eu consegui fazer, mas depois da esse pal ai que nao sei como arrumar xD
Help!! xD
Abraços
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Seguinte, meu ot da uma P.A Trial para o player quando ele ataca o seu primeiro bixo em rookguard, esta p.a é de 5 dias. Se ele criar na mesma conta outro char, e tentar acumular mais 5 dias, vai aparecer uma msg dizendo que não é possível porque a conta já é p.a. MAS se ele esperar passar os 5 dias de p.a, e criar outro char e atacar algum bixo, ele vai ganhar novamente mais 5 dias.
Tipo, se um cara cria uma acc, o primeiro monstro que ele matar, ganha 30 dias de trial. Mas quando acabar esses 30 dias, ele pode criar outro char na mesma conta e matar outro bixo, e ganhar mais 30 dias. O ideal era conseguir fazer que se já houver 1 char criado na conta, não fosse possivel ganhar mais p.a. Mas nao estou conseguindo =/.
LOL? Não era esse o pedido?
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

"...dizendo que não é possível porque a conta já é p.a. MAS se ele esperar passar os 5 dias de p.a, e criar outro char e atacar algum bixo, ele vai ganhar novamente mais 5 dias.
Alguém ai tem alguma ideia de como posso resolver isso?..."
Acho que ele quis dizer que a frase em vermelho é o problema, só que ele se expressou mal.
Então você entendeu que ele queria isso (em vermelho), mas esse é o "problema" que ele quer resolver.
Ele demonstrou uma ambiguidade citando a frase em laranja assim podendo ter 2 interpretações.
Entendeu Vodkart?
(...) atacar algum bixo, ele vai ganhar novamente mais 5 dias (...) = Problema (ele quis dizer).
(...) atacar algum bixo, ele vai ganhar novamente mais 5 dias (...) = Oque ele quer (Você pensou).
Amigo se expresse melhor de outras vezes, se não você pode citar uma ideia com varias opções assim confundindo e demorando para a resolução de seu problema.
Editado Setembro 5 por Newtonnotwen
Opa, malz ai, nem eu entendi muito bem o que eu quis dizer. Vou explicar como funciona o sistema que eu quero criar, e em que parte não estou tendo sucesso ok?
Todo novo player ao entrar no server, ganha uma P.A de 30 dias, para ativar esta p.a, ele ataca algum bixo. <<< Este é o meu plano e funciona.
Todo player que criar outro char na mesma conta, e atacar algum bixo, ganha mais 30 dias de P.A. <<< Este é um problema que já foi resolvido. (quem ja for p.a n pode pegar mais)
Agora se um player esperar os 30 dias acabarem, e criar outro char na mesma conta e atacar algum bixo, ele ganha novamente os 30 dias. <<< Este problema que nao sei resolver.
Preciso de algum modo, que reconheça que já tem um char criado na conta, e que não deixe a P.A ativar, igual fiz quando já se é P.a.
PS: Eram 5 dias, mais mudei pra 30 hehe...
Achoooo que consegui explicar agora hehe...
Abraços!!! vlw pela atenção toda ae
Editado Setembro 6 por randal923
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

function onAdvance(cid) local days = 30 if getGlobalStorageValue(getPlayerAccountId(cid)+450) <= 0 then doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have received "..days.." days of trial premium account, enjoy it!") setGlobalStorageValue(getPlayerAccountId(cid)+450, 1) end return true end
Vlw cara! Funcionou aqui!!!
Posso aproveitar e tirar outro dúvida relacionada a isso?
Bom, funcionou, mas somente para novos players. Players antigo eu teria que add este código 450 manualmente, tem alguma ideia de onde arruma isso? Uso sistema nicaw
Vlw abraços!
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

bom dai teria que fazer um código para checar o ID da account do jogador + 450 na coluna e globalstorage ._.
Vish, ai f****, não tem onde fazer manualmente?
MEU DEUS!
TOdos players que passam skill estao ganhando mais 30 dias!!! Ferro bunito agora, me ferrei lindo
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Vish, ai f****, não tem onde fazer manualmente?
MEU DEUS!
TOdos players que passam skill estao ganhando mais 30 dias!!! Ferro bunito agora, me ferrei lindo
function onAdvance(cid, skill, oldLevel, newLevel) local days = 30 if skill == 8 and newLevel == 1 and getGlobalStorageValue(getPlayerAccountId(cid)+450) <= 0 then doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have received "..days.." days of trial premium account, enjoy it!") setGlobalStorageValue(getPlayerAccountId(cid)+450, 1) end return true end
desse jeito quem upar pro lvl 1 vai ganha p.a
o resto que ja eh lvl alto n
todos os que não tinham ganhado né?
faz para remover 30 dias então ._.
Editado Setembro 10 por Vodkart



info
Grupo: Campones
Registrado: 02/01/07
Posts: 10
Reputação: 0
Bom, é minha primeira vez postando aqui, espero esta no lugar correto e etc. Hehe
Seguinte, meu ot da uma P.A Trial para o player quando ele ataca o seu primeiro bixo em rookguard, esta p.a é de 5 dias. Se ele criar na mesma conta outro char, e tentar acumular mais 5 dias, vai aparecer uma msg dizendo que não é possível porque a conta já é p.a. MAS se ele esperar passar os 5 dias de p.a, e criar outro char e atacar algum bixo, ele vai ganhar novamente mais 5 dias.
Alguém ai tem alguma ideia de como posso resolver isso? Esta desse jeito aqui:
function onAdvance(cid)
-- Trial Premium
if getPlayerStorageValue(cid, 30004) == -1 and getPlayerLevel(cid) == 1 and getPlayerPremiumDays(cid) == 0 then
doPlayerAddPremiumDays(cid, 5)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have received 5 days of trial premium account, enjoy it!")
setPlayerStorageValue(cid, 30004, 1)
end
return TRUE
end
Obrigado!
Versão 7.72