ashwing 发表于 2015-9-28 08:48:03

请教tintin++ #delay 问题

TINTIN++的 #delay 支持毫秒吗?

#delay {0.5} {test} 这样是立即执行呢

北大侠客行MUD,中国最好的MUD

adasibi 发表于 2015-9-28 10:41:09

据说是支持,可以试试#delay {0.5} {#delay {0.5} {test}}是不是延迟一秒执行。

oolong 发表于 2015-9-28 13:46:46

话说wintintin++
断线就没法自动登录了这个怎么解决的?

ashwing 发表于 2015-9-29 14:25:50

#delay 0.6 感觉就是1 #delay 0.5 就是立即执行。。。

adasibi 发表于 2015-9-30 09:08:22

#delay {0.5} {#show xxxxxxx},这样肯定能感觉到。
断线重连:#event{SESSION DISCONNECTED} {#session %0 %2 %3}
%0,%1,%2,%3 对应 session名,主机名,ip地址,端口

ashwing 发表于 2015-9-30 13:06:54

看了代码
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

ashwing 发表于 2015-9-30 13:07:18

看了代码
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

adasibi 发表于 2015-9-30 14:44:14

楼主大侠,我弱弱的怀疑node->data和gtd->time里存的都是微秒数,所以tintin应该是支持微秒的。。。
页: [1]
查看完整版本: 请教tintin++ #delay 问题