首先在石器时代服务端里,有个中毒无法回血的函数,详情可搜索version.h查看到该宏:
#define _TYPE_TOXICATION // (可开放) ANDY 中毒无法回血
这个功能似乎在石器里从来没有用到过。不看代码根本不知道。
先讲述下这个功能的作用,就是设置人物当前中毒状态后,人物会在没几分钟后扣血,并且中毒的时候无法用任何回复道具,精灵等进行加血。当血低于1的时候则会返回萨姆吉尔村村长家并解除中毒。
这里就主要讲两个函数:
setToxication( fd, 0/1);
这个函数是设置中毒状态,FD是客户端连接服务端的序列号。0是未中毒,1则是中毒
在这个功能有设置GM命令[gm setTox TRUE]就会让自己中毒,解除的话则把TRUE改成其他即可。
然后看下void CHAR_ComToxicationHp( int charaindex)这个函数定义,这个就是扣血函数了,他里面有个CHAR_WORKTOXICATION函数写入,但好像并没什么卵用,感觉是半成品的样子。
这里提议可以把setToxication设置成LUA接口,这样可以实现各种不同的玩法,比如活动类LUA可加入这个语句。