PDA

View Full Version : Code Checktime Callout



nhiyaiba712
22-10-15, 11:32 PM
Bạn nào hướng dẫn dùm mình cách chỉnh thời gian bắt đầu, giãn cách giữa các event với, ví dụ ở code sau cho mình dễ hiểu cũng đc

void check_time()
{
int iTime,rate,level,z,p,x,y;
int i,*nScene,size;
mixed *mixTime;
object robber;

remove_call_out("check_time");
iTime = time();

mixTime = localtime(iTime);

if ( mixTime[TIME_WDAY] == 5 || mixTime[TIME_WDAY] == 6 )
{
destroy_scum();
call_out("check_time",3600*24);
return ;
}
else if ( mixTime[TIME_WDAY] == 0 )
{
call_out("check_time",3600*24-mixTime[TIME_HOUR]*3600-mixTime[TIME_MIN]*60);
return ;
}
else*/
{
i = 60*(60-mixTime[TIME_MIN]);
if ( mixTime[TIME_HOUR]%2 == 1 )
{
call_out("check_time",i);
}
else
{
if ( mixTime[TIME_HOUR] == 2 || mixTime[TIME_HOUR] == 4 || mixTime[TIME_HOUR] == 6 || mixTime[TIME_HOUR] == 8 || mixTime[TIME_HOUR] == 10 )
call_out("check_time",i+3600);
else
{
generate_scum();
log_file("wg_scum2.txt",sprintf("%s Võ Lâm Bại Hoại xuất hiện。 \n",short_time()));
call_out("check_time",i+3600);
}
}
}

}

ben543518694
25-10-15, 11:41 AM
Bạn nào hướng dẫn dùm mình cách chỉnh thời gian bắt đầu, giãn cách giữa các event với, ví dụ ở code sau cho mình dễ hiểu cũng đc

void check_time()
{
int iTime,rate,level,z,p,x,y;
int i,*nScene,size;
mixed *mixTime;
object robber;

remove_call_out("check_time");
iTime = time();

mixTime = localtime(iTime);

if ( mixTime[TIME_WDAY] == 5 || mixTime[TIME_WDAY] == 6 )
{
destroy_scum();
call_out("check_time",3600*24);
return ;
}
else if ( mixTime[TIME_WDAY] == 0 )
{
call_out("check_time",3600*24-mixTime[TIME_HOUR]*3600-mixTime[TIME_MIN]*60);
return ;
}
else*/
{
i = 60*(60-mixTime[TIME_MIN]);
if ( mixTime[TIME_HOUR]%2 == 1 )
{
call_out("check_time",i);
}
else
{
if ( mixTime[TIME_HOUR] == 2 || mixTime[TIME_HOUR] == 4 || mixTime[TIME_HOUR] == 6 || mixTime[TIME_HOUR] == 8 || mixTime[TIME_HOUR] == 10 )
call_out("check_time",i+3600);
else
{
generate_scum();
log_file("wg_scum2.txt",sprintf("%s Võ Lâm Bại Hoại xuất hiện。 \n",short_time()));
call_out("check_time",i+3600);
}
}
}

}



void check_time()
{
int iTime,rate,level,z,p,x,y;
int i,*nScene,size;
mixed *mixTime;
object robber;

remove_call_out("check_time");
iTime = time();

mixTime = localtime(iTime);

if ( mixTime[TIME_WDAY] == 5 || mixTime[TIME_WDAY] == 6 )// nếu hôm nay là thứ 6 hoặc thứ 7
{
destroy_scum();// xoá boss
call_out("check_time",3600*24);// không gọi boss, chờ 1 thời gian
return ;
}
else if ( mixTime[TIME_WDAY] == 0 )// hoặc nếu hôm nay là Chủ nhật
{
call_out("check_time",3600*24-mixTime[TIME_HOUR]*3600-mixTime[TIME_MIN]*60);// không gọi boss, chờ 1 thời gian
return ;
}
else
{
i = 60*(60-mixTime[TIME_MIN]);
if ( mixTime[TIME_HOUR]%2 == 1 )// Nếu hiện tại là thời gian chia cho 2 ra số lẽ
{
call_out("check_time",i);// Không gọi boss, chờ 1 thời gian
}
else // hoặc nếu thời gian chia cho 2 là giờ chẵn
{
if ( mixTime[TIME_HOUR] == 2 || mixTime[TIME_HOUR] == 4
|| mixTime[TIME_HOUR] == 6 || mixTime[TIME_HOUR] == 8
|| mixTime[TIME_HOUR] == 10 )// Nếu hiện tại là 2,4,6,8,10h thì không gọi boss
call_out("check_time",i+3600);
else// hoặc các thời gian chẵn còn lại trong ngày sẽ ra boss
{
generate_scum();
log_file("wg_scum2.txt",sprintf("%s Võ Lâm Bại Hoại xuất hiện。 \n",short_time()));
call_out("check_time",i+3600);
}
}
}

}

PhamNinh
25-10-15, 12:07 PM
Good :D