TC官方合作论坛
标题:
关于临界区的问题,我自己想了一天也没有想通,请教大神
[打印本页]
作者:
aimei_8866999
时间:
2013-5-9 06:29
标题:
关于临界区的问题,我自己想了一天也没有想通,请教大神
我写了一个简单的脚本,是四开喊话的,每个号有分成
当前喊话
和
世界喊话
,就是每个号用到两个线程,4个号总共是8个线程
现在的问题是我使用进入临界区,要实现的功能是 四个号每个号的
当前喊话
和
世界喊话
的8个线程每次只能有一个线程有效
这个用临界区实现的过程我知道,但是现在有一个新的问题,
当前喊话 是每隔30秒喊一次
世界喊话是每隔5分钟喊一次
这里我打算用到8个循环来控制这个喊话间隔,但是有一点我想不明白
就是用代码怎么实现 当我第一个号的当前喊话 喊了之后 需要
辅助.等待(30000)
之后再去抢这个进入临界区的事件,
怕说的不明白,在说个例子,当我第一个号世界喊话之后
辅助.等待 5分钟 在去抢这个进入临界区的事件
我是不是太笨了,想了好久都没想出来
我搜索了论坛 没有看到关于怎么实现 抢到进入临界区了,运行完代码,立即离开临界区,然后这个线程等待我设置的一个时间间隔 之后再去抢进入临界区
作者:
幼园留级老油条
时间:
2013-5-9 07:32
牛逼
作者:
a8461959
时间:
2013-5-9 08:18
喊话貌似不需要临界区吧,一般只有前台多开有鼠标键盘操作的时候才用到
作者:
cylhb
时间:
2013-5-9 08:30
-.-!!!!
循环
1.进入
2.执行操作
3.离开
4.等待
循环结束
这不就结了?
作者:
fire
时间:
2013-5-9 08:57
我是这样理解的:
四开,开启当前喊话,5分钟后世界喊话,循环
空间 测试
//默认空间
变量 句柄=数组[3]
功能 开启喊话()//开启喊话功能
for(i=0; i<4; i++)
句柄[i] = 线程.开启("测试.当前喊话",i)
endfor
功能结束
功能 世界喊话(参数)//世界喊话
线程.暂停(句柄[参数])
//你的世界喊话代码
线程.恢复(句柄[参数])
功能结束
功能 当前喊话(参数)//当前喊话
//你的当前喊话代码
功能结束
功能 定时器0_时钟()//定时世界喊话
//这里添加你要执行的代码
for(i=0; i<4; i++)
线程.开启("测试.世界喊话",i)
endfor
功能结束
功能 按钮0_点击()//开启/关闭 喊话功能
//这里添加你要执行的代码
选择(按钮.获得文本("按钮0"))
条件"喊话开启":
线程.开启("测试.开启喊话","")
定时器.注册("定时器0",300000)
按钮.设置文本("按钮0","喊话关闭")
条件"喊话关闭":
定时器.销毁("定时器0")
for(i=0; i<4; i++)
线程.关闭(句柄[i])
endfor
按钮.设置文本("按钮0","喊话关闭")
选择结束
功能结束
空间结束
//空间结束语句
复制代码
有用..点呢啥...
作者:
zhkq
时间:
2013-5-9 09:22
我的理解:
1、多开应该是后台,所以不用考虑多个游戏窗口间动作会不会冲突,所以多窗口之间不用进入临界区。
2、同窗口内的两个动作需要考虑是否动作冲突,可以对动作顺序进行控制避免冲突也用不到什么临界区。
示例如下:
变量 窗口句柄,线程句柄
功能 开始_点击()
遍历(i=0;i<4:i++)
窗口句柄=获得句柄。。。。
线程句柄=线程.开启(“测试.喊话”,i)
遍历结束
功能结束
功能 喊话(n)
循环(真)
遍历(i=0;i<10:i++)
测试.当前喊话(n)
辅助.等待(30000)
遍历结束
测试.世界喊话(n)
遍历结束
功能结束
作者:
舍我其谁
时间:
2013-5-9 11:05
临界区 就 是 电话亭
作者:
aimei_8866999
时间:
2013-5-9 18:32
回复
5楼
fire
的帖子
谢谢你写的这么详细,不过我要用到临界区来完成的
作者:
aimei_8866999
时间:
2013-5-9 18:36
回复
6楼
zhkq
的帖子
我四开使用的前台平铺的,在每次当前喊话和世界喊话 都要确定当前是否有人在交易我,所以每次喊话之前都要找一个图片来确定是否可以喊话的,不过还是感谢你
作者:
aimei_8866999
时间:
2013-5-9 18:38
回复
4楼
cylhb
的帖子
我以为
离开临界区
之后的代码都不执行了,我想错了,还是版主厉害,几句话搞定,采纳你了,以后再有小白遇见这样的问题,搜索论坛就可以看到
作者:
aimei_8866999
时间:
2013-5-9 18:39
现在怎么采纳的哪个选项没有啦
作者:
zhkq
时间:
2013-5-9 20:32
回复
10楼
aimei_8866999
的帖子
没矛盾吧,呵呵,现在这个仍然可以写呀!你继续好好想想把。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1