Autor: Mateusz
Jako, i? Asta zainspirowa? mnie do skryptu blokuj?cego Magebomb, postanowi?em go zrobi? i wam tu zaprezentowa?. Oczywi?cie system ma wiele funkcji.
Tylko TheForgottenServer 0.3.4+!
Najwa?niejsze funkcje:
Instalacja
Otw?rz creaturescripts/scripts/login.lua i nad:
wklej:
Za? od razu po:
wklej:
Modyfikujemy jedynie warto?ci na samym pocz?tku! Modyfikowanie reszty mo?e uszkodzi? skrypt.
Zapisujemy plik i obserwujemy zabezpieczenie.
Skrypt zosta? przetestowany - dzia?a w 100%
Jako, i? Asta zainspirowa? mnie do skryptu blokuj?cego Magebomb, postanowi?em go zrobi? i wam tu zaprezentowa?. Oczywi?cie system ma wiele funkcji.
Tylko TheForgottenServer 0.3.4+!
Najwa?niejsze funkcje:
- Mo?liwo?? ustawienia ilo?ci graczy z jednego IP
- Automatyczna blokada konta
- Automatyczna blokada IP
- ?atwy do ustawienia czas trwania bana
- Czas bana oddzielnie dla blokady konta i IP
- 1% pomy?ek
- Mo?liwo?? ustawienia czasu, w kt?rym potencjalne zalogowanie z tego samego IP jest traktowane jako MageBomb
- Tak?e mo?na u?ywa? jako Anty Multi-Client
Instalacja
Otw?rz creaturescripts/scripts/login.lua i nad:
PHP:
function onLogin(cid)
PHP:
------- KONFIGURACJA ----------
local antyMagebombEnabled = 1 -- czy wlaczyc AntyMagebomb? / 0 by zablokowac
local maxClientsFromIp = 0 -- maksymalna liczba graczy z jednego ip / wpisz 0, by zablokowac
local loginPeriodSeconds = 1 -- po co najmniej ilu sekundach dozwolone zalogowanie z tego samego ip
local banAutoMagebombAccount = 1 -- automatyczna banicja KONTA Magebomb? / 0 by zablokowac
local banAutoMagebombIp = 1 -- automatyczna banicja IP Magebomb? / 0 by zablokowac
local banAccountPeriod = 2 * 60 * 60 -- w sekundach czas bana, domyslnie 2H
local banIpPeriod = 2 * 60 * 60 -- w sekundach czas bana, domyslnie 2H
------- / KONFIGURACJA --------
local last_login = os.time(t)
local last_ipaddr = 0
local magebomb_count = 0
local last_guid = 0
local last_account = 0
Za? od razu po:
PHP:
function onLogin(cid)
PHP:
if antyMagebombEnabled == 1 then
local now = os.time(t)
local ip = getPlayerIp(cid)
local guid = getPlayerGUID(cid)
local gracz = getCreatureName(cid)
local playeracc = getAccountIdByName(gracz)
if(ip==last_ipaddr and last_guid ~= guid and last_account ~= playeracc) then
if(last_login+loginPeriodSeconds > now) then
magebomb_count = magebomb_count + 1
if magebomb_count > 1 then
if banAutoMagebombAccount == 1 then
doAddBanishment(playeracc, banAccountPeriod, 11, 2, 'Banished by AntyMagebomb System by Mateusz', 0)
end
if banAutoMagebombIp == 1 then
doAddIpBanishment(ip, 4294967295, banIpPeriod, "Detected by AntyMagebomb System by Mateusz")
end
end
return FALSE -- wyrzuca z gry
else
magebomb_count = 0
end
else
magebomb_count = 0
end
if maxClientsFromIp > 0 then
local list = {}
local ips = {}
local players = getPlayersOnline()
local i = 0
for i, pid in ipairs(players) do
local ip = getPlayerIp(pid)
local name = getCreatureName(pid)
local tmp = table.find(ips, ip)
if(tmp ~= nil) then
if(table.countElements(list, ip) == 0) then
list[players[tmp]] = ip
end
list[pid] = ip
end
table.insert(ips, ip)
end
if(table.maxn(list) > 0) then
for pid, ip in pairs(list) do
if getPlayerIp(cid) == ip then
i=i+1
end
end
end
if i > maxClientsFromIp and maxClientsFromIp > 0 then -- sprawdzanie ilosci graczy z tym samym IP
doPlayerPopupFYI(cid,'Sorry, only 3 multi-clients allowed (from one IP), not more!')
return FALSE
end
end
end
last_ipaddr = getPlayerIp(cid)
last_login = os.time(t)
last_guid = getPlayerGUID(cid)
last_account = playeracc
Modyfikujemy jedynie warto?ci na samym pocz?tku! Modyfikowanie reszty mo?e uszkodzi? skrypt.
Zapisujemy plik i obserwujemy zabezpieczenie.