Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function adminDutyStart()
- local result = mysql:query("SELECT id, name FROM factions WHERE type >= 2 ORDER BY id ASC")
- local max = mysql:query("SELECT id FROM duty_allowed ORDER BY id DESC LIMIT 0, 1")
- if result and max then
- dutyAllow = { }
- dutyAllowChanges = { }
- i = 0
- local maxrow = mysql:fetch_assoc(max)
- maxIndex = tonumber(maxrow.id) or 0
- while true do
- local row = mysql:fetch_assoc(result)
- if not row then break end
- table.insert(dutyAllow, { row.id, row.name, { --[[Duty]] } })
- i = i+1
- local result1 = mysql:query("SELECT * FROM duty_allowed WHERE faction="..tonumber(row.id))
- if result1 then
- while true do
- local row1 = mysql:fetch_assoc(result1)
- if not row1 then break end
- table.insert(dutyAllow[i][3], { row1.id, tonumber(row1.itemID), row1.itemValue })
- end
- end
- end
- setElementData(resourceRoot, "maxIndex", maxIndex)
- setElementData(resourceRoot, "dutyAllowTable", dutyAllow)
- mysql:free_result(result)
- mysql:free_result(result1)
- mysql:free_result(max)
- else
- outputDebugString("[Factions] ERREUR: La permission du duty a échouée.")
- end
- end
- addEventHandler("onResourceStart", resourceRoot, adminDutyStart)
- function getAllowList(factionID)
- local factionID = tonumber(factionID)
- if factionID then
- for k,v in pairs(dutyAllow) do
- if tonumber(v[1]) == factionID then
- key = k
- break
- end
- end
- return dutyAllow[key][3]
- end
- end
- function adminDuty(thePlayer)
- if (exports.integration:isPlayerSeniorAdmin(thePlayer) or exports.integration:isPlayerScripter(thePlayer)) then
- if not getElementData(resourceRoot, "dutyadmin") and type(dutyAllow) == "table" then
- triggerClientEvent(thePlayer, "adminDutyAllow", resourceRoot, dutyAllow, dutyAllowChanges)
- setElementData( resourceRoot, "dutyadmin", true )
- elseif type(dutyAllow) ~= "table" then
- outputChatBox("Il y a un probleme de mise en cache lors du démarrage de cette resource. Contacte un Scripteur.", thePlayer, 255, 0, 0)
- else
- outputChatBox("Quelqu'un est déjà en train d'editer les permissions du duty de cette faction!", thePlayer, 255, 0, 0)
- end
- end
- end
- addCommandHandler("dutyadmin", adminDuty, false, false)
- function saveChanges()
- outputDebugString("[Factions] Sauvegarde des changements...")
- local tick = getTickCount()
- for key,value in pairs(dutyAllowChanges) do
- if value[2] == 0 then
- mysql:query_free("DELETE FROM duty_allowed WHERE id="..mysql:escape_string(tonumber(value[3])))
- elseif value[2] == 1 then
- mysql:query_free("INSERT INTO duty_allowed SET id="..mysql:escape_string(tonumber(value[3]))..", faction="..mysql:escape_string(tonumber(value[1]))..", itemID="..mysql:escape_string(tonumber(value[4]))..", itemValue='"..mysql:escape_string(value[5]).."'")
- end
- end
- outputDebugString("[Factions] Terminer en ".. math.floor((getTickCount()-tick)/60) .." secondes.")
- end
- addEventHandler("onResourceStop", resourceRoot, saveChanges)
- function updateTable(newTable, changesTable)
- dutyAllow = newTable
- dutyAllowChanges = changesTable
- removeElementData(resourceRoot, "dutyadmin")
- setElementData(resourceRoot, "dutyAllowTable", dutyAllow)
- end
- addEvent("dutyAdmin:Save", true)
- addEventHandler("dutyAdmin:Save", resourceRoot, updateTable)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement