搜索
楼主: et007

代码求助

[复制链接]
发表于 2006-11-11 02:09:43 | 显示全部楼层 来自 中国–陕西–西安

回复: 代码求助

Post by jim_yang
不好意思啊,不过楼上的代码跟pop781的比就是画蛇添足了。get_players实际上做的就是for(new i=0; i<=get_maxplayers(); i++) 然后把符合条件的找出来。
你的说法是不对的,因为 id 并不是连续的,要么就用我这种方法,要么就用32,但用32并不好,因为如果id不存在,执行就会相应可能存在问题,但如果加上了 is_user_connected 判断,那就可以了。所以2楼的代码也是正确的。而如果用for(new i=0; i<=get_maxplayers(); i++) 就不正确。
回复

使用道具 举报

发表于 2006-11-11 02:48:54 | 显示全部楼层 来自 中国–陕西–西安

回复: 代码求助

Post by pop781
这个 "e", 经常不能完全正常的过滤出所有 alive 的玩家
而且楼主需要给整队人加钱,应该包括死亡的队友
这是很久的amxx bug
"e"是代表指定的队伍,而不是说过滤alive的玩家。
回复

使用道具 举报

发表于 2006-11-11 11:44:20 | 显示全部楼层 来自 中国–广东–深圳

回复: 代码求助

Post by Rulzy
"e"是代表指定的队伍,而不是说过滤alive的玩家。
哦,正解
抱歉,把另一"e",搞混了,好久没有用get_players了
已删除。。
回复

使用道具 举报

发表于 2006-11-11 11:55:43 | 显示全部楼层 来自 中国–广东–深圳

回复: 代码求助

就这段代码来说,2楼和5楼的都可用
如果说优化和执行效率,个人支持yang的看法
原因:
get_players()
函数执行过程的和2楼的基本一样同样要判断is_user_connected (id....id<=maxplayers)这里假如maxplayers==32人
过滤出有效的id,再返回 执行32次,假如有30个有效id
之后插件再作一次team判断的id循环,执行 30 次
共 32+30次的判断循环
回复

使用道具 举报

发表于 2006-11-11 19:15:49 | 显示全部楼层 来自 中国–北京–北京–海淀区

回复: 代码求助

利害利害,都是达人,呵呵
回复

使用道具 举报

发表于 2006-11-21 13:20:21 | 显示全部楼层 来自 中国–北京–北京

回复: 代码求助

呵呵 我自己也解决了 感觉真好
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表