实现每日签到日历的脚本

代码

//大七 2016年6月23日23:17:23
unit Q_MRQD;

interface
  uses Classes, SysUtils, DateUtils;

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

implementation

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin

  Main2(Npc,Player,Args);
end;

procedure Main2(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S =
[[
    %s   %s   %s   %s   %s   %s   %s  <{I=$01;F=DaysSigned.Data}/@QD($01)>      <{I=$11;F=DaysSigned.Data}/@QD($11)>      <{I=$21;F=DaysSigned.Data}/@QD($21)>      <{I=$31;F=DaysSigned.Data}/@QD($31)>      <{I=$41;F=DaysSigned.Data}/@QD($41)>      <{I=$51;F=DaysSigned.Data}/@QD($51)>      <{I=$61;F=DaysSigned.Data}/@QD($61)>  <{I=$02;F=DaysSigned.Data}/@QD($02)>      <{I=$12;F=DaysSigned.Data}/@QD($12)>      <{I=$22;F=DaysSigned.Data}/@QD($22)>      <{I=$32;F=DaysSigned.Data}/@QD($32)>      <{I=$42;F=DaysSigned.Data}/@QD($42)>      <{I=$52;F=DaysSigned.Data}/@QD($52)>      <{I=$62;F=DaysSigned.Data}/@QD($62)>  <{I=$03;F=DaysSigned.Data}/@QD($03)>      <{I=$13;F=DaysSigned.Data}/@QD($13)>      <{I=$23;F=DaysSigned.Data}/@QD($23)>      <{I=$33;F=DaysSigned.Data}/@QD($33)>      <{I=$43;F=DaysSigned.Data}/@QD($43)>      <{I=$53;F=DaysSigned.Data}/@QD($53)>      <{I=$63;F=DaysSigned.Data}/@QD($63)>  <{I=$04;F=DaysSigned.Data}/@QD($04)>      <{I=$14;F=DaysSigned.Data}/@QD($14)>      <{I=$24;F=DaysSigned.Data}/@QD($24)>      <{I=$34;F=DaysSigned.Data}/@QD($34)>      <{I=$44;F=DaysSigned.Data}/@QD($44)>      <{I=$54;F=DaysSigned.Data}/@QD($54)>      <{I=$64;F=DaysSigned.Data}/@QD($64)>  <{I=$05;F=DaysSigned.Data}/@QD($05)>      <{I=$15;F=DaysSigned.Data}/@QD($15)>      <{I=$25;F=DaysSigned.Data}/@QD($25)>      <{I=$35;F=DaysSigned.Data}/@QD($35)>      <{I=$45;F=DaysSigned.Data}/@QD($45)>      <{I=$55;F=DaysSigned.Data}/@QD($55)>      <{I=$65;F=DaysSigned.Data}/@QD($65)>\
  你已经签到:{S=$d;C=249}天,距离下一次领奖还差{S=300;C=249}天
]];

var
    days: array[1..7] of string;
  s1,s2: string;
  Year, Month, Day, Hour:Word;
  nField,nLine,n,m,Daynum{月天数},nWeek{星期几}: integer;
  MyArray:Array [1..7,1..5]of string;
begin
    DecodeDate(Now, Year, Month, Day);
  nWeek := DayOfWeek(StartOfTheMonth(Now));
  Daynum := DaysInAMonth(Year, Month);
  s1 := Format(S,[‘星期日‘,‘星期一‘,‘星期二‘,‘星期三‘,‘星期四‘,‘星期五‘,‘星期六‘]);
  n := 1;
  m := 1;   

  for nLine := 1 to 5 do
  begin
    for nField := 1 to 7 do
    begin
      if(n < nWeek)then
      begin
          MyArray[nField,nLine] := ‘‘;
      end else if (nWeek + Daynum > n)then
      begin
        MyArray[nField,nLine] := inttostr(m);
        m := m+1;
      end else begin
        MyArray[nField,nLine] := ‘‘;
      end;
      n := n+1;
    end;
  end;    

  s2 := s1;
  for nLine := 1 to 5 do
  begin
    for nField := 1 to 7 do
    begin
       IF(MyArray[nField,nLine]=‘‘)THEN
       begin
           s2 := ReplaceStr(S2, Format(‘$%d%d‘,[nField-1,nLine]),‘0‘)  ;   //填充作用
       end else begin
          s2 := ReplaceStr(S2, Format(‘$%d%d‘,[nField-1,nLine]),MyArray[nField,nLine]);
       end;

    end;
  end;
 Npc.Say(Player, S2 );
end;

procedure QD(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
  Debug(Args.Str[0]);
end;    

end.

最终运行效果

根据当前月份动态生成日历

完整补丁+脚本下载地址

时间: 2024-10-13 20:15:43

实现每日签到日历的脚本的相关文章

签到领金币脚本

1 #!/use/bin/env python 2 # -*- coding: utf-8 -* 3 # Author : nick 4 # Desc : v2ex每日签到 5 6 import urllib 7 import urllib2 8 import cookielib 9 import re 10 import sys 11 from bs4 import BeautifulSoup as bs 12 from datetime import datetime 13 14 15 re

我的Android案例—签到日历

2015年的Android案例之旅 案例八:签到日历 知识点: GridView的使用 SQLite的使用 涉及文件: res->layout->activity_main.xml 主布局文件 res->layout->date.xml 布局文件 src->db->DBHelper.java java文件 src->db->SignDAO.java java文件 src->activity->MainActivity.java java文件 ac

PHP+MYSQL+AJAX实现每日签到功能

一.web前端及ajax部分 文件index.html <html> <head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <title>PHP+AJAX+MYSQL实现每日签到</title> <script type="text/javascript" src="js/jquery.min.js&q

我的Android案例签到日历

2015年的Android案例之旅 案例八:签到日历 知识点: GridView的使用SQLite的使用 涉及文件: res->layout->activity_main.xml 主布局文件res->layout->date.xml 布局文件src->db->DBHelper.java java文件src->db->SignDAO.java java文件src->activity->MainActivity.java java文件 activit

签到日历效果显示

项目用vue开发的,找了一个jQuery实现的签到日历效果,再改成vue开发模式,考虑到vue需要环境支持,下面只贴出jQuery实现的 <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

【每日圣经日历】2014年10月17日

注:移动用户(特别是苹果(Ipad))可以全选文字使用机器朗读 Vendredi le 17 Octobre 2014 礼拜五 2014年10月17日 C'est pour la liberté que Christ nous a affranchis. Demeurez donc \nfermes, et ne vous laissez pas mettre de nouveau sous le joug de la \nservitude.                          

【每日圣经日历】2014年10月3日

Vendredi le 3 Octobre 2014 礼拜五 2014年10月3日 Faites en tout temps par l'Esprit toutes sortes de prières et de supplications. Veillez à cela avec une entière persévérance, et priez pour tous les saints.                                                    

【每日圣经日历】2014年10月16日

注:移动用户(特别是苹果(Ipad))可以全选文字使用机器朗读 Jeudi le 16 Octobre 2014 礼拜四 2014年10月16日 Ceux qui avaient pour demeure les ténèbres et l'ombre de la mort Vivaient captifs dans la misère et dans les chanes, Parce qu'ils s'étaient révoltés contre les paroles de Dieu,

【每日圣经日历】2014年10月15日

注:移动用户(特别是苹果(Ipad))可以全选文字使用机器朗读 Mercredi le 15 Octobre 2014 礼拜三 2014年10月15日 Et à la neuvième heure, Jésus s'écria d'une voix forte: lo, lo, lama sabachthani? ce qui signifie: Mon Dieu, mon Dieu, pourquoi m'as-tu abandonné?