var
Week : String = 星期六; //星期(星期一,星期二,星期三,星期四,星期五,星期六,星期天)
OpenTime : Integer = 20; //开放小时(24制 0-23)
Openm : Integer = 0; //开放分
x : Integer = 2; //每x分钟公告
CloseTime : Integer = 22; //关闭时
Closem : Integer = 0; //关闭分
h, m, s : Integer;
BoOpen : Integer = 0;
implementation
procedure OnTimer (aStr : String);
var
Str, Name, Date, Mapxy : String;
Hour, Minute, Second : String;
st, sb : String;
aot, mx, a, b, i, Timem, tsm : Integer;
begin
Date := callfunc (getsysdate 0 4);
if Date <> Week then begin
if BoOpen <> 1 then exit;
print (setstoneattack false);
print (sendchatmsg [灭门大战]各门派注意!灭门大战已结束! 13);
BoOpen := 0;
exit;
end;
Str := GetToken (aStr, Hour, _);
Second := GetToken (Str, Minute, _);
h := StrToInt (Hour);
m := StrToInt (Minute);
s := StrToInt (Second);
aot := OpenTime - 1;
if h = CloseTime then begin
if m = Closem then begin
if BoOpen <> 1 then exit;
print (setstoneattack false);
print (sendchatmsg [灭门大战]各门派注意!灭门大战已结束! 13);
BoOpen := 0;
exit;
end;
end;
if BoOpen = 1 then begin
exit;
end;
//开放前
i := 0;
if h = aot then i := 1;
tsm := 60;
if Openm <> 0 then begin
i := 0;
if h = OpenTime then i := 1;
tsm := Openm;
end;
if i = 1 then begin
if m < tsm then begin
if BoOpen <> 0 then exit; //非关闭状态结束
mx := m mod x;
if mx <> 0 then exit; //非公告时间差额结束
if s > 1 then exit; //秒数大于 1 后结束
a := 60 - m;
if Openm <> 0 then a := Openm - m;
b := 13;
b := b + s;
sb := IntToStr (b);
st := IntToStr (a);
Str := sendchatmsg [灭门大战]各门派注意!将在 + st;
Str := Str + 分后开启灭门大战! ;
Str := Str + sb;
print (Str);
exit;
end;
end;
//时间到千年私服
if h = OpenTime then begin
if m <> Openm then exit;
if BoOpen <> 0 then exit;
print (setstoneattack true);
print (sendchatmsg [灭门大战]各门派注意!灭门大战现在开始! 13);
BoOpen := 1;
exit;
end;