Ir para conteúdo
Entre para seguir isso  
Baah

Premium ao alcançar level!

Recommended Posts

Baah    6
Baah
Nome: Premium ao alcançar level

Versão: 8.42

Tipo de script: creature event

Srevidor Testado: The Forgotten Server 0.3.4

Comentario: Quando o jogador chegar ao level X ele ganha Y dias de premium.

Autor: Baah

Este é um simples creature event, que ao relogar, SE o jogador for level 30, ou superior, ele ganhará 7 dias de premium, (configurável), se ele ainda não tiver ganho anteriormente.

 

Imagem:

premium.jpg

 

 

Script:

function onLogin(cid)


level = getPlayerLevel(cid)

   if getPlayerStorageValue(cid, 3000) == -1 and level > 30 then

doPlayerAddPremiumDays(cid, 7)
doPlayerSendTextMessage(cid,22,"Voce chegou ao level 30 e ganhou 7 dias de premium!")
setPlayerStorageValue(cid, 3000, 1)


   end
    return TRUE
end

Tag para o creatures.xml:

<event type="login" name="premium" script="level.lua"/>

Como eu mudo o level que o player receberá a premium ?

R: No script, em level > 30 , mude o valor 30 para o valor desejado.

 

Como eu mudo os dias que o player irá receber ?

R: No script, em doPlayerAddPremiumDays(cid, 7), altere o valor 7 para o quanto desejar.

 

 

Espero que gostem !

 

Edit

Script do Skyen Hasus com onAdvance:

local needLevel = 30
local addDays = 7

local message = "Voce chegou ao level 30 e ganhou 7 dias de premium!"
local type = MESSAGE_INFO_DESCR
local storage = 45678

function onAdvance(cid, skill, _, newLevel)
   if skill == 8 and newLevel >= needLevel and getPlayerStorageValue(cid, storage) ~= 1 then
     doPlayerAddPremiumDays(cid, addDays)
     doPlayerSendTextMessage(cid, type, message)
     doPlayerSetStorageValue(cid, storage, 1)
   end
 return TRUE
end 

Editado por Baah

Compartilhar este post


Link para o post
Gpwjhlkdcf    21
Gpwjhlkdcf

  • Aprovado e Movido para Download de Ações.

 

Observação: O script está legal e funcional, mas poderia ficar melhor se, ao invés de onLogin, você usasse o evento onAdvance. Quando o player upasse level (Teria que fazer um filtro), ganhasse o prêmio.

Compartilhar este post


Link para o post
Gorgulf    0
Gorgulf

nossa muito bom, funciona msm

Compartilhar este post


Link para o post
Nighandy    0
Nighandy

Interessante o script,vou até testar aqui.

Compartilhar este post


Link para o post
Baah    6
Baah

  • Aprovado e Movido para Download de Ações.

 

Observação: O script está legal e funcional, mas poderia ficar melhor se, ao invés de onLogin, você usasse o evento onAdvance. Quando o player upasse level (Teria que fazer um filtro), ganhasse o prêmio.

 

 

É mesmo, eu sabia que existia uma função tipo essa, mas não lembrava qual era. Existe algum tutorial ensinando usar o onAdvance aqui no forum ?

 

Vou dar uma procurada, valeu XD

Compartilhar este post


Link para o post
Lwkass    1
Lwkass

com o onAdvance ficaria assim o script:

 

function onAdvance(cid, newLevel)
 if newLevel == 30 then
  doPlayerAddPremiumDays(cid, 7)
  doPlayerSendTextMessage(cid,22,"Voce chegou ao level 30 e ganhou 7 dias de premium!")
 end
return TRUE
end   

Editado por Mickfern

Compartilhar este post


Link para o post
Dark Billie    0
Dark Billie

O script está legal, mas faça como o Lwkass falou...

 

E só porque lua é em inglês, não precisa deixar de usar acentos, português bom é sempre mais agradável i.i

Compartilhar este post


Link para o post
Baah    6
Baah
O script está legal, mas faça como o Lwkass falou...

 

E só porque lua é em inglês, não precisa deixar de usar acentos, português bom é sempre mais agradável i.i

 

Sim, eu geralmente não uso acentos nos scripts ._.

Compartilhar este post


Link para o post
Gpwjhlkdcf    21
Gpwjhlkdcf
Sim, eu geralmente não uso acentos nos scripts ._.

Eu não uso nem português nos meus scripts. Tibia é um jogo em inglês, misturar com português fica nojento.

 

E o onAdvance, o Lwkass fez errado. A sintaxe do onAdvance é:

