Muito Bom Nunca Vi Um Script Parecido Boa Ideia :smile_positivo:
- Forums
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- [Talkaction] Calendário De Lembretes
[Talkaction] Calendário De Lembretes
By Demonbholder, 10 de abr. de 2011 in Actions e Talkactions
info
Group: Colaborador
Joined: 27/12/10
Posts: 271
Reputation: +87
Gender: Masculino

info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

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.
Edited Abril 11 by Demonbholder
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+
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

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.
Edited Abril 12 by Demonbholder



info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder
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) endTag:
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.
Edited Abril 11 by Demonbholder