Mud 版 (精华区)
发信人: Baggio (傻瓜牌生活), 信区: Mud
标 题: MudOS v22升级指南 xiha
发信站: 哈工大紫丁香 (Tue May 4 20:31:54 1999), 转信
发信人: xiha (随风而去), 信区: Mud_Builder
标 题: MudOS v22升级指南
发信站: BBS 荔园晨风站 (Sun Apr 26 22:35:28 1998), 转信
BBS水木清华站∶精华区
发信人: xstar (星际战舰), 信区: Mud_Builder
标 题: MudOS v22升级指南
发信站: BBS 水木清华站 (Sun Mar 1 21:00:48 1998)
如果你原来用的是MudOS v21.xx, 则升级至v22需要进行以下改动:
1、删除所有文件中在子类或外部使用的函数前面的private关键字。
或者简单地删除所有函数前面的private就行了。
比如:/feature/attack.c中的:
private int attack()
....
改为 int attack()
类似的情况还有:
/feature/action.c, treemap.c 等。
2、注意函数声明的类型要与函数实际类型相同
比如:
void myfunction();
....
int myfunction()
{
...
}
在v21里可能没问题,v22里就不能正确执行。
3、检查所有用到函数指针的地方。
v22不再支持形如(: ob, string :)这样的函数指针类型,
而需要改成:(: call_other, ob, string :)
比如在文件: /cmds/std/suicide.c 中第44行
me->start_busy( (: __FILE__, "slow_suicide", me :));
必须改成:
me->start_busy( (: call_other, __FILE__, "slow_suicide", me :));
才能正确使用。
类似的文件还有:
es2: /std/weapon/sword.c blade.c axe.c ...
xkx: /inherit/weapon/sword.c blade.c axe.c ...
等等。
4、修改origin.h
由于v22修改了origin函数的返回类型(从int改为string),
所以要修改origin.h:
#define ORIGIN_BACKEND 0x1
#define ORIGIN_DRIVER 0x1
#define ORIGIN_LOCAL 0x2
#define ORIGIN_CALL_OTHER 0x4
#define ORIGIN_SIMUL_EFUN 0x8
#define ORIGIN_CALL_OUT 0x10
#define ORIGIN_EFUN 0x20
改为:
#define ORIGIN_DRIVER "driver"
#define ORIGIN_LOCAL "local"
#define ORIGIN_CALL_OTHER "call_other"
#define ORIGIN_SIMUL_EFUN "simul"
#define ORIGIN_CALL_OUT "call_out"
#define ORIGIN_EFUN "efun"
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: stu20.pubnic.bu]
--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 202.192.140.167]--
※ 转寄:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 172.18.32.20]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@fengyun.hit.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.330毫秒