onAdvance(Creature ID -> Number, Skill ID -> Number, Old Level -> Number, New Level -> Number)

 

Ou seja, qualquer skill upada ativará o onAdvance, então teria que fazer um filtro. Ficaria assim:

local needLevel = 30
local addDays = 7

local message = "Voce chegou ao level 30 e ganhou 7 dias de premium!"
local type = MESSAGE_INFO_DESCR

function onAdvance(cid, skill, _, newLevel)
   if skill == 8 and newLevel >= needLevel then
     doPlayerAddPremiumDays(cid, addDays)
     doPlayerSendTextMessage(cid, type, message)
   end
 return TRUE
end 

Editado por Mickfern

Compartilhar este post


Link para o post
Dark Billie    0
Dark Billie

Skyen, no meu post no tópico de dúvidas, o Magus disse que variáveis definidas como locais, devem estar dentro da function do script, ou senão, deixá-las globais...

 

Então por acaso o script não tá errado? ;P

 

Edit:

Porque que você meteu um _ no meio dos parâmetros da function? Oo

Compartilhar este post


Link para o post
Baah    6
Baah
Eu não uso nem português nos meus scripts. Tibia é um jogo em inglês, misturar com português fica nojento.

 

E o onAdvance, o Lwkass fez errado. A sintaxe do onAdvance é:

 

 

Ou seja, qualquer skill upada ativará o onAdvance, então teria que fazer um filtro. Ficaria assim:

local needLevel = 30
local addDays = 7

local message = "Voce chegou ao level 30 e ganhou 7 dias de premium!"
local type = MESSAGE_INFO_DESCR

function onAdvance(cid, skill, _, newLevel)
   if skill == 8 and newLevel >= needLevel then
     doPlayerAddPremiumDays(cid, addDays)
     doPlayerSendTextMessage(cid, type, message)
   end
 return TRUE
end 

 

Sim, eu notei que faltava alguma coisa no script, mas como eu nunca usei onAdvance eu não sabia o que.

 

Edit:

Não é preciso uma storage para que o player não fique se matando e upando para ganhar premium ?

Editado por Mickfern

Compartilhar este post


Link para o post
Dark Billie    0
Dark Billie

local needLevel = 30
local addDays = 7

local message = "Voce chegou ao level 30 e ganhou 7 dias de premium!"
local type = MESSAGE_INFO_DESCR
local storage = 45678

function onAdvance(cid, skill, _, newLevel)
   if skill == 8 and newLevel >= needLevel and getPlayerStorageValue(cid, storage) ~= 1 then
     doPlayerAddPremiumDays(cid, addDays)
     doPlayerSendTextMessage(cid, type, message)
     doPlayerSetStorageValue(cid, storage, 1)
   end
 return TRUE
end

 

Tá aí se quiser colocar com o storage...

 

E esse newLevel não deveria ser somente minúsculo? Que eu me lembre era i.i

Editado por Mickfern

Compartilhar este post


Link para o post
Tozim    0
Tozim

bem legal,

isso é bom para colocar uma promoção ao lançar um ot.

Compartilhar este post


Link para o post
Raydrickk    0
Raydrickk

qual seria a tag para o creatures.xml para usar o onAdvance?

Compartilhar este post


Link para o post
UrsO    0
UrsO

Baah guri, bom mesmo em.

Tri legal.

Compartilhar este post


Link para o post
Dark Maker    0
Dark Maker

Interresante, vou testálo aqui

Compartilhar este post


Link para o post
Ribas1574    1
Ribas1574

Eu tava lendo os posts e vou resumir o que todos querem dizer.

' Alguém pode colocar o script pronto para que, level 30 ganhe X de premmium, com uma storage para que o player não possa ficar se matando para pegar dias de premium. '

Assim como eu fiquei confuso, muitos devem estar... Se não estiverem, azar rs.

Compartilhar este post


Link para o post
hicke98    0
hicke98

UHUU isso vai pro meu ot pros cara competir mais no rank, vo por pra lvl 1500 ganha p.a pq no meu ot vo vende prem no site por money msm!

Compartilhar este post


Link para o post
ADM MaX DE    0
ADM MaX DE
qual seria a tag para o creatures.xml para usar o onAdvance?

 

<event type="advance" name="PALevel" event="script" value="Nomedoscript.lua"/>

 

Edite os nomes onde está em negrito, abraços.

Compartilhar este post


Link para o post
xscas    0
xscas

Queria que ao invés de ganhar 7 dias de premium, ganhasse 20k, alguem pode me ajudar? '-'

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×