RegisterNetEvent("0r_idcard:server:showCard", function(target, data, isJobCard, shown) TriggerClientEvent("0r_idcard:client:showCard", target, data, isJobCard, shown) end) RegisterNetEvent("0r_idcard:server:saveHeadshot", function(shot) local src = source local player = getExtendedPlayer(src) local license = getPlayerLicense(player) if license then local result = mysqlQuery("SELECT id_card_given FROM 0r_idcard WHERE license = @license", {["@license"] = license}) if result[1] then -- Update photo mysqlQuery("UPDATE 0r_idcard SET photo = @photo WHERE license = @license", {["@photo"] = shot, ["@license"] = license}) -- Give id_card only once (first mugshot) if result[1].id_card_given == 0 then addItem(src, Config.IdCard, 1) mysqlQuery("UPDATE 0r_idcard SET id_card_given = 1 WHERE license = @license", {["@license"] = license}) end else mysqlQuery("INSERT INTO 0r_idcard (license, photo, id_card_given) VALUES (@license, @photo, 1)", {["@license"] = license, ["@photo"] = shot}) addItem(src, Config.IdCard, 1) end end end) RegisterNetEvent("0r_idcard:server:loadCard", function(shot) local src = source local ok, player = pcall(getExtendedPlayer, src) if not ok or player == nil then return end local license = getPlayerLicense(player) if license then local result = mysqlQuery("SELECT photo FROM 0r_idcard WHERE license = @license", {["@license"] = license}) if not result[1] then mysqlQuery("INSERT INTO 0r_idcard (license, photo) VALUES (@license, @photo)", {["@license"] = license, ["@photo"] = shot}) end end local ok2, cardData = pcall(useIdCard, src) if ok2 then TriggerClientEvent("0r_idcard:client:setCardData", src, cardData) end end) RegisterNetEvent("0r_idcard:server:createFakeCard", function(name, surname, job, date, male, female, shot, cardtype) local src = source local gender = male and "Male" or "Female" if removeMoney(src, Config.FakeCardPrice) then local player = getExtendedPlayer(src) local license = getPlayerLicense(player) local result = mysqlQuery("SELECT * FROM 0r_idcard_fakecards WHERE license = @license", {["@license"] = license}) local updated = false local timestamp = math.floor(date / 1000) local birthdate = os.date('%Y-%m-%d', timestamp) for k, v in pairs(result) do if v.card_type == "citizen" and job == 'citizen' then updated = true mysqlQuery("UPDATE 0r_idcard_fakecards SET card_name = @card_name, card_surname = @card_surname, card_birthdate = @card_birthdate, card_sex = @card_sex, card_photo = @card_photo WHERE license = @license AND card_type = 'citizen'", {["@card_name"] = name, ["@card_surname"] = surname, ["@card_birthdate"] = birthdate, ["@card_sex"] = gender, ["@card_photo"] = shot, ["@license"] = license}) TriggerClientEvent("0r_idcard:client:notify", src, "Your ID card has been updated", "success") elseif v.card_type ~= "citizen" and job ~= 'citizen' then updated = true mysqlQuery("UPDATE 0r_idcard_fakecards SET card_name = @card_name, card_surname = @card_surname, card_birthdate = @card_birthdate, card_sex = @card_sex, card_photo = @card_photo, card_type = @card_type WHERE license = @license AND card_type NOT LIKE 'citizen'", {["@card_name"] = name, ["@card_surname"] = surname, ["@card_birthdate"] = birthdate, ["@card_sex"] = gender, ["@card_photo"] = shot, ["@license"] = license, ["@card_type"] = job}) TriggerClientEvent("0r_idcard:client:notify", src, "Your job card has been updated", "success") end end if not updated then mysqlQuery("INSERT INTO 0r_idcard_fakecards (license, card_type, card_name, card_surname, card_birthdate, card_sex, card_photo) VALUES (@license, @card_type, @card_name, @card_surname, @card_birthdate, @card_sex, @card_photo)", {["@license"] = license, ["@card_type"] = job, ["@card_name"] = name, ["@card_surname"] = surname, ["@card_birthdate"] = birthdate, ["@card_sex"] = gender , ["@card_photo"] = shot}) TriggerClientEvent("0r_idcard:client:notify", src, "Your ID card has been created", "success") end addItem(src, cardtype == 'citizen' and Config.FakeIdCard or Config.FakeJobCard, 1) else TriggerClientEvent("0r_idcard:client:notify", src, "You don't have enough money", "error") end end)