Ethanos

Client - BWH [FR]

Jul 16th, 2020
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.83 KB | None | 0 0
  1. ESX = nil
  2. local pos_before_assist,assisting,assist_target,last_assist = nil, false, nil, nil
  3.  
  4. Citizen.CreateThread(function()
  5.     while ESX == nil do
  6.         TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
  7.         Citizen.Wait(0)
  8.     end
  9.     SetNuiFocus(false, false)
  10. end)
  11.  
  12. function GetIndexedPlayerList()
  13.     local players = {}
  14.     for k,v in ipairs(GetActivePlayers()) do
  15.         players[tostring(GetPlayerServerId(v))]=GetPlayerName(v)..(v==PlayerId() and " (moi)" or "")
  16.     end
  17.     return json.encode(players)
  18. end
  19.  
  20. RegisterNUICallback("ban", function(data,cb)
  21.     if not data.target or not data.reason then return end
  22.     ESX.TriggerServerCallback("el_bwh:ban",function(success,reason)
  23.         if success then ESX.ShowNotification("~b~Joueur ~r~banni~w~ avec succès") else ESX.ShowNotification(reason) end -- dont ask why i did it this way, im a bit retarded
  24.     end, data.target, data.reason, data.length, data.offline)
  25. end)
  26.  
  27. RegisterNUICallback("warn", function(data,cb)
  28.     if not data.target or not data.message then return end
  29.     ESX.TriggerServerCallback("el_bwh:warn",function(success)
  30.         if success then ESX.ShowNotification("~b~Joueur ~o~averti~w~ avec succès") else ESX.ShowNotification("~r~Erreur ~w~: Quelque chose n'est pas bon") end
  31.     end, data.target, data.message, data.anon)
  32. end)
  33.  
  34. RegisterNUICallback("unban", function(data,cb)
  35.     if not data.id then return end
  36.     ESX.TriggerServerCallback("el_bwh:unban",function(success)
  37.         if success then ESX.ShowNotification("~b~Joueur ~g~dé-banni~w~ avec succès") else ESX.ShowNotification("~r~Erreur ~w~: Quelque chose n'est pas bon") end
  38.     end, data.id)
  39. end)
  40.  
  41. RegisterNUICallback("getListData", function(data,cb)
  42.     if not data.list or not data.page then cb(nil); return end
  43.     ESX.TriggerServerCallback("el_bwh:getListData",function(data)
  44.         cb(data)
  45.     end, data.list, data.page)
  46. end)
  47.  
  48. RegisterNUICallback("hidecursor", function(data,cb)
  49.     SetNuiFocus(false, false)
  50. end)
  51.  
  52. RegisterNetEvent("el_bwh:gotBanned")
  53. AddEventHandler("el_bwh:gotBanned",function(rsn)
  54.     Citizen.CreateThread(function()
  55.         local scaleform = RequestScaleformMovie("mp_big_message_freemode")
  56.         while not HasScaleformMovieLoaded(scaleform) do Citizen.Wait(0) end
  57.         BeginScaleformMovieMethod(scaleform, "SHOW_SHARD_WASTED_MP_MESSAGE")
  58.         PushScaleformMovieMethodParameterString("~r~BANNI")
  59.         PushScaleformMovieMethodParameterString(rsn)
  60.         PushScaleformMovieMethodParameterInt(5)
  61.         EndScaleformMovieMethod()
  62.         PlaySoundFrontend(-1, "LOSER", "HUD_AWARDS")
  63.         ClearDrawOrigin()
  64.         ESX.UI.HUD.SetDisplay(0)
  65.         while true do
  66.             Citizen.Wait(0)
  67.             DisableAllControlActions(0)
  68.             DisableFrontendThisFrame()
  69.             local ped = GetPlayerPed(-1)
  70.             ESX.UI.Menu.CloseAll()
  71.             SetEntityCoords(ped, 0, 0, 0, 0, 0, 0, false)
  72.             FreezeEntityPosition(ped, true)
  73.             DrawRect(0.0,0.0,2.0,2.0,0,0,0,255)
  74.             DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255)
  75.         end
  76.         SetScaleformMovieAsNoLongerNeeded(scaleform)
  77.     end)
  78. end)
  79.  
  80. RegisterNetEvent("el_bwh:receiveWarn")
  81. AddEventHandler("el_bwh:receiveWarn",function(sender,message)
  82.     TriggerEvent("chat:addMessage",{color={255,255,0},multiline=true,args={"BWH : ","Vous avez reçu un warn"..(sender~="" and " de "..sender or "").."!\nRaison : "..message}})
  83.     Citizen.CreateThread(function()
  84.         local scaleform = RequestScaleformMovie("mp_big_message_freemode")
  85.         while not HasScaleformMovieLoaded(scaleform) do Citizen.Wait(0) end
  86.         BeginScaleformMovieMethod(scaleform, "SHOW_SHARD_WASTED_MP_MESSAGE")
  87.         PushScaleformMovieMethodParameterString("~y~AVERTISSEMENT")
  88.         PushScaleformMovieMethodParameterString(message)
  89.         PushScaleformMovieMethodParameterInt(5)
  90.         EndScaleformMovieMethod()
  91.         PlaySoundFrontend(-1, "LOSER", "HUD_AWARDS")
  92.         local drawing = true
  93.         Citizen.SetTimeout(Config.warning_screentime,function() drawing = false end)
  94.         while drawing do
  95.             Citizen.Wait(0)
  96.             DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255)
  97.         end
  98.         SetScaleformMovieAsNoLongerNeeded(scaleform)
  99.     end)
  100. end)
  101.  
  102. RegisterNetEvent("el_bwh:requestedAssist")
  103. AddEventHandler("el_bwh:requestedAssist",function(t)
  104.     SendNUIMessage({show=true,window="assistreq",data=Config.popassistformat:format(GetPlayerName(GetPlayerFromServerId(t)),t)})
  105.     last_assist=t
  106. end)
  107.  
  108. RegisterNetEvent("el_bwh:acceptedAssist")
  109. AddEventHandler("el_bwh:acceptedAssist",function(t)
  110.     if assisting then return end
  111.     local target = GetPlayerFromServerId(t)
  112.     if target then
  113.         local ped = GetPlayerPed(-1)
  114.         pos_before_assist = GetEntityCoords(ped)
  115.         assisting = true
  116.         assist_target = t
  117.         ESX.Game.Teleport(ped,GetEntityCoords(GetPlayerPed(target))+vector3(0,0.5,0))
  118.     end
  119. end)
  120.  
  121. RegisterNetEvent("el_bwh:assistDone")
  122. AddEventHandler("el_bwh:assistDone",function()
  123.     if assisting then
  124.         assisting = false
  125.         if pos_before_assist~=nil then ESX.Game.Teleport(GetPlayerPed(-1),pos_before_assist+vector3(0,0.5,0)); pos_before_assist = nil end
  126.         assist_target = nil
  127.     end
  128. end)
  129.  
  130. RegisterNetEvent("el_bwh:hideAssistPopup")
  131. AddEventHandler("el_bwh:hideAssistPopup",function(t)
  132.     SendNUIMessage({hide=true})
  133.     last_assist=nil
  134. end)
  135.  
  136. RegisterNetEvent("el_bwh:showWindow")
  137. AddEventHandler("el_bwh:showWindow",function(win)
  138.     if win=="ban" or win=="warn" then
  139.         SendNUIMessage({show=true,window=win,players=GetIndexedPlayerList()})
  140.     elseif win=="banlist" or win=="warnlist" then
  141.         SendNUIMessage({loading=true,window=win})
  142.         ESX.TriggerServerCallback(win=="banlist" and "el_bwh:getBanList" or "el_bwh:getWarnList",function(list,pages)
  143.             SendNUIMessage({show=true,window=win,list=list,pages=pages})
  144.         end)
  145.     end
  146.     SetNuiFocus(true, true)
  147. end)
  148.  
  149. RegisterCommand("naide",function(a,b,c)
  150.     TriggerEvent("el_bwh:hideAssistPopup")
  151. end, false)
  152.  
  153. if Config.assist_keys then
  154.     Citizen.CreateThread(function()
  155.         while true do
  156.             Citizen.Wait(0)
  157.             if IsControlJustPressed(0, Config.assist_keys.accept) then
  158.                 if not last_assist then
  159.                     ESX.ShowNotification("~r~Personne n'a encore demandé d'aide.")
  160.                 elseif not NetworkIsPlayerActive(GetPlayerFromServerId(last_assist)) then
  161.                     ESX.ShowNotification("~r~Le joueur qui a demandé de l'aide n'est plus en ligne.")
  162.                     last_assist=nil
  163.                 else
  164.                     TriggerServerEvent("el_bwh:acceptAssistKey",last_assist)
  165.                 end
  166.             end
  167.             if IsControlJustPressed(0, Config.assist_keys.decline) then
  168.                 TriggerEvent("el_bwh:hideAssistPopup")
  169.             end
  170.         end
  171.     end)
  172. end
  173.  
  174. TriggerEvent('chat:addSuggestion', '/haide', 'Masquer les notifications d\'aide',{})
  175. TriggerEvent('chat:addSuggestion', '/aide', 'Demander de l\'aide aux modérateurs',{{name="Raison", help="Pourquoi as-tu besoin d'aide?"}})
  176. TriggerEvent('chat:addSuggestion', '/caide', 'Annuler votre demande d\'aide en attente',{})
  177. TriggerEvent('chat:addSuggestion', '/faide', 'Terminer l\'aide et revenir a votre précédente position',{})
  178. TriggerEvent('chat:addSuggestion', '/yaide', 'Accepter une demande d\'aide d\'un joueur', {{name="ID du joueur", help="ID du joueur que vous souhaitez aider"}})
Add Comment
Please, Sign In to add comment