Jelentkezz be, hogy követhesd  
Követő(k) 0
HUMROLI1

Anti Flood CMD

9 hozzászólás ebben a témában

Hogy tudnám azt megoldani hogy van egy commandom és a command le legyen korlátozva azaz 5 mp-be csak egyszer lehessen használni? Előre is köszönöm a válaszokat.

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon

Több megoldás is létezik, Elindítasz egy timert, elszámoltatod x-ig a scripted és utána történik valami vagy getTickCount segítségével vizsgálsz időt. :)

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon

Belekell írni a függvény elejébe, hogy nézze meg mikor futott le legutóbb és a mostani idő között mennyi idő telt el. Ezt a getTickCount-tal kérheted le. (milliszekundumban adja vissza az időt)

pl.:

local lastCall = 0 
function fuggveny ()
    if ( (getTickCount() - lastCall) <= 5000 ) then --5000, mert milliszekundumban van adja a vissza a getTickCount()
        return --a függvény futása itt megszakad
    end

    --Csinálja a dolgát ...
end
addCommandHandler("valami", getRootElement(), fuggveny)

Edit: Hopp, míg írtam AlexSwamp is megírta a megoldást

1 személy kedveli ezt

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon

local commandSpam = {}
addEventHandler("onPlayerCommand", root,
    function(cmd)
        if not(commandSpam[source]) then
            commandSpam[source] = 1
        elseif (commandSpam[source] >= 5) then
            cancelEvent()
		outputChatBox("(( Másodpercenként csak 5 parancsot használhatsz! ))", source, 255, 255, 255)
            commandSpam[source] = commandSpam[source]+1
        else
            commandSpam[source] = commandSpam[source]+1
        end
    end
)
setTimer(function() commandSpam = {} end, 1000, 0)

Ezt is ajánlom neked :)

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon

Belekell írni a függvény elejébe, hogy nézze meg mikor futott le legutóbb és a mostani idő között mennyi idő telt el. Ezt a getTickCount-tal kérheted le. (milliszekundumban adja vissza az időt)

pl.:

local lastCall = 0 
function fuggveny ()
    if ( (getTickCount() - lastCall) <= 5000 ) then --5000, mert milliszekundumban van adja a vissza a getTickCount()
        return --a függvény futása itt megszakad
    end

    --Csinálja a dolgát ...
end
addCommandHandler("valami", getRootElement(), fuggveny)

Edit: Hopp, míg írtam AlexSwamp is megírta a megoldást

Attól függetlenül még jó, hogy leírtam előtted. :D Mondjuk én akkor már úgy javaslom neki, hogy készít egy olyan function-t amit utána megtud hívni a parancsoknál, ezzel pedig úgymond készít minden parancsnak egy gyors vázat (pl, szolgálatban kell lennie, adminszint, anti flood, stb). :D Szépen meglehet okoskodni az egészet és még átláthatóbb is lesz az egész. :D

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon

Persze. Ennél csak jobb megoldások vannak, de elsőnek a legegyszerűbbet akartam leírni neki :D

1 személy kedveli ezt

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon

Persze. Ennél csak jobb megoldások vannak, de elsőnek a legegyszerűbbet akartam leírni neki :D

Teljesen rendben is volt amúgy a megoldás! :D

Megosztás


Megosztás link alapján
Megosztás egy közösségi oldalon
Vendég
A téma le van zárva, így nem szólhatsz hozzá!
Jelentkezz be, hogy követhesd  
Követő(k) 0