北大侠客行MUD论坛

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

Cmud机器人编写小技巧之全局变量

[复制链接]
发表于 2010-6-16 13:01:41 | 显示全部楼层 |阅读模式
昨天查看帮助做了一些研究,发现一些新东西,关于全局变量的对大家非常有用我这里就简单说说。Cmud机器人编写的时候会发现最大的问题就是由于多线程导致变量不稳定,有时候这对你的机器人造成非常多的隐患,但是为了跨触发进行信息交流还必须用变量存储信息。这里Cmud提供了全局变量的概念,全局变量存放的位置是cmud.ini文件,每次关闭cmud的时候会把内存中的全局变量值刷新到cmud.ini中,该变量提供了跨session级别的信息交流能力,而且使用上非常稳定。不过操作上比较麻烦,对全局变量进行写入只能通过函数%setglobal()以#call %setglobal("varid","varvalue")的形式进行变量写入,读取变量只能通过%getglobal("varid")的形式获得变量值,而且注意的是由于全局变量是整个cmud内部唯一的,所以我的做法是将变量id存放在一个list结构里面,每次操作的时候调用list结构,比如%getglobal(@globalvar.global1)来获得变量值,这样子你迁移到别的session的时候怕互相之间会有影响,把@globalvar.global1对应的值修改成另外一个值,存储的时候就不会互相影响了,需要跨session级别交流的话两个session里面@globalvar.global1值一样就实现了两个session对同一个全局变量进行读写。这里要注意的一点是由于全局变量没有加锁保护机制,所以跨session级别并行处理有时候会有bug,就和游戏里面钱庄存取钱的bug是一个道理,都是缺乏事务机制导致的。全局变量就讲到这里,欢迎大家探索!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-6-16 13:33:39 | 显示全部楼层
完全看不明白
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-6-16 14:27:38 | 显示全部楼层
已经告别cmud
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-6-17 11:41:31 | 显示全部楼层
标记一下,慢慢理解
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 13:37:10 | 显示全部楼层
怎么理解CMUD变量

sessions: one
globel  @abc
var     @abc
local    $abc

sessions: two
globel  @abc
var     @abc
local    $abc

怎么理解这些变量,在不同 sessions之间哪些会相互影响?

[ 本帖最后由 oolong 于 2010-8-31 05:49 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-12-14 04:01:33 | 显示全部楼层
不懂cmud中@和$有什么区别的小白飘过……
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-12-23 01:04:27 | 显示全部楼层
CMud用过,有很多问题,程序在里面搞得复杂了,后来换了MUSHClient,一切变得美好起来了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-12-23 12:39:13 | 显示全部楼层
cmud不好用啊。老死机
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 09:39 PM , Processed in 0.012208 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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