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毫秒