北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 5665|回复: 7

请教tintin++ #delay 问题

[复制链接]
发表于 2015-9-28 08:48:03 | 显示全部楼层 |阅读模式
TINTIN++的 #delay 支持毫秒吗?

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

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-9-28 10:41:09 | 显示全部楼层
据说是支持,可以试试#delay {0.5} {#delay {0.5} {test}}是不是延迟一秒执行。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-9-28 13:46:46 | 显示全部楼层
话说wintintin++
断线就没法自动登录了这个怎么解决的?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-9-29 14:25:50 | 显示全部楼层
#delay 0.6 感觉就是1 #delay 0.5 就是立即执行。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-9-30 09:08:22 | 显示全部楼层
#delay {0.5} {#show xxxxxxx},这样肯定能感觉到。
断线重连:#event  {SESSION DISCONNECTED} {#session %0 %2 %3}
%0,%1,%2,%3 对应 session名,主机名,ip地址,端口
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-9-30 13:06:54 | 显示全部楼层
看了代码
void delay_update(void)
{
        struct session *ses;
        struct listnode *node;
        struct listroot *root;
        char buf[BUFFER_SIZE];

        open_timer(TIMER_UPDATE_DELAYS);

        for (ses = gts ; ses ; ses = gtd->update)
        {
                gtd->update = ses->next;

                root = ses->list[LIST_DELAY];       

                for (root->update = 0 ; root->update < root->used ; root->update++)
                {
                        node = root->list[root->update];

                        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
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-9-30 13:07:18 | 显示全部楼层
看了代码
void delay_update(void)
{
        struct session *ses;
        struct listnode *node;
        struct listroot *root;
        char buf[BUFFER_SIZE];

        open_timer(TIMER_UPDATE_DELAYS);

        for (ses = gts ; ses ; ses = gtd->update)
        {
                gtd->update = ses->next;

                root = ses->list[LIST_DELAY];       

                for (root->update = 0 ; root->update < root->used ; root->update++)
                {
                        node = root->list[root->update];

                        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
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-9-30 14:44:14 | 显示全部楼层
楼主大侠,我弱弱的怀疑node->data和gtd->time里存的都是微秒数,所以tintin应该是支持微秒的。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-1 10:21 AM , Processed in 0.012301 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表