cityhonghu 发表于 2009-9-24 19:08:44

求助,client_putinserver (id)与client_connect(id)的区别?(已解决)

本帖最后由 cityhonghu 于 2009-9-25 06:45 编辑

(已解决)
如题。
1。这2个函数具体应用区别是?
   我的理解是client_putinserver ( id )为已经选择队伍的玩家,M6的玩家不算。
   client_connect(id)为正在连接进入服务器的玩家
2。对于这2个函数,其对应的函数都是client_disconnect(id)?

sakulekingz 发表于 2009-9-24 19:24:54

client_putinserver - 玩家成功进入服务器.
client_connect - 玩家连接服务器.
client_disconnect - 玩家断开连接.

Rulzy 发表于 2009-9-24 19:39:51

楼上说的不错。不过有一点要注意,通过我观察,如果玩家没有成功进入服务器,玩家中连接过程断开连接,好像是不会触发client_disconnect事件的。

cityhonghu 发表于 2009-9-24 20:30:50

明白了。
还有一点是,对于判断权限的时候(get_user_flags(id)),是不是要用client_putinserver ( id )才可以?
在玩家连接服务器中的时候能够正确获取权限吗?

心静如水 发表于 2009-9-24 20:36:57

是这样的

Rulzy 发表于 2009-9-24 22:32:44

玩家连接过程中会依次产生这三个事件:
client_connect(id)
client_authorized(id)
client_putinserver(id)
而权限一般是在client_authorized事件中赋予的(查看admin.sma就知道了),所以,权限判断在client_connect是无效的,至少要在client_authorized中(在client_authorized中判断的话,插件在plugins.ini中的加载位置必须在admin.amxx之后)。

cityhonghu 发表于 2009-9-24 23:37:52

本帖最后由 cityhonghu 于 2009-9-25 06:44 编辑

谢谢3位。这个问题明白了。:victory:

0920357689 发表于 2009-10-20 04:37:17

client_connect不能獲取權限應該是因為用戶還沒傳送個人資料吧?.?

Rulzy 发表于 2009-10-20 13:04:26

主要原因是admin.sma中是在client_authorized(id)设置玩家权限的。当然,这跟client_connect中还未获取玩家steamid有关。如果你的服务器未使用steamid来判断玩家权限,则可以修改admin.sma,让其在client_connect里判断玩家权限,这样可以更早的完成玩家权限设置。
页: [1]
查看完整版本: 求助,client_putinserver (id)与client_connect(id)的区别?(已解决)