Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 17.07 KB | None | 0 0
  1. --==================================================================================
  2. --======               ESX_IDENTITY BY ARKSEYONET @Ark                        ======
  3. --======    YOU CAN FIND ME ON MY DISCORD @Ark - https://discord.gg/cGHHxPX   ======
  4. --======    IF YOU ALTER THIS VERSION OF THE SCRIPT, PLEASE GIVE ME CREDIT    ======
  5. --======            Special Thanks To COSHAREK FOR THE UI Design              ======
  6. --======     Special Thanks To Alphakush and CMD.Telhada For Help Testing     ======
  7. --==================================================================================
  8.  
  9. --===================================================================
  10. --==                        MAIN FUNCTIONS                         ==
  11. --===================================================================
  12.  
  13. --===============================================
  14. --==     Get The Player's Identification       ==
  15. --===============================================
  16. function getIdentity(source, callback)
  17.     local identifier = GetPlayerIdentifiers(source)[1]
  18.     MySQL.Async.fetchAll("SELECT * FROM `users` WHERE `identifier` = @identifier",
  19.     {
  20.         ['@identifier'] = identifier
  21.     },
  22.     function(result)
  23.         if result[1]['firstname'] ~= nil then
  24.             local data = {
  25.                 identifier  = result[1]['identifier'],
  26.                 firstname   = result[1]['firstname'],
  27.                 lastname    = result[1]['lastname'],
  28.                 dateofbirth = result[1]['dateofbirth'],
  29.                 sex         = result[1]['sex'],
  30.                 height      = result[1]['height']
  31.             }
  32.            
  33.             callback(data)
  34.         else   
  35.             local data = {
  36.                 identifier  = '',
  37.                 firstname   = '',
  38.                 lastname    = '',
  39.                 dateofbirth = '',
  40.                 sex         = '',
  41.                 height      = ''
  42.             }
  43.            
  44.             callback(data)
  45.         end
  46.     end)
  47. end
  48.  
  49. --===============================================
  50. --==     Get The Player's Identification       ==
  51. --===============================================
  52. function getCharacters(source, callback)
  53.     local identifier = GetPlayerIdentifiers(source)[1]
  54.     MySQL.Async.fetchAll("SELECT * FROM `characters` WHERE `identifier` = @identifier",
  55.     {
  56.         ['@identifier'] = identifier
  57.     },
  58.     function(result)
  59.         if result[1] and result[2] and result[3] then
  60.             local data = {
  61.                 identifier      = result[1]['identifier'],
  62.                 firstname1      = result[1]['firstname'],
  63.                 lastname1       = result[1]['lastname'],
  64.                 dateofbirth1    = result[1]['dateofbirth'],
  65.                 sex1            = result[1]['sex'],
  66.                 height1         = result[1]['height'],
  67.                 firstname2      = result[2]['firstname'],
  68.                 lastname2       = result[2]['lastname'],
  69.                 dateofbirth2    = result[2]['dateofbirth'],
  70.                 sex2            = result[2]['sex'],
  71.                 height2         = result[2]['height'],
  72.                 firstname3      = result[3]['firstname'],
  73.                 lastname3       = result[3]['lastname'],
  74.                 dateofbirth3    = result[3]['dateofbirth'],
  75.                 sex3            = result[3]['sex'],
  76.                 height3         = result[3]['height']
  77.             }
  78.            
  79.             callback(data)
  80.         elseif result[1] and result[2] and not result[3] then
  81.             local data = {
  82.                 identifier      = result[1]['identifier'],
  83.                 firstname1      = result[1]['firstname'],
  84.                 lastname1       = result[1]['lastname'],
  85.                 dateofbirth1    = result[1]['dateofbirth'],
  86.                 sex1            = result[1]['sex'],
  87.                 height1         = result[1]['height'],
  88.                 firstname2      = result[2]['firstname'],
  89.                 lastname2       = result[2]['lastname'],
  90.                 dateofbirth2    = result[2]['dateofbirth'],
  91.                 sex2            = result[2]['sex'],
  92.                 height2         = result[2]['height'],
  93.                 firstname3      = '',
  94.                 lastname3       = '',
  95.                 dateofbirth3    = '',
  96.                 sex3            = '',
  97.                 height3         = ''
  98.             }
  99.            
  100.             callback(data)
  101.         elseif result[1] and not result[2] and not result[3] then
  102.             local data = {
  103.                 identifier      = result[1]['identifier'],
  104.                 firstname1      = result[1]['firstname'],
  105.                 lastname1       = result[1]['lastname'],
  106.                 dateofbirth1    = result[1]['dateofbirth'],
  107.                 sex1            = result[1]['sex'],
  108.                 height1         = result[1]['height'],
  109.                 firstname2      = '',
  110.                 lastname2       = '',
  111.                 dateofbirth2    = '',
  112.                 sex2            = '',
  113.                 height2         = '',
  114.                 firstname3      = '',
  115.                 lastname3       = '',
  116.                 dateofbirth3    = '',
  117.                 sex3            = '',
  118.                 height3         = ''
  119.             }
  120.            
  121.             callback(data)
  122.         else
  123.             local data = {
  124.                 identifier      = '',
  125.                 firstname1      = '',
  126.                 lastname1       = '',
  127.                 dateofbirth1    = '',
  128.                 sex1            = '',
  129.                 height1         = '',
  130.                 firstname2      = '',
  131.                 lastname2       = '',
  132.                 dateofbirth2    = '',
  133.                 sex2            = '',
  134.                 height2         = '',
  135.                 firstname3      = '',
  136.                 lastname3       = '',
  137.                 dateofbirth3    = '',
  138.                 sex3            = '',
  139.                 height3         = ''
  140.             }
  141.            
  142.             callback(data)
  143.         end
  144.     end)
  145. end
  146.  
  147. --===============================================
  148. --==    Set The Player's Identification        ==
  149. --===============================================
  150. function setIdentity(identifier, data, callback)
  151.   MySQL.Async.execute("UPDATE `users` SET `firstname` = @firstname, `lastname` = @lastname, `dateofbirth` = @dateofbirth, `sex` = @sex, `height` = @height WHERE identifier = @identifier",
  152.     {
  153.       ['@identifier']   = identifier,
  154.       ['@firstname']    = data.firstname,
  155.       ['@lastname']     = data.lastname,
  156.       ['@dateofbirth']  = data.dateofbirth,
  157.       ['@sex']          = data.sex,
  158.       ['@height']       = data.height
  159.     },
  160.     function(done)
  161.         if callback then
  162.             callback(true)
  163.         end
  164.     end)
  165.    
  166.     MySQL.Async.execute(
  167.         'INSERT INTO characters (identifier, firstname, lastname, dateofbirth, sex, height) VALUES (@identifier, @firstname, @lastname, @dateofbirth, @sex, @height)',
  168.         {
  169.             ['@identifier'] = identifier,
  170.             ['@firstname']  = data.firstname,
  171.             ['@lastname']   = data.lastname,
  172.             ['@dateofbirth'] = data.dateofbirth,
  173.             ['@sex']        = data.sex,
  174.             ['@height']     = data.height
  175.         })
  176. end
  177.  
  178. --===============================================
  179. --==  Update The Player's Identification       ==
  180. --===============================================
  181. function updateIdentity(identifier, data, callback)
  182.   MySQL.Async.execute("UPDATE `users` SET `firstname` = @firstname, `lastname` = @lastname, `dateofbirth` = @dateofbirth, `sex` = @sex, `height` = @height WHERE identifier = @identifier",
  183.     {
  184.       ['@identifier']   = identifier,
  185.       ['@firstname']    = data.firstname,
  186.       ['@lastname']     = data.lastname,
  187.       ['@dateofbirth']  = data.dateofbirth,
  188.       ['@sex']          = data.sex,
  189.       ['@height']       = data.height
  190.     },
  191.     function(done)
  192.         if callback then
  193.             callback(true)
  194.         end
  195.     end)
  196. end
  197.  
  198. --===============================================
  199. --==  Delete The Player's Identification       ==
  200. --===============================================
  201. function deleteIdentity(identifier, data, callback)
  202.   MySQL.Async.execute("DELETE FROM `characters` WHERE identifier = @identifier AND firstname = @firstname AND lastname = @lastname AND dateofbirth = @dateofbirth AND sex = @sex AND height = @height",
  203.     {
  204.       ['@identifier']   = identifier,
  205.       ['@firstname']    = data.firstname,
  206.       ['@lastname']     = data.lastname,
  207.       ['@dateofbirth']  = data.dateofbirth,
  208.       ['@sex']          = data.sex,
  209.       ['@height']       = data.height
  210.     },
  211.     function(done)
  212.         if callback then
  213.             callback(true)
  214.         end
  215.     end)
  216. end
  217.  
  218. --===============================================
  219. --==       Server Event Set Identity           ==
  220. --===============================================
  221. RegisterServerEvent('esx_identity:setIdentity')
  222. AddEventHandler('esx_identity:setIdentity', function(data)
  223.     local identifier = GetPlayerIdentifiers(source)[1]
  224.     setIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  225.         if callback == true then
  226.             print('Successfully Set Identity For ' .. identifier)
  227.         else
  228.             print('Failed To Set Identity.')
  229.         end
  230.     end)
  231. end)
  232.  
  233. --===============================================
  234. --==       Player Loaded Event Handler         ==
  235. --===============================================
  236. AddEventHandler('es:playerLoaded', function(source)
  237.     getIdentity(source, function(data)
  238.         if data.firstname == '' then
  239.             TriggerClientEvent('esx_identity:showRegisterIdentity', source)
  240.         else
  241.             print('Successfully Loaded Identity For ' .. data.firstname .. ' ' .. data.lastname)
  242.         end
  243.     end)
  244. end)
  245.  
  246. --===================================================================
  247. --==                         MAIN COMMANDS                         ==
  248. --===================================================================
  249.  
  250. --===============================================
  251. --==      /charlist - Show Your Characters     ==
  252. --===============================================
  253. TriggerEvent('es:addGroupCommand', 'idhelp', "user", function(source, args, user)
  254.     TriggerClientEvent('chatMessage', source, 'IDHelp', {255, 0, 0}, "ESX_IDENTITY Commands")
  255.     TriggerClientEvent('chatMessage', source, 'IDHelp', {255, 0, 0}, "/register - Register A New Character")
  256.     TriggerClientEvent('chatMessage', source, 'IDHelp', {255, 0, 0}, "/charlist - List Your Characters")
  257.     TriggerClientEvent('chatMessage', source, 'IDHelp', {255, 0, 0}, "/charselect 1,2,3 - Change Your Active Character")
  258.     TriggerClientEvent('chatMessage', source, 'IDHelp', {255, 0, 0}, "/delchar 1,2,3 - Delete A Character")
  259. end, function(source, args, user)
  260.     TriggerClientEvent('chatMessage', source, "IDHelp", {255, 0, 0}, "Insufficienct permissions!")
  261. end, {help = "List Your Characters"})
  262.  
  263.  
  264. --===============================================
  265. --==      /register - Open Registration        ==
  266. --===============================================
  267. TriggerEvent('es:addCommand', 'register', function(source, args, user)
  268.     getCharacters(source, function(data)
  269.         if data.firstname3 ~= '' then
  270.             TriggerClientEvent('chatMessage', source, 'REGISTER', {255, 0, 0}, "You Can Only Have 3 Characters.")
  271.         else
  272.             TriggerClientEvent('esx_identity:showRegisterIdentity', source, {})
  273.         end
  274.     end)
  275. end)
  276.  
  277. --===============================================
  278. --==      /char - Show Active Character        ==
  279. --===============================================
  280. TriggerEvent('es:addGroupCommand', 'char', "user", function(source, args, user)
  281.     getIdentity(source, function(data)
  282.         if data.firstname == '' then
  283.             TriggerClientEvent('chatMessage', source, 'CHAR', {255, 0, 0}, "You Have No Active Character.")
  284.         else
  285.             TriggerClientEvent('chatMessage', source, 'CHAR', {255, 0, 0}, "Active Character: " .. data.firstname .. " " .. data.lastname)
  286.         end
  287.     end)
  288. end, function(source, args, user)
  289.     TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficienct permissions!")
  290. end, {help = "List Your Current Active Character"})
  291.  
  292. --===============================================
  293. --==      /charlist - Show Your Characters     ==
  294. --===============================================
  295. TriggerEvent('es:addGroupCommand', 'charlist', "user", function(source, args, user)
  296.     getCharacters(source, function(data)
  297.         if data.firstname1 ~= '' then
  298.             TriggerClientEvent('chatMessage', source, 'CHARLIST', {255, 0, 0}, "Character 1: " .. data.firstname1 .. " " .. data.lastname1)
  299.             if data.firstname2 ~= '' then
  300.                 TriggerClientEvent('chatMessage', source, 'CHARLIST', {255, 0, 0}, "Character 2: " .. data.firstname2 .. " " .. data.lastname2)
  301.                 if data.firstname3 ~= '' then
  302.                     TriggerClientEvent('chatMessage', source, 'CHARLIST', {255, 0, 0}, "Character 3: " .. data.firstname3 .. " " .. data.lastname3)
  303.                 end
  304.             end
  305.         else
  306.             TriggerClientEvent('chatMessage', source, 'CHARLIST', {255, 0, 0}, "You Have No Characters. Please use the /register command.")
  307.         end
  308.     end)
  309. end, function(source, args, user)
  310.     TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficienct permissions!")
  311. end, {help = "List Your Characters"})
  312.  
  313. --===============================================
  314. --== /charselect 1,2,3 Select Your Active Char ==
  315. --===============================================
  316. TriggerEvent('es:addCommand', 'charselect', function(source, args, user)
  317.     table.remove(args, 1)
  318.     local charNumber = tonumber(table.concat(args, " "))
  319.     getCharacters(source, function(data)
  320.         if charNumber == 1 then
  321.             local data = {
  322.                 identifier  = data.identifier,
  323.                 firstname   = data.firstname1,
  324.                 lastname    = data.lastname1,
  325.                 dateofbirth = data.dateofbirth1,
  326.                 sex         = data.sex1,
  327.                 height      = data.height1
  328.             }
  329.            
  330.             if data.firstname ~= '' then           
  331.                 updateIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  332.                     if callback == true then
  333.                         TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Updated your active character to " .. data.firstname .. " " .. data.lastname .. "!")
  334.                     else
  335.                         TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Failed To Update Identity!")
  336.                     end
  337.                 end)
  338.             else
  339.                 TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "You don\'t have a character in slot 1!")
  340.             end
  341.         elseif charNumber == 2 then
  342.             local data = {
  343.                 identifier  = data.identifier,
  344.                 firstname   = data.firstname2,
  345.                 lastname    = data.lastname2,
  346.                 dateofbirth = data.dateofbirth2,
  347.                 sex         = data.sex2,
  348.                 height      = data.height2
  349.             }
  350.            
  351.             if data.firstname ~= '' then
  352.                 updateIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  353.  
  354.                     if callback == true then
  355.                         TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Updated your active character to " .. data.firstname .. " " .. data.lastname .. "!")
  356.                     else
  357.                         TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Failed To Update Identity!")
  358.                     end
  359.                 end)
  360.             else
  361.                 TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "You don\'t have a character in slot 2!")
  362.             end
  363.         elseif charNumber == 3 then
  364.             local data = {
  365.                 identifier  = data.identifier,
  366.                 firstname   = data.firstname3,
  367.                 lastname    = data.lastname3,
  368.                 dateofbirth = data.dateofbirth3,
  369.                 sex         = data.sex3,
  370.                 height      = data.height3
  371.             }
  372.            
  373.             if data.firstname ~= '' then           
  374.                 updateIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  375.                     if callback == true then
  376.                         TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Updated your active character to " .. data.firstname .. " " .. data.lastname .. "!")
  377.                     else
  378.                         TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Failed To Update Identity!")
  379.                     end
  380.                 end)
  381.             else
  382.                 TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "You don\'t have a character in slot 3!")
  383.             end
  384.         else
  385.             TriggerClientEvent('chatMessage', source, "CHARSELECT", {255, 0, 0}, "Failed To Update Identity!")
  386.         end
  387.     end)
  388. end)
  389.  
  390. --===============================================
  391. --== /charselect 1,2,3 Select Your Active Char ==
  392. --===============================================
  393. TriggerEvent('es:addCommand', 'delchar', function(source, args, user)
  394.     table.remove(args, 1)
  395.     local charNumber = tonumber(table.concat(args, " "))
  396.     getCharacters(source, function(data)
  397.         if charNumber == 1 then
  398.             local data = {
  399.                 identifier  = data.identifier,
  400.                 firstname   = data.firstname1,
  401.                 lastname    = data.lastname1,
  402.                 dateofbirth = data.dateofbirth1,
  403.                 sex         = data.sex1,
  404.                 height      = data.height1
  405.             }
  406.             if data.firstname ~= '' then           
  407.                 deleteIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  408.                     if callback == true then
  409.                     TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "You Have Deleted " .. data.firstname .. " " .. data.lastname .. "!")
  410.                     else
  411.                         TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "Failed To Delete Identity!")
  412.                     end
  413.                 end)
  414.             else
  415.                 TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "You don\'t have a character in slot 1!")
  416.             end
  417.         elseif charNumber == 2 then
  418.             local data = {
  419.                 identifier  = data.identifier,
  420.                 firstname   = data.firstname2,
  421.                 lastname    = data.lastname2,
  422.                 dateofbirth = data.dateofbirth2,
  423.                 sex         = data.sex2,
  424.                 height      = data.height2
  425.             }
  426.             if data.firstname ~= '' then           
  427.                 deleteIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  428.                     if callback == true then
  429.                         TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "You Have Deleted " .. data.firstname .. " " .. data.lastname .. "!")
  430.                     else
  431.                         TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "Failed To Delete Identity!")
  432.                     end
  433.                 end)
  434.             else
  435.                 TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "You don\'t have a character in slot 2!")
  436.             end
  437.         elseif charNumber == 3 then
  438.             local data = {
  439.                 identifier  = data.identifier,
  440.                 firstname   = data.firstname3,
  441.                 lastname    = data.lastname3,
  442.                 dateofbirth = data.dateofbirth3,
  443.                 sex         = data.sex3,
  444.                 height      = data.height3
  445.             }
  446.             if data.firstname ~= '' then           
  447.                 deleteIdentity(GetPlayerIdentifiers(source)[1], data, function(callback)
  448.                     if callback == true then
  449.                         TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "You Have Deleted " .. data.firstname .. " " .. data.lastname .. "!")
  450.                     else
  451.                         TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "Failed To Delete Identity!")
  452.                     end
  453.                 end)
  454.             else
  455.                 TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "You don\'t have a character in slot 3!")
  456.             end
  457.         else
  458.             TriggerClientEvent('chatMessage', source, "DELCHAR", {255, 0, 0}, "Failed To Delete Identity!")
  459.         end
  460.     end)
  461. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement