建议eat、drink修改为公共命令
像干粮酒袋这种低价值、一买就很多个的东西,带有自身附加的命令很容易出问题。假如想破坏游戏,只要挂个机器人不断买干粮扔书院,15分钟之内可以堆上几万个干粮,还花不了多少gold,估计系统就卡得不行了……
像eat、drink这种经常要被频繁调用的,应该做成一个公共命令,当输入eat object的时候,先检查set food 值,如果是1,就遍历房间里是否存在一个id为object的物体,并且这个物体有可吃的属性,有就吃,没有,或者set food 0的,就同样检查自己身上。
简单解决办法就是,每一个食物设置一个数值a表示能吃的次数,另一个数值b表示每次吃恢复的数值,每次执行eat命令时,恢复b数值的食物,同时a减1,a减到0就吃完。
特别需求的解决:1、需要有特别的吃的动作?给食物设置一个eatmsg的字符,吃的时候调用就是了;2、吃东西附带特殊效果?设置一个eat_func()函数,吃的时候调用就是了。
这样就不会存在10000个干粮就要调用10000次eat函数。
因为存在被大量重复调用函数的只有吃喝两件事,所以要做修改的只是吃喝两个命令,当然,各种食物的源文件都要做一些修改。
以上仅供参考。
(刚才那贴不知道为什么锁了,这里单独发一次,wiz觉得不合适就删了吧)
北大侠客行MUD,中国最好的MUD 本帖最后由 lequn 于 2011-12-28 10:17 AM 编辑
像eat、drink这种经常要被频繁调用的,应该做成一个公共命令,当输入eat object的时候,先检查set food 值,如果是1,就遍历房间里是否存在一个id为object的物体,并且这个物体有可吃的属性,有就吃,没有,或者set food 0的,就同样检查自己身上。
1、eat,drink的东西能不能只检查身上,
2、eat,drink的东西,掉地上就消失。现在吃过一口的干粮掉地上本来就是直接消失的。 回复 2# lequn
默认没有set food的时候就只检查身上的
因此对于大部分人都是只检查自己身上的
这样修改就不会造成大量重复调用 像干粮酒袋这种低价值、一买就很多个的东西,带有自身附加的命令很容易出问题。
假如想破坏游戏,只要挂 ...
darkstar 发表于 2011-12-28 10:09 AM http://pkuxkx.com/forum/images/common/back.gif
之所以锁了就是因为开始讨论技术方案了,而我没办法跟你解释清楚为什么eat不能做成命令。 回复 4# jason
darkstar被J鄙视了,laugh 把干粮和酒袋做的很重,没人只能背一个 本帖最后由 labaz 于 2011-12-28 10:47 AM 编辑
回复 6# mml
你这是要做人肉干和人皮酒袋呢?
一次地上扔一个,循环下来也就一会的事,只要钱够 回复 4# jason
哦,那算了,反正这也不是俺该操心的事。玩家只要享受游戏就好咯 回复jason
哦,那算了,反正这也不是俺该操心的事。玩家只要享受游戏就好咯
darkstar 发表于 2011-12-28 10:48 AM http://pkuxkx.com/forum/images/common/back.gif
欢迎你玩出感情后来做wiz 欢迎你玩出感情后来做wiz
jason 发表于 2011-12-28 02:49 AM http://pkuxkx.com/forum/images/common/back.gif
水平不够耶,编程只学了半吊子,只能添乱什么的 yct45
页:
[1]
2