请教tintin++ #delay 问题
TINTIN++的 #delay 支持毫秒吗?#delay {0.5} {test} 这样是立即执行呢
北大侠客行MUD,中国最好的MUD 据说是支持,可以试试#delay {0.5} {#delay {0.5} {test}}是不是延迟一秒执行。 话说wintintin++
断线就没法自动登录了这个怎么解决的? #delay 0.6 感觉就是1 #delay 0.5 就是立即执行。。。 #delay {0.5} {#show xxxxxxx},这样肯定能感觉到。
断线重连:#event{SESSION DISCONNECTED} {#session %0 %2 %3}
%0,%1,%2,%3 对应 session名,主机名,ip地址,端口 看了代码
void delay_update(void)
{
struct session *ses;
struct listnode *node;
struct listroot *root;
char buf;
open_timer(TIMER_UPDATE_DELAYS);
for (ses = gts ; ses ; ses = gtd->update)
{
gtd->update = ses->next;
root = ses->list;
for (root->update = 0 ; root->update < root->used ; root->update++)
{
node = root->list;
if (node->data == 0)
{
node->data = gtd->time + (long long) (get_number(ses, node->pr) * 1000000LL);
}
if (node->data <= gtd->time)
{
strcpy(buf, node->right);
show_debug(ses, LIST_DELAY, "#DEBUG DELAY {%s}", buf);
delete_node_list(ses, LIST_DELAY, node);
script_driver(ses, LIST_DELAY, buf);
}
}
}
close_timer(TIMER_UPDATE_DELAYS);
}
所以 只支持秒级,,, 不过可以自己修改 成支持microsecond 看了代码
void delay_update(void)
{
struct session *ses;
struct listnode *node;
struct listroot *root;
char buf;
open_timer(TIMER_UPDATE_DELAYS);
for (ses = gts ; ses ; ses = gtd->update)
{
gtd->update = ses->next;
root = ses->list;
for (root->update = 0 ; root->update < root->used ; root->update++)
{
node = root->list;
if (node->data == 0)
{
node->data = gtd->time + (long long) (get_number(ses, node->pr) * 1000000LL);
}
if (node->data <= gtd->time)
{
strcpy(buf, node->right);
show_debug(ses, LIST_DELAY, "#DEBUG DELAY {%s}", buf);
delete_node_list(ses, LIST_DELAY, node);
script_driver(ses, LIST_DELAY, buf);
}
}
}
close_timer(TIMER_UPDATE_DELAYS);
}
所以 只支持秒级,,, 不过可以自己修改 成支持microsecond 楼主大侠,我弱弱的怀疑node->data和gtd->time里存的都是微秒数,所以tintin应该是支持微秒的。。。
页:
[1]