Ir para conteúdo

[Talkaction] Calendário De Lembretes


Posts Recomendados

Faaaala galera, tudo tranquilo? Espero que sim, estou sem boas idéias esse dias, mas creio que essa será, no mínimo, útil para vocês. Caso tiverem idéias, deixem-as nos comentários e talvez eu as farei. Bom, como minha terceira colaboração do mês, vamos ao script.

 

Como funciona: É uma talkaction que permite que você coloque lembretes para si mesmo em qualquer dia válido.

 

Comandos:

 

!setday - Seleciona o dia que você irá colocar o lembrete. Ex: !setday 23/04/2011

!update - Adiciona o lembrete no dia. Ex: !update Prova de matemática

!checkday - Checa os lembretes do dia escolhido. Ex: !checkday 23/04/2011

 

Lembrando que !update só poderá ser usado após !setday.

 

Créditos:

 

Demonbholder - Script

Matheus Mkalo - Me ajudou em um certo problema que eu tive.

 

 

Talkaction:

 

function onSay(cid, words, param)

local storage = 30923
local storage3 = 30603

if words == "!setday" then
  if param ~= "" then
              if not (string.find(tostring(getPlayerStorageValue(cid, storage)), param)) and dateExists(param) ~= FALSE then
                 setPlayerStorageValue(cid, storage3, "Data: " ..param)
                 doPlayerSendTextMessage(cid, 4, "Dia confimado.")
              else
                  doPlayerSendCancel(cid, "Você já usou esta data ou ela esta incorreta.")
              end
  else
           doPlayerSendCancel(cid, "Parâmetro necessário.")
  end

elseif words == "!update" then
  if param ~= "" then
           if getPlayerStorageValue(cid, storage3) ~= -1 then
               if not (string.find(param, "/")) then
              valor = getPlayerStorageValue(cid, storage) == -1 and getPlayerStorageValue(cid, storage3) .. "\n" .. param .. "\n\n" or getPlayerStorageValue(cid, storage) .. getPlayerStorageValue(cid, storage3) .. "\n" .. param .. "\n\n"
                    setPlayerStorageValue(cid, storage, valor)
                    setPlayerStorageValue(cid, storage3, -1)
                    doPlayerSendTextMessage(cid, 4, "Informações atualizadas.")
               else
                    doPlayerSendCancel(cid, "Caracteres Invalidos.")
               end
           else
                    doPlayerSendCancel(cid, "Data não confirmada.")
           end
  else
           doPlayerSendCancel(cid, "Parâmetro necessário.")
  end

elseif words == "!checkday" then
  if param ~= "" then
           if dateExists(param) ~= FALSE then
              if string.find(getPlayerStorageValue(cid, storage), param) ~= nil then
                 doShowTextDialog(cid, 2160, getDay(getPlayerStorageValue(cid, storage), param))
              else
                  doPlayerSendCancel(cid, "Dia não confimado.")
              end
           else
                  doPlayerSendCancel(cid, "Data não existente.")
           end
  else
           doPlayerSendCancel(cid, "Parâmetro necessário.")
  end

end

return TRUE
end

function dateExists(date)

local rval = date

local tabe = {
[01] = 31,
[02] = 28,
[03] = 31,
[04] = 30,
[05] = 31,
[06] = 30,
[07] = 31,
[08] = 30,
[09] = 31,
[10] = 30,
[11] = 31,
[12] = 30
}
local data = string.explode(date, "/")

if not (data[3]) or tabe[tonumber(data[2])] < tonumber(data[1]) or tonumber(data[1]) < 1 then
rval = FALSE
elseif #data[1] ~= 2 or #data[2] ~= 2 or #data[3] ~= 4 then
rval = FALSE
end

return rval
end 

function getDay(str, cas)

return string.find(str, "/", string.find(str, cas) + 10) ~= nil and string.sub(str, string.find(str, cas), string.find(str, "/", string.find(str, cas) + 10)-9) or string.sub(str, string.find(str, cas), #str)
end

 

 

Tag:

 

<talkaction words="!setday;!update;!checkday" script="NomeDoArquivo.lua" />

 

 

Bom pessoal, espero que gostem, demorei todo o domingo para fazer. Isso totaliza as minhas obrigações de colaborador por este mês, mas continuarei trazendo conteúdo extra. Até mais.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

Consegui remover um dos storages do script. Agora são necessários apenas dois storages para o funcionamento. Um para o calendário e outro para indicar o dia do calendário no !setday

 

Consegui fazer sem tabela o dateExists, porém totalizou mais linhas que utilizando a tabela, então não há porquê.

 

Comentem, até mais.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

Como o @Pinpao disse ... nunca vi script parecido ...

Ótimo script, seria uma boa fazer um script para Site para checar o que

tem nos dias, ( seria uma boa para Eventos )

 

Muito Bom Demon, Parabéns =)

REP+

Link para o comentário
Compartilhar em outros sites

Sim, pode-se usar como um relatório de dia também, caso duas, ou mais pessoas, utilizem o mesmo char.

 

Até.

 

OBS: Se for ano bissexto, o dia 29 de fevereiro não existirá, depois eu faço umas edições para mudar.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...