文字MUD游戏论坛-天下泥潭群英会-水泊梁山

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/)
-   『 机器人制作及下载 』 (http://www.aolai.org/forums/f5/)
-   -   【转帖】zmud 4.62 hash 解决方法 + 文件访问 (http://www.aolai.org/forums/t10508/)

fengyue_xyj 2005-11-05 12:30

【转帖】zmud 4.62 hash 解决方法 + 文件访问
 
zmud 4.62 hash 解决方法 + 文件访问
原理:
zmud 4.62 提供很稳定的mud 解析。而且没有注册的麻烦。
他提供了文件访问和一些基本函数,但是缺少数组和hash 类型变量,
对于quest 来说,有一个中英文对照表,将会大大减少键盘输入,提高
游戏乐趣,减少失误。在此抛砖引玉了。

这里提供了一个示范的解决方法,适用于一般变量作为hash变量使用:
因为4.62的字符串变量没有限制长度,现在我用_隔开hash 单元,|隔开hash key and value:
比如
id_list: _阿菜哥|waiter|_阿草|a cao|cao|_阿大|a da|_阿二|a er|_阿发|afa|_阿发日记|afrji|_
这个是一部分 中英文对照表。

hash主要有以下函数(alias)
hash_find:用于用key 寻找hash value, 返回到hash_value 变量,失败的话,hash_value=0.
使用方法: hash_find varname keyname
使用举例:hash_find id_list 阿发日记
输出:_阿发日记| : afrji
hash_value 值= afrji

hash_add:用于添加hash 键值,如果有完全重复的键值,将不予增加。
使用方法: hash_add varname keyname hashvalue
使用举例:hash_add id_list 嘟嘟嘴 ddz
输出:
newvalue: 嘟嘟嘴|ddz|_ added.
或者:嘟嘟嘴|ddz|_ exists... no add!

其他还有文件读入写入函数:

save_var:存入变量值
使用方法: save_var varname
使用举例:save_var id_list
输出:
id_list.txt
Opened id_list.txt as file 3
id_list.txt erased.
Opened id_list.txt as file 3
Closed id_list.txt on file 3
VAR id_list saved to id_list.txt

load_var:读入变量值,同时把内容写入varname.bak文件
使用方法: load_var varname
使用举例:load_var id_list
输出:
Opened id_list.txt as file 3
Closed id_list.txt on file 3
_阿菜哥|waiter|_阿草|a cao|cao|_阿大|a da|_阿二|a er|_阿发|afa|_阿发日记|afrji|_
_阿菜哥|waiter|_阿草|a cao|cao|_阿大|a da|_阿二|a er|_阿发|afa|_阿发日记|afrji|_
Opened id_list.bak as file 4
id_list.bak erased.
Opened id_list.bak as file 4
Closed id_list.bak on file 4


以上函数实现方法:
//usage:hash_find %hash_list %hash_id,(_hash_id|hash_value|_),
//return to @hash_value;
//e.g. 阿发日记
hash_find:
varlist=@<%1>;
hash_id=_%2|;
#if %pos(@hash_id,<@varlist>) {temp=%pos(@hash_id,<@varlist>);
temp=%right(<@varlist>,@temp+%len(@hash_id)-1);
temp=%left(@temp,%pos("|",@temp)-1);
hash_value=@temp;
#echo @hash_id : @hash_value;
} {#echo not found!;
hash_value=0;
}
//usage:hash_add %hash_list %hash_id %hash_value//(_hash_id|hash_value|_),
//e.g. hash_add id_list 嘟嘟嘴 ddz

hash_add:
varlist=@<%1>;
hash_key=%2|%3|_;
#if %pos(@hash_key,<@varlist>) {#echo @hash_key exists... no add!;} {
temp=<@varlist>@hash_key;
#var <%1> @temp;
#echo newvalue: @hash_key added.
}

//usage:set varname (e.g. id_list, no @);
save_var:
varname=%1;
filename=@varname.txt;
#echo @filename;
#file 3 @filename;
#erase 3;
#file 3 @filename;
var2=@<@varname>;
#write 3 <@var2>;
#close 3;
#echo VAR @varname saved to @filename;

//usage:set varname (e.g. id_list, no @);
load_var:
varname=%1;
filename=@varname.txt;
var2=@<@varname>;
#file 3 @filename;
temp=%read(3);
#close 3;
#var <@varname> @temp;
#echo @temp;
#echo @var2;
fileback=@varname.bak;
#file 4 @fileback;
#erase 4;
#file 4 @fileback;
#write 4 <@var2>;
#close 4

flowermm 2005-12-03 19:46

回复: 【转帖】zmud 4.62 hash 解决方法 + 文件访问
 
不知道什么机器人游泳!

f_lilin 2005-12-12 03:41

回复: 【转帖】zmud 4.62 hash 解决方法 + 文件访问
 
有什么用,做quests?我觉得不如db好,速度没db快吧.

xssxyby 2006-01-05 16:06

回复: 【转帖】zmud 4.62 hash 解决方法 + 文件访问
 
努力 灌水 赚钱 买robot:em14:


所有时间均为格林尼治时间 +9, 现在的时间是 10:24.

Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1