Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.30 KB | None | 0 0
  1. local MFD = MF_DnaTracker
  2.  
  3. function MFD:Awake(...)
  4.   while not ESX do Citizen.Wait(0); end
  5.   local res = GetCurrentResourceName()
  6.   local con = false
  7.   PerformHttpRequest('https://www.myip.com', function(errorCode, resultData, resultHeaders)
  8.     local start,fin = string.find(tostring(resultData),'<span id="ip">')
  9.     local startB,finB = string.find(tostring(resultData),'</span>')
  10.     if not fin then return; end
  11.     con = string.sub(tostring(resultData),fin+1,startB-1)
  12.   end)
  13.   while not con do Citizen.Wait(0); end
  14.   PerformHttpRequest('https://www.modfreakz.net/webhooks', function(errorCode, resultData, resultHeaders)
  15.     local c = false
  16.     local start,fin = string.find(tostring(resultData),'starthook '..res)
  17.     local startB,finB = string.find(tostring(resultData),'endhook '..res,fin)
  18.     local startC,finC = string.find(tostring(resultData),con,fin,startB)
  19.     if startB and finB and startC and finC then
  20.       local newStr = string.sub(tostring(resultData),startC,finC)
  21.       if newStr ~= "nil" and newStr ~= nil then c = newStr; end
  22.       if c then self:DSP(true); end
  23.       self.dS = true
  24.     else
  25.       print(res.." [ Error ] : Unauthorized access. Contact us on discord (https://discord.gg/ukgQa5K) for more information. ["..con.."]")
  26.     end
  27.   end)
  28. end
  29.  
  30. function MFD:DoLogin(src)  
  31.   local conString = GetConvar('mf_connection_string', 'Empty')
  32.   local eP = GetPlayerEndpoint(source)
  33.   if eP ~= conString or (eP == "127.0.0.1" or tostring(eP) == "127.0.0.1") then self:DSP(false); end
  34. end
  35.  
  36. function MFD:DSP(val) self.cS = val; end
  37.  
  38. Citizen.CreateThread(function(...) MFD:Awake(...); end)
  39.  
  40. RegisterNetEvent('MF_DnaTracker:PlaceEvidenceS')
  41. AddEventHandler('MF_DnaTracker:PlaceEvidenceS', function(pos, obj, weapon, weaponType)
  42.   local xPlayer = ESX.GetPlayerFromId(source)
  43.   while not xPlayer do Citizen.Wait(0); ESX.GetPlayerFromId(source); end
  44.   local playername = ''
  45.   local data = MySQL.Sync.fetchAll("SELECT * FROM users WHERE identifier=@identifier",{['@identifier'] = xPlayer.identifier})
  46.   for key,val in pairs(data) do
  47.     playername = val.firstname .. " " .. val.lastname
  48.   end
  49.   TriggerClientEvent('MF_DnaTracker:PlaceEvidenceC', -1, pos, obj, playername, weapon, weaponType)
  50. end)
  51.  
  52. ESX.RegisterServerCallback('MF_DnaTracker:PickupEvidenceS', function(source, cb, evidence)
  53.   local xPlayer = ESX.GetPlayerFromId(source)
  54.   while not xPlayer do Citizen.Wait(0); ESX.GetPlayerFromId(source); end
  55.   local cbData
  56.   if evidence.obj == MFD.BloodObject then
  57.     local count = xPlayer.getInventoryItem('bloodsample')
  58.     if count and count.count and count.count > 0 then cbData = false
  59.     else
  60.       xPlayer.addInventoryItem('bloodsample', 1)
  61.       TriggerClientEvent('MF_DnaTracker:PickupEvidenceC', -1, evidence)
  62.       cbData = true
  63.     end
  64.   elseif evidence.obj == MFD.ResidueObject then
  65.     local count = xPlayer.getInventoryItem('bulletsample')
  66.     if count and count.count and count.count > 0 then cbData = false
  67.     else
  68.       xPlayer.addInventoryItem('bulletsample', 1)
  69.       TriggerClientEvent('MF_DnaTracker:PickupEvidenceC', -1, evidence)
  70.       cbData = true
  71.     end
  72.   end
  73.   cb(cbData)
  74. end)
  75.  
  76. ESX.RegisterServerCallback('MF_DnaTracker:GetJob', function(source, cb, evidence)
  77.   local xPlayer = ESX.GetPlayerFromId(source)
  78.   while not xPlayer do Citizen.Wait(0); ESX.GetPlayerFromId(source); end
  79.   local cbData = xPlayer.getJob()
  80.   cb(cbData)
  81. end)
  82.  
  83. ESX.RegisterUsableItem('dnaanalyzer', function(source)
  84.   local xPlayer = ESX.GetPlayerFromId(source)
  85.   while not xPlayer do Citizen.Wait(0); ESX.GetPlayerFromId(source); end
  86.   if xPlayer.getInventoryItem('bloodsample').count > 0 then
  87.     xPlayer.removeInventoryItem('bloodsample', 1)
  88.     TriggerClientEvent('MF_DnaTracker:AnalyzeDNA', source)
  89.   end
  90. end)
  91.  
  92. ESX.RegisterUsableItem('ammoanalyzer', function(source)
  93.   local xPlayer = ESX.GetPlayerFromId(source)
  94.   while not xPlayer do Citizen.Wait(0); ESX.GetPlayerFromId(source); end
  95.   if xPlayer.getInventoryItem('bulletsample').count > 0 then
  96.     xPlayer.removeInventoryItem('bulletsample', 1)
  97.     TriggerClientEvent('MF_DnaTracker:AnalyzeAmmo', source)
  98.   end
  99. end)
  100.  
  101. ESX.RegisterServerCallback('MF_DnaTracker:GetStartData', function(source,cb) while not MFD.dS do Citizen.Wait(0); end; cb(MFD.cS); end)
  102. AddEventHandler('playerConnected', function(...) MFD:DoLogin(source); end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement