kevin 14 Postado 23 de Janeiro Compartilhar Postado 23 de Janeiro Olá hoje trago a voces um sistema de login diario feito diretamete em login.lua...vamos la. em login.lua antes de onLogin(cid) coloque: local STORAGE_LOGIN_DAYS = 50012 -- Armazena o número de dias de login do jogador local STORAGE_LAST_LOGIN = 50013 -- Armazena a data do último login do jogador -- Número máximo de dias para o prêmio de login antes de resetar local MAX_LOGIN_DAYS = 30 -- Tabela de prêmios diários. Cada entrada representa um dia com um item e uma quantidade local dailyRewards = { {itemId = 2148, count = 100}, -- Exemplo: 100 gold coins no Dia 1 {itemId = 2152, count = 10}, -- Exemplo: 10 platinum coins no Dia 2 {itemId = 2160, count = 1}, -- Exemplo: 1 crystal coin no Dia 3 {itemId = 7632, count = 5}, -- Exemplo: 5 health potions no Dia 4 {itemId = 7620, count = 3}, -- Exemplo: 3 mana potions no Dia 5 -- Adicione mais dias e prêmios aqui até o dia 30 } -- Função para dar o prêmio do dia específico ao jogador local function giveDailyReward(cid, day) local reward = dailyRewards[day] if reward then local itemName = getItemNameById(reward.itemId) -- Obtém o nome do item doPlayerAddItem(cid, reward.itemId, reward.count) -- Exibe uma mensagem animada de recompensa de login local playerPosition = getCreaturePosition(cid) doSendAnimatedText(playerPosition, "Login Reward!", TEXTCOLOR_GREEN) doSendMagicEffect(playerPosition, CONST_ME_GIFT_WRAPS) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu um prêmio de login: " .. reward.count .. " unidades de " .. itemName .. "!") else print("Erro: prêmio para o dia " .. day .. " não encontrado.") end end Antes do return true do arquivo coloque: local lastLoginDate = getPlayerStorageValue(cid, STORAGE_LAST_LOGIN) local currentDate = os.time() if lastLoginDate <= 0 or os.difftime(currentDate, lastLoginDate) >= 86400 then local loginDays = getPlayerStorageValue(cid, STORAGE_LOGIN_DAYS) if loginDays < 0 then loginDays = 0 end if lastLoginDate > 0 and os.difftime(currentDate, lastLoginDate) > 86400 then loginDays = 0 doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você perdeu a sequência de login diária. A sequência foi reiniciada.") end loginDays = loginDays + 1 if loginDays > MAX_LOGIN_DAYS then loginDays = 1 doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você completou 30 dias de login! A sequência foi reiniciada.") end setPlayerStorageValue(cid, STORAGE_LOGIN_DAYS, loginDays) setPlayerStorageValue(cid, STORAGE_LAST_LOGIN, currentDate) giveDailyReward(cid, loginDays) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bem-vindo de volta! Você já recebeu o prêmio de login nas últimas 24 horas.") end VAMOS AS EXPLICAÇÕES: ESSE SITEMA VAI ARMAZENANDO OS DIAS QUE VOCÊ ENTRA NO GAME, CASO NÃO ENTRE UM DIA ELE RESETA OS DIAS VOLTANDO DO 1º DIA. 4 3 Link para o comentário https://tibiadevs.com/forums/topic/841-login-di%C3%A1rio/ Compartilhar em outros sites Mais opções de compartilhamento...
Administrador The Baker 3.428 Postado 23 de Janeiro Administrador Compartilhar Postado 23 de Janeiro Tópico Aprovado! Somos gratos por sua contribuição ❤️ REP+ 1 Link para o comentário https://tibiadevs.com/forums/topic/841-login-di%C3%A1rio/#findComment-4432 Compartilhar em outros sites Mais opções de compartilhamento...
morduk 159 Postado 24 de Janeiro Compartilhar Postado 24 de Janeiro top Link para o comentário https://tibiadevs.com/forums/topic/841-login-di%C3%A1rio/#findComment-4434 Compartilhar em outros sites Mais opções de compartilhamento...
ploneer157 141 Postado 24 de Janeiro Compartilhar Postado 24 de Janeiro muito obrigado vai ajudar muita gente Link para o comentário https://tibiadevs.com/forums/topic/841-login-di%C3%A1rio/#findComment-4435 Compartilhar em outros sites Mais opções de compartilhamento...
Omega 2 Postado 24 de Janeiro Compartilhar Postado 24 de Janeiro Em 18/01/2025 em 23:24, seilaeusou disse: e pra fazer a animação dos pokemons correndo igual no otp? Link para o comentário https://tibiadevs.com/forums/topic/841-login-di%C3%A1rio/#findComment-4436 Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora