|
发表于 2006-5-11 23:21:52
|
显示全部楼层
来自 中国–湖北–武汉
回复: 帮忙看一下这段代码*(20行)
Post by cityhonghu
这一段代码是不是指,ipc与所有玩家一个一个对比IP,如果ipp等于ipc且不是同一玩家时,赋予who为id值?这个id是指userid吗? break是什么意思?
new who不需要赋予其值为0吗? 默认就是0吗?
return PLUGIN_CONTINUE
return PLUGIN_HANDLED
这2个分别什么时候用?有点分不清 。。。
谢谢 !
[color="DarkOrchid"]是一个一个比较. who实际是多余的,我只是沿用你的.改为下面的更直观.break是跳出最近的封闭循环体;这些翻编程语句书都有. new who初始化就为0. return PLUGIN_CONTINUE与return PLUGIN_HANDLED根据函数类型或者事件类型决定的;有的函数返回影响游戏引擎对数据的收集,这样的函数就不可以乱返回了.#define PLUGIN_CONTINUE 0 /* Results returned by public functions */
#define PLUGIN_HANDLED 1 /* stop other plugins */
#define PLUGIN_HANDLED_MAIN 2 /* to use in client_command(), continue all plugins but stop the command */ 放在那个adminslots应该没有问题,你试试就知道了.
- #include <amxmodx>
- #include <amxmisc>
- public plugin_init()
- {
- register_plugin("onlyip","0.1","cityhonghu")
- }
- public client_connect(id)
- {
- new ipp[16], ipc[16]
- get_user_ip(id, ipc, 15, 1) //不包含端口
- new players_num = get_playersnum(1) //包含连接中玩家
- for (new i=1; i<=players_num; i++)
- {
- get_user_ip(i, ipp, 15, 1)
- if (equal(ipp,ipc) && i!=id) //equal ( const a[], const b[], [ c ] ) If c is specified, c characters are compared only. 比较两个数组是否相等
- {
- server_cmd("kick #%d ^"Dropped: Now This IP can't join server !wait...^"", get_user_userid(id))
- break
- }
- }
- return PLUGIN_CONTINUE
- }
复制代码 |
|