What's new

Creaturescripts Anty Magebomb

Status
Not open for further replies.

Forseti

Senior User
Joined
Dec 23, 2011
Messages
954
Reaction score
82
Autor: Mateusz

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)
wklej:
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)
wklej:
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.
 
Status
Not open for further replies.
Top