Rulzy 发表于 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++) 就不正确。

Rulzy 发表于 2006-11-11 02:48:54

回复: 代码求助

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

pop781 发表于 2006-11-11 11:44:20

回复: 代码求助

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

pop781 发表于 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次的判断循环

jim_yang 发表于 2006-11-11 19:15:49

回复: 代码求助

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

cskk 发表于 2006-11-21 13:20:21

回复: 代码求助

呵呵 我自己也解决了 感觉真好
页: 1 [2]
查看完整版本: 代码求助