搜索
楼主: Enigmaya

【原创】娱乐型反作弊插件v1.1--2005-10-3

[复制链接]
发表于 2006-2-15 15:22:59 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

给你摘一段votekick.sma里面的代码看看?

    get_players( g_nMenuPlayers, nNum )
......
    for( i = nStart; i < nEnd; i++ )
    {
        j = g_nMenuPlayers
        get_user_name( j, szUserName, 31 )
......
    }

这里,人家为什么要用j而不是直接用i呢?很显然嘛! :)
回复

使用道具 举报

发表于 2006-2-15 15:25:21 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

Post by Enigmaya
看楼上吧。。。

确实阿。。我一开始就是把id当作useid的。。。后来用电脑测试一直出错。。。然后才发现和userid不一样,又后来,用get_players时就直接用了i。。。我去找找我见过直接用i的代码

骗你干嘛。。。老早就说了这是第一个插件。。。有很多东西都不太了解。。。在这样的基础上。。。

另外。。。谁给你说我...

好了,我不说话了,高手过招点到为止,我心不坏可嘴巴坏,说多了伤人,我闪~~
回复

使用道具 举报

发表于 2006-2-15 15:28:34 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

再给你看一段weaponarena.sma里面的源代码:

get_players(playersList, playersFound, "a")
for (new i = 0; i < playersFound; i++) {
  if (giveIfHasnt(playersList)) {
   switch (get_cvar_num("weaponarena_unlimitedammo")) {
    case 0: giveAmmo(playersList)
    case 2: giveAmmo(playersList)
   }
  }
回复

使用道具 举报

发表于 2006-2-15 15:31:44 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

再给你看大名鼎鼎的魔兽3里面的源代码:

get_players(players, numplayers, "ae", teamname)
......   
for (new i=0; i<numplayers; ++i){
  targetid=players
  get_user_origin(targetid, targetorigin)
......
回复

使用道具 举报

发表于 2006-2-15 15:33:04 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

还要找吗?要参考就参考那些经得起考验的源代码
回复

使用道具 举报

 楼主| 发表于 2006-2-15 15:54:46 | 显示全部楼层 来自 中国–四川–成都

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

最先发现amxx的DOC文档作的很好,于是从amxx的DOC文档看起。。。


  1. get_players(players, num)
  2. new i
  3. for (i=0; i<num; i++)
  4. {
  5.        。。。
  6.        //Set this player's health
  7.          set_user_health(players[i], Health)
  8. 。。。
复制代码


但我没明白为什么要这样,于是去找其他的代码看。。。
JGHG的sentrygun插件
  1.         for(new i = 1; i <= g_MAXPLAYERS; i++) {
  2.                 if (!is_user_connected(i) || !is_user_bot(i) || !is_user_alive(i))
  3.                         continue

  4.                 sentry_build(i)
  5.                 asked++
  6.         }
复制代码

教程里面本身有些东西就有点嗦,于是认为这就是更简便的方法。。。
然后又去测试了一下,我又没服务器。。。就在本机上和电脑测试。。。也没出什么问题,

所以就这样用了。。。虽然从这之后这个插件不断有bug,但从来没想过这里有问题。。。后来写其他插件才发现原来的理解有问题,但是这里觉得好像也能工作正常于是就默认了,也懒得改了。。。

这样说。。。你清楚了吧。。。如果不介意。。。顺便解释一下第2段代码的用法吧。。。我想听听你的理解。


真不该删掉原来2楼的申明。。。 :confused:
回复

使用道具 举报

发表于 2006-2-15 15:54:56 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

看楼上吧。。。

确实阿。。我一开始就是把id当作useid的。。。后来用电脑测试一直出错。。。然后才发现和userid不一样,又后来,用get_players时就直接用了i。。。我去找找我见过直接用i的代码

骗你干嘛。。。老早就说了这是第一个插件。。。有很多东西都不太了解。。。在这样的基础上。。。

另外。。。谁给你说我是程序员了? 大学还没毕业呢。。。
而且不是只有程序员才会测试小模块,ok?

谦虚。。。我又怎么了。。。说实话也有错?
倒是我觉得你很不耿直, 你一直说我的ip精度有问题却从来不直接给我说。。。 :cold:

唉~~~
zhongjia:
我上次的确是说了3遍,还是点通这破论坛,我一拷贝你我对比的源代码就把我的浏览器搞死掉,生气了我就不说了,这点纯属误会啊,你都那么爽快告诉我相关的很多参数,我至于那么不耿直藏私吗?
你ip精度的问题归根结底也就是这个索引误解所引起的。涉及到了ip索引、惩罚索引、名字索引等等很多,说句老实话,我常看源代码,看你写的代码的确很痛苦。
我大学刚毕业的时候跟你一样的毛病,想到哪写到哪,没有统一的规划,在北京做石油勘探CGMTOOLS项目开发的时候,天天被高手扁,现在改了很多。
回复

使用道具 举报

发表于 2006-2-15 16:54:16 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

我正好也有你所说的sentrygun的源代码,这里是指的是bot的索引,非在线的用户,或许对机器人这么写可以吧,不过我觉得不应该提倡这样的写法,还是得利用get_players提出bot数组,然后再索引,这样程序代码的可读性强一些。
回复

使用道具 举报

 楼主| 发表于 2006-2-15 17:00:52 | 显示全部楼层 来自 中国–四川–成都

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

Post by zhongjia
我正好也有你所说的sentrygun的源代码,这里是指的是bot的索引,非在线的用户,或许对机器人这么写可以吧,不过我觉得不应该提倡这样的写法,还是得利用get_players提出bot数组,然后再索引,这样程序代码的可读性强一些。


我没骗你吧。。。
你想想如果你刚入门。。。看到这2种方法。。。而且简单测试之后发现都可以。。你选哪个?
回复

使用道具 举报

发表于 2006-2-16 13:47:42 | 显示全部楼层 来自 中国–海南–海口

回复: 【原创】娱乐型反作弊插件v1.1--2005-10-3

请教Enigmaya一个问题:

在sma的自己写的函数中,return PLUGIN_HANDLED和return PLUGIN_CONTINUE有什么区别?

在捡枪事件中,我用return PLUGIN_HANDLED返回,服务器运行一会就会崩溃,而改成return PLUGIN_CONTINUE就没事,还请指点一二。
回复

使用道具 举报

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

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