北大侠客行MUD论坛

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

Cmud全局变量问题

[复制链接]
发表于 2010-1-20 14:51:46 | 显示全部楼层 |阅读模式
有一个疑问不知道谁能解答一下。比如我做了一个机器人,有一堆状态变量,还有几个扑捉对话的窗口,
主窗口是pkuxkx,常常pkuxkx的机器人变量跑到chat窗口或者hubiao窗口,
而且变量还不对,机器人还自动用那个窗口的变量,直接导致机器人变傻。
好多次这种情况!不知道大家怎么避免这种情况发生的。
Cmud的windows配置独立是挺麻烦的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-20 15:34:04 | 显示全部楼层
cmud不知道,反正zmud的窗口之间常常乱窜,某个窗口的命令常常被窜到另一个窗口执行。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-20 16:20:49 | 显示全部楼层
这个问题搞清楚,bot会稳定很多
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-20 16:26:33 | 显示全部楼层
我开始以为是#windows命令导致的,发现关系不是特别大,我每次#win到别的窗口,在重定位回来还是一样出问题
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-20 16:49:22 | 显示全部楼层
你的变量是存在那个package?如果放在default配置里面或者你的几个窗口用能够同一个packages的话,可能会发生这种情况,可能是由多threads造成的
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-20 18:49:36 | 显示全部楼层
几个窗口还能在不同Package里面?不过我试试把聊天记录的窗口disable看看有没有效果。反正不影响聊天记录。不过问题不好测试

[ 本帖最后由 seagate 于 2010-1-20 06:50 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-20 19:15:50 | 显示全部楼层
可以在不同的package!但一般#capture 出来的窗口会继承主窗口package的配置,如果有多个threads在访问同一个variable,且你的variable是定义在root下面的话,就会发生这种情况,所以你把变量定义到某侧class里面试试看,不过,这个问题很难解决,除非用#section把你的语句包起来
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-20 20:04:37 | 显示全部楼层
就是定义在class里面的,不过没用,但是你也不能所有代码都用#section包起来啊。那样不太对啊。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-20 20:08:45 | 显示全部楼层
你的意思是线程竞争导致全局变量同时在用,另外一个全局变量被迫写到别的地方去了?如果是这个原因的话,我看只有两个办法:一,减少全局变量。二,用到全局变量的地方,只要是修改的用#SECTION包起来,防止出现竞争。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 07:40 AM , Processed in 0.009358 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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