Focker Posted August 2, 2015 Share Posted August 2, 2015 Hello everyone, I mainly want to help me with script that is not mine, it's actually a fellow named xXMADEXx I have added to Skype and does not help me because they do not have much free time, so I ask all the privacy of this script, what I need is to walk this ban system with admin panel, because this system goes only to the admin panel of Nerd Gaming, And I want to make it work with the panel P common.. I want the punishment to be exported P panel. Titles for xXMADEXx "Or if I would have a similar system to help me get this systema" It is a similar system to that of cit Client: local ban = nil local sx, sy = guiGetScreenSize ( ) local rsx, rsy = sx, sy local sx, sy = sx/1280, sy/960 local open = false local banY = -(rsy/1.2) local font_size =(sx+sy) function drawBanScreen ( ) if not startTime then startTime = getTickCount ( ) end if not endTime then endTime = getTickCount ( ) + 3500 end local now = getTickCount() local elapsedTime = now - startTime local duration = endTime - startTime local progress = elapsedTime / duration local _, y, _ = interpolateBetween ( 0, -(rsy/1.2), 0, 0, 0, 0, progress, "OutBack" ) banY = y dxDrawBoarderedText("Baned Nerd Gaming", 0, banY, sx*1280, banY+sy*98, tocolor(255, 0, 0, 255), 2, "default", "center", "center", false, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*189, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("SERIAL:", sx*103, banY+sy*189, sx*239, banY+sy*229, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*189, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.serial, sx*259, banY+sy*189, sx*812, banY+sy*229, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*249, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("IP:", sx*103, banY+sy*249, sx*239, banY+sy*289, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*249, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.ip, sx*259, banY+sy*249, sx*812, banY+sy*289, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*309, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("Acount:", sx*103, banY+sy*309, sx*239, banY+sy*349, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*309, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.account, sx*259, banY+sy*309, sx*812, banY+sy*349, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*369, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("BAN Until:", sx*103, banY+sy*369, sx*239, banY+sy*409, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*369, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.unban, sx*259, banY+sy*369, sx*812, banY+sy*409, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*429, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("BANED:", sx*103, banY+sy*429, sx*239, banY+sy*469, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*429, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.banned_on, sx*259, banY+sy*429, sx*812, banY+sy*469, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*489, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("BAN FOR :", sx*103, banY+sy*489, sx*239, banY+sy*529, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*489, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.banner, sx*259, banY+sy*489, sx*812, banY+sy*529, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*87, banY+sy*549, sx*152, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText("Themes:", sx*103, banY+sy*549, sx*239, banY+sy*589, tocolor(255, 0, 0, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawRectangle(sx*249, banY+sy*549, sx*563, sy*40, tocolor(0, 0, 0, 0), true) dxDrawText(ban.reason, sx*259, banY+sy*549, sx*812, banY+sy*589, tocolor(0, 255, 9, 255), font_size, "default", "left", "center", true, false, true, false, false) dxDrawBoarderedText("APPEAL BAN Nerd Gaming.NET", sx*330, banY+sy*609, sx*812, banY+sy*649, tocolor(255, 0, 0, 255), 2, "default", "center", "center", true, false, true, false, false, 0, 0, 0, 2) end addEvent ( "NGBans:OpenClientBanScreen", true ) addEventHandler ( "NGBans:OpenClientBanScreen", root, function ( d ) ban = d if ( tonumber ( ban.unban_month ) and tonumber ( ban.unban_month ) < 10 ) then ban.unban_month = "0"..ban.unban_month end if ( tonumber ( ban.unban_day ) and tonumber ( ban.unban_day ) < 10 ) then ban.unban_day = "0"..ban.unban_day end ban.unban = table.concat ({ tostring(ban.unban_year), tostring(ban.unban_month), tostring(ban.unban_day) }, "-" ) if ( tostring ( ban.unban ):upper() == "NIL" ) then ban.unban = "Forever" end if open then return end open = true addEventHandler ( "onClientPreRender", root, drawBanScreen ) end ) function dxDrawBoarderedText ( text, x, y, endX, endY, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) local text = tostring ( text ) local x = tonumber(x) or 0 local y = tonumber(y) or 0 local endX = tonumber(endX) or x local endY = tonumber(endY) or y local color = color or tocolor ( 255, 255, 255, 255 ) local size = tonumber(size) or 1 local font = font or "default" local alignX = alignX or "left" local alignY = alignY or "top" local clip = clip or false local wordBreak = wordBreak or false local postGUI = postGUI or false local colorCode = colorCode or false local subPixelPos = subPixelPos or false local fRot = tonumber(fRot) or 0 local fRotCX = tonumber(fRotCX) or 0 local fRotCY = tonumber(fRotCy) or 0 local offSet = tonumber(offSet) or 1 local t_g = text:gsub ( "#%x%x%x%x%x%x", "" ) dxDrawText ( t_g, x-offSet, y-offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) dxDrawText ( t_g, x-offSet, y, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) dxDrawText ( t_g, x, y-offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) dxDrawText ( t_g, x+offSet, y+offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) dxDrawText ( t_g, x+offSet, y, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) dxDrawText ( t_g, x, y+offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) return dxDrawText ( text, x, y, endX, endY, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) end Server: local bans = { } -- All bans are saved here, until server save, or this resource stops --[[ bans table format: bans[serial] = { serial = user serial, ip = user ip, account = user account, unban_day = unban day, unban_month = unban month, unban_year = unban year, reason = reason, banner = the person who banned, banned_on = when the user was banned } ]] --executeSQLQuery("DROP TABLE ban_system") executeSQLQuery("CREATE TABLE IF NOT EXISTS ban_system (id INTEGER PRIMARY KEY, serial TEXT, ip TEXT, account TEXT,unban_day TEXT,unban_month TEXT,unban_year TEXT,banner TEXT,reason TEXT,banned_on TEXT)") addEventHandler ( "onResourceStart", resourceRoot, function ( ) --exports.NGSQL:db_exec ( "CREATE TABLE IF NOT EXISTS ban_system ( serial TEXT, ip TEXT, account TEXT, unban_day INT, unban_month INT, unban_year INT, banner TEXT, reason TEXT, banned_on DATE )" ); -- Load the bans local q = executeSQLQuery("SELECT * FROM ban_system") --local q = exports.NGSQL:db_query ( "SELECT * FROM ban_system" ); if ( q and type ( q ) == "table" ) then for i, v in pairs ( q ) do local data = { } for ind, var in pairs ( v ) do data[ind] = var if ( ind == "unban_day" or ind == "unban_month" or ind == "unban_year" ) then data[ind] = tonumber ( var ) end end bans[v.serial] = data isSerialBanned ( v.serial ) end end setTimer ( function ( ) local playerSerials = { } for i, v in pairs ( getElementsByType ( "player" ) ) do playerSerials[getPlayerSerial(v)] = v end for i, v in pairs ( bans ) do if ( playerSerials [ v.serial ] ) then loadBanScreenForPlayer ( playerSerials [ v.serial ] ) end end playerSerials = nil end, 500, 1 ) end ) function banAccount ( acc, ban_day, unban_month, ban_year, reason, banner ) local reason = reason or "Not defined" local banner = banner or "Server" local d = executeSQLQuery("SELECT * FROM accountdata WHERE Username=?", acc) if ( d and type ( d ) == "table" and table.len ( d ) == 1 ) then local d = d [ 1 ] local ser = d['LastSerial'] local ip = d['LastIP'] local ban_day = tonumber ( ban_day ) or 1 local unban_month = tonumber ( unban_month ) or 1 local ban_year = tonumber ( ban_year ) or 2015 bans[ser] = { serial = ser, ip = ip, account = acc, unban_day = ban_day, unban_month = unban_month, unban_year = ban_year, reason = reason, banner = banner, banned_on = exports.NGPlayerFunctions:getToday() } for i, v in pairs ( getElementsByType ( "player" ) ) do local a = getPlayerAccount ( v ) if ( not isGuestAccount ( a ) and getAccountName ( a ) == acc ) then kickPlayer ( v, "Reconectando algo paso" ) break end end end end function isSerialBanned ( serial ) if ( bans [ serial ] ) then local isBanContinuted = false local today = today ( ) local d = bans [ serial ] if ( tostring(d.unban_year):upper() == "NIL" or tostring(d.unban_month):upper() == "NIL" or tostring(d.unban_day):upper() == "NIL" ) then return true end local unbanMeth = "" if ( d.unban_year > today.year ) then isBanContinuted = true unbanMeth = 1 elseif ( d.unban_year == today.year and d.unban_month > today.month ) then isBanContinuted = true unbanMeth = 2 elseif ( d.unban_year == today.year and d.unban_month == today.month and d.unban_day > today.day ) then isBanContinuted = true unbanMeth = 3 end if ( not isBanContinuted ) then bans [ serial ] = nil return false end -- try to detect the player for i, v in pairs ( getElementsByType ( "player" ) ) do if ( getPlayerSerial ( v ) == serial ) then loadBanScreenForPlayer ( v ) break end end return true end end function loadBanScreenForPlayer ( player ) toggleAllControls ( player, false ) showChat ( player, false ) setPlayerHudComponentVisible ( player, 'all', false ) setElementData ( player, "Online", "Banned" ) setElementData ( player, "Zona", "Banned" ) setElementData ( player, "Ocupacion", "Banned" ) setElementData ( player, "Dinero", "Banned" ) setElementData ( player, "Usuario Lvl(Respeto)", "Banned" ) setElementData ( player, "Gang", "Banned" ) local d = bans [ getPlayerSerial ( player ) ] local banInfo = { account = d.account, ip = d.ip, serial = d.serial, reason = d.reason, banner = d.banner, unban_day = d.unban_day, unban_month = d.unban_month, unban_year = d.unban_year, banned_on = d.banned_on } for i, v in pairs ( banInfo ) do banInfo [ i ] = tostring ( v ) end triggerClientEvent ( player, "NGBans:OpenClientBanScreen", player, banInfo ) end addEventHandler ( "onPlayerLogin", root, function ( ) local s = getPlayerSerial ( source ) if ( bans [ s ] ) then kickPlayer ( source, "Ya! Estas Ban." ) end end ) function unbanAccount ( acc ) local rV = false for i, v in pairs ( bans ) do if ( v.account == acc ) then bans[i] = nil rV = true break end end return rV end function saveBans ( ) executeSQLQuery("DELETE FROM ban_system") local c = 0 for i, v in pairs ( bans ) do executeSQLQuery("INSERT INTO ban_system (serial, ip, account, unban_day, unban_month, unban_year, banner, reason, banned_on ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? )", --exports.NGSQL:db_exec ( "INSERT INTO ban_system ( serial, ip, account, unban_day, unban_month, unban_year, banner, reason, banned_on ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? )", v.serial, v.ip, v.account, v.unban_day, v.unban_month, v.unban_year, v.banner, v.reason, v.banned_on ) c = c + 1 end return c end addEventHandler ( "onResourceStop", resourceRoot, saveBans ) -- misc functions function today ( ) local d = getRealTime ( ) local day = d.monthday local month = d.month + 1 local year = d.year + 1900 return { year=year, day=day, month=month } end function table.len ( t ) local c = 0; for i, v in pairs ( t ) do c = c + 1 end return c end meta: "xXMADEXx" type="script" version="1.0" name="Nerd Gaming User Banning System" /> Link to comment
GTX Posted August 2, 2015 Share Posted August 2, 2015 You already have exported functions, go to admin_server.lua (I don't know exact name of file) and the export in the correct place. exports["nameOfYourResource"]:banAccount(getPlayerAccount(player), 1, 1, 2016, "Hacking", "Me") -- Example. Note that this only works for account names. Player must be logged in. I'd prefer making your own ban system if you don't have/use login system. Link to comment
Focker Posted August 2, 2015 Author Share Posted August 2, 2015 I get this error debugscript: ERROR:[bans]NGBans\bans_server.lua:58: Database query failed: no such table: accountdata Bad argument @ 'getPlayerAccount' [Expected element at argument 1,got string' Focker'] Link to comment
GTX Posted August 2, 2015 Share Posted August 2, 2015 It means you don't have table created. And read what I told you, don't just put the line I gave you somewhere. Your second error means you are not passing a player, but a string. Use getPlayerFromName Link to comment
Focker Posted August 2, 2015 Author Share Posted August 2, 2015 admin error took off but still Ban ERROR:[bans]NGBans\bans_server.lua:58: Database query failed: no such table: accountdata Link to comment
GTX Posted August 2, 2015 Share Posted August 2, 2015 Your database table is not created. Person who made this script should know the structure, ask him. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now