找回密码
 注册
搜索
楼主: freely@tj

终极大招,防flood研究

[复制链接]
门派:明教
发表于 2019-3-8 20:10:09 | 显示全部楼层
修整如下——

        if (l_waitTime>0.01) then
             EnableTimer('walkwait',false)
             wait.make(function()
                     wait.time(l_waitTime)
                         Execute(cmd)
                         if road.i<=table.getn(road.detail) then
                            if flag.walkwait then--加入标记判断,只有在计时器是打开状态,才将它重新打开
                               EnableTimer('walkwait',true)
                                            end
                         end
                         end)
门派:明教
发表于 2019-3-8 20:13:09 | 显示全部楼层
function walk_wait()
           flag.walkwait=true
       EnableTriggerGroup("walk",true)
           EnableTrigger("hp12",true)
           if tmp.find then
                 create_timer_s('walkWait',0.4,'walkTimer')
                  if cntr1() > 0 then
                     exe('alias action 正在赶路中')
                  else
                     cntr1 = countR(15)
                  end
           else
             create_timer_s('walkWait',0.1,'walkTimer')
           end
end

function walkTimer()
        if flag.walkwait then
    exe('alias action 正在赶路中')
        end
end
function walk_goon()
        flag.walkwait=false
        flag.walk=1
    EnableTriggerGroup("walk",false)
    EnableTimer('walkwait',false)
        EnableTrigger("hp12",false)
        if tmp.find then
       return searchFunc()
        end
        EnableTrigger("hp12",true)
    create_timer_s('roadWait',road.wait,'path_start')
end

虽然不能说完全杜绝多余的正在赶路中刷出,但已经减少了绝大部分,至于杜绝不了的,怀疑是秒计时器的问题,明明walk_goon都启动了,还是不能及时关闭,这大概就要按照楼主的方式改了!

总之我这也是提供一些参考意见,大家可以根据自己的情况选择。
门派:姑苏慕容
发表于 2019-3-8 20:14:54 | 显示全部楼层
freely@tj 发表于 2019-3-8 16:22
antiFlood=="duCjiang_start"
antiFlood=="duhe"
这两个在lujing.lua中发出就是这两个函数中加,但要加一 ...

楼猪可不可以把第一段话稍微说明白点,我看的头好昏
门派:武当派
 楼主| 发表于 2019-3-8 20:23:26 | 显示全部楼层
本帖最后由 freely@tj 于 2019-3-8 20:25 编辑
zhubang@tj 发表于 2019-3-8 19:24
DoAfterSpecial(1,'return AntiFloodTimer()',12)
这个12 是什么意思?
重复执行一边fuction  会不会比 ...


12 代表脚本引擎,就是说,第二个参数中的命令不是发往mud的,是发给脚本引擎再解释执行(说穿了就是脚本中定义的函数了)
门派:武当派
 楼主| 发表于 2019-3-8 20:24:05 | 显示全部楼层
laoduwu@tj 发表于 2019-3-8 19:34
require  这个命令放在哪里

require一般放在shujian.lua最顶部  
门派:武当派
 楼主| 发表于 2019-3-8 20:25:11 | 显示全部楼层
kkfromch@tj 发表于 2019-3-8 20:13
function walk_wait()
           flag.walkwait=true
       EnableTriggerGroup("walk",true)

版主这个修改很好,用road.detail表中的数量判断的确存在问题
门派:昆仑派
发表于 2019-3-8 20:27:01 | 显示全部楼层
kkfromch@tj 发表于 2019-3-8 20:13
function walk_wait()
           flag.walkwait=true
       EnableTriggerGroup("walk",true)

测试没问题吧                  
门派:明教
发表于 2019-3-8 21:02:02 | 显示全部楼层

跑得还可以,你也可以试试
门派:武当派
发表于 2019-3-8 22:59:50 | 显示全部楼层
zhaoziyu@tj 发表于 2019-3-8 11:40
任惊鸿,我帮你重新编辑一下,方便对MUSH不懂的筒子们
function exe(cmd)
    if GetConnectDuration() = ...

厉害啊!还是你说的清楚啊           我都加不来
门派:武当派
 楼主| 发表于 2019-3-9 00:04:13 | 显示全部楼层
合气问题解决:

function exe(cmd)
    if GetConnectDuration() == 0 then
       return Connect()
    end
        if job.name and job.name=="huashan" and job.id and string.find(cmd,job.id) then return Execute(cmd) end

加上上面一句即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-17 12:02 , Processed in 0.033418 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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