Jump to content
LOOKING FOR ROBLOX ASSETS? VISIT ROBLOXBAY.COM! ×
THE BEST DISCORD BACKUP BOT | PRESERVE YOUR DISCORD SERVER! ×

RobloxBay

Visit Site

FiveSecured

 

Stop shipping plaintext. FiveSecured encrypts, obfuscates, and licenses your Lua resources so customers run your work without ever holding your source.

Try for Free
  • 5decrypt-banner-v1.thumb.png.262b7992a5a4de66fd6633bf48af6c1c.png

RLO Script Pack 1 1.0.0

   (0 reviews)

1 Screenshot

About This File

RLO Script Pack 1

das sind viele rlo scripts


User Feedback

Recommended Comments

America1107

Posted

Vielen Dank. Hast du noch die Server.lua für rlo_admin?

 

America1107

Posted (edited)

rlo_admin
server > sv_main.lua

 

local ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

local activeRequests = {}

-- Check ob Admin
ESX.RegisterServerCallback('rlo_ticketpanel:callback:isAdmin', function(source, cb)
    local xPlayer = ESX.GetPlayerFromId(source)
    cb(xPlayer and xPlayer.getGroup() ~= 'user')
end)

-- Anfrage erstellen (z. B. via /support)
RegisterCommand('support', function(source, args)
    local xPlayer = ESX.GetPlayerFromId(source)
    if not xPlayer then return end

    local reason = table.concat(args, " ")
    if reason == "" then
        TriggerClientEvent('esx:showNotification', source, "~r~Du musst einen Grund angeben!")
        return
    end

    local requestId = tostring(source) .. "_" .. os.time()

    activeRequests[requestId] = {
        playerId = source,
        playerName = xPlayer.getName(),
        reason = reason,
        state = "Offen",
        coords = GetEntityCoords(GetPlayerPed(source)),
        identifyId = requestId
    }

    -- Sende an Admins
    TriggerClientEvent('rlo_ticketpanel:client:syncRequest', -1, activeRequests, requestId)
end, false)

-- Anfrage bei Join anzeigen
AddEventHandler('playerConnecting', function(_, _, deferrals)
    local src = source
    Wait(5000)
    TriggerClientEvent('rlo_ticketpanel:client:syncRequestOnJoin', src, activeRequests)
end)

-- Löschen von HS
RegisterNetEvent('rlo_ticketpanel:server:syncHsDelete', function(data)
    if activeRequests[data.identifyId] then
        activeRequests[data.identifyId] = nil
        TriggerClientEvent('rlo_ticketpanel:client:syncHsDelete', -1, data)
    end
end)

-- Nachricht an Spieler senden
RegisterNetEvent('rlo_ticketpanel:server:hsMessage', function(data)
    local target = data.playerId
    if GetPlayerName(target) then
        TriggerClientEvent('chat:addMessage', target, {
            args = {"Support", "[ADMIN]: " .. data.message},
            color = {255, 0, 0}
        })
    end
end)

-- Normales Löschen
RegisterNetEvent('rlo_ticketpanel:server:syncDelete', function(data)
    if activeRequests[data.identifyId] then
        activeRequests[data.identifyId] = nil
        TriggerClientEvent('rlo_ticketpanel:client:syncDelete', -1, data)
    end
end)

-- Anfrage als "in Bearbeitung" markieren
RegisterNetEvent('rlo_ticketpanel:server:changeState', function(identifyId)
    if activeRequests[identifyId] then
        activeRequests[identifyId].state = "In Bearbeitung"
        TriggerClientEvent('rlo_ticketpanel:client:changeState', -1, identifyId)
    end
end)

-- Claim Request
RegisterNetEvent('rlo_ticketpanel:server:claimRequest', function(identifyId)
    local src = source
    local xPlayer = ESX.GetPlayerFromId(src)
    if not xPlayer then return end

    if activeRequests[identifyId] then
        activeRequests[identifyId].claimedBy = xPlayer.getName()
        activeRequests[identifyId].state = "Gecclaimed von " .. xPlayer.getName()
        TriggerClientEvent('rlo_ticketpanel:client:changeState', -1, activeRequests[identifyId].reason)
    end
end)

Edited by America1107
America1107

Posted

rlo_admin
web > js > main.js
 

$(function(){
  window.addEventListener('message', (event) => {                
      var data = event.data;
      if (data !== undefined && data.type === "open") {                     
          $("body").removeClass("d-none");

      } else if (data !== undefined && data.type === "close") {                        
          $("body").addClass("d-none");

      } else if (data !== undefined && data.type === "deleteRequest") {                        
          deleteRequest(data.requestContent);

      } else if (data !== undefined && data.type === "createRequest") {                        
          createRequest(data.requestContent);

      } else if (data !== undefined && data.type === "changeState") {                        
          changeState(data.reason);

      } else if (data !== undefined && data.type === "hsRequest") {                        
          hsRequest(data.requestContent);
      }
  });
}); 

function hsRequest(requestContent) {
  fetch(`https://${GetParentResourceName()}/hsMessage`, {
    method: 'POST',
    body: JSON.stringify(requestContent.playerId),
    headers: {'Content-Type': 'application/json; charset=UTF-8'},
  }).then(resp => resp.json()).catch(err => console.error(err));

  const elements = document.querySelectorAll('.content-header');
  elements.forEach(element => {
    const reasonElement = element.querySelector('.col-md-5.column');
    if (reasonElement && reasonElement.textContent === requestContent.reason) {
      element.remove();
    }
  });
}

function deleteRequest(requestContent) {
  const elements = document.querySelectorAll('.content-header');
  elements.forEach(element => {
    const reasonElement = element.querySelector('.col-md-5.column');
    if (reasonElement && reasonElement.textContent === requestContent.reason) {
      element.remove();
    }
  });
}

function changeState(reason) {
  const elements = document.querySelectorAll('.content-header');
  elements.forEach(element => {
    const reasonElement = element.querySelector('.col-md-5.column');
    if (reasonElement && reasonElement.textContent === reason) {
      const button = element.querySelector('button.btn-info');
      if (button) {
        button.textContent = 'In Bearbeitung';
        button.className = 'btn btn-warning me-2 d-flex align-items-center justify-content-center';
      }
    }
  });
}

function teleport(coords) {
  fetch(`https://${GetParentResourceName()}/teleport`, {
    method: 'POST',
    body: JSON.stringify(coords),
    headers: {'Content-Type': 'application/json; charset=UTF-8'},
  }).then(resp => resp.json()).catch(err => console.error(err));
}

function waypoint(coords) {
  fetch(`https://${GetParentResourceName()}/setWaypoint`, {
    method: 'POST',
    body: JSON.stringify(coords),
    headers: {'Content-Type': 'application/json; charset=UTF-8'},
  }).then(resp => resp.json()).catch(err => console.error(err));
}

function createRequest(requestContent) {
  const contentHeader = document.createElement('div');
  contentHeader.className = 'content-header row mt-1 text-center bor';

  const col1 = document.createElement('div');
  col1.className = 'col-md-2 column';
  
  const img = document.createElement('img');
  img.src = 'image/ticket.svg';
  img.alt = 'Icon';
  
  const div1 = document.createElement('div');
  div1.textContent = requestContent.playerName + ' : ' + requestContent.playerId;

  col1.appendChild(img);
  col1.appendChild(div1);

  const col2 = document.createElement('div');
  col2.className = 'col-md-5 column';
  col2.textContent = requestContent.reason;

  const col3 = document.createElement('div');
  col3.className = 'col-md-2 column';

  const buttonOpen = document.createElement('button');
  buttonOpen.className = 'btn btn-info me-2 d-flex align-items-center justify-content-center';
  buttonOpen.style.height = '38px';
  buttonOpen.textContent = requestContent.state;
  buttonOpen.addEventListener('click', function() {
    fetch(`https://${GetParentResourceName()}/changeState`, {
      method: 'POST',
      body: JSON.stringify(requestContent.identifyId),
      headers: {'Content-Type': 'application/json; charset=UTF-8'},
    }).then(resp => resp.json());
  });

  const buttonClaim = document.createElement('button');
  buttonClaim.className = 'btn btn-success me-2 d-flex align-items-center justify-content-center';
  buttonClaim.style.height = '38px';
  buttonClaim.textContent = 'Claim';
  buttonClaim.addEventListener('click', function () {
    fetch(`https://${GetParentResourceName()}/claimRequest`, {
      method: 'POST',
      body: JSON.stringify(requestContent.identifyId),
      headers: { 'Content-Type': 'application/json; charset=UTF-8' },
    })
    .then(resp => resp.json())
    .then(data => {
      col3.removeChild(buttonClaim);

      const adminNameTag = document.createElement('span');
      adminNameTag.className = 'text-success fw-bold';
      adminNameTag.textContent = data.adminName ?? ' ';
      col3.appendChild(adminNameTag);
    })
    .catch(err => console.error(err));
  });

  col3.appendChild(buttonOpen);
  col3.appendChild(buttonClaim);

  const col4 = document.createElement('div');
  col4.className = 'column';
  
  const buttonTP = document.createElement('button');
  buttonTP.className = 'btn btn-secondary me-2 d-flex align-items-center justify-content-center';
  buttonTP.addEventListener('click', function() {
    teleport(requestContent.coords);
  });
  buttonTP.style.height = '38px';
  buttonTP.textContent = 'TP';

  const buttonWP = document.createElement('button');
  buttonWP.className = 'btn btn-secondary me-2 d-flex align-items-center justify-content-center';
  buttonWP.addEventListener('click', function() {
    waypoint(requestContent.coords);
  });
  buttonWP.style.height = '38px';
  buttonWP.textContent = 'WP';

  const buttonDEL = document.createElement('button');
  buttonDEL.className = 'btn btn-danger me-2 d-flex align-items-center justify-content-center';
  buttonDEL.addEventListener('click', function() {
    fetch(`https://${GetParentResourceName()}/deleteRequest`, {
      method: 'POST',
      body: JSON.stringify(requestContent),
      headers: {'Content-Type': 'application/json; charset=UTF-8'},
    }).then(resp => resp.json());
  });
  buttonDEL.style.height = '38px';
  buttonDEL.textContent = 'DEL';

  const buttonHS = document.createElement('button');
  buttonHS.className = 'btn btn-danger me-2 d-flex align-items-center justify-content-center';
  buttonHS.addEventListener('click', function() {
    fetch(`https://${GetParentResourceName()}/hsRequest`, {
      method: 'POST',
      body: JSON.stringify(requestContent),
      headers: {'Content-Type': 'application/json; charset=UTF-8'},
    }).then(resp => resp.json());
  });
  buttonHS.style.height = '38px';
  buttonHS.textContent = 'HS';

  col4.appendChild(buttonTP);
  col4.appendChild(buttonWP);
  col4.appendChild(buttonDEL);
  col4.appendChild(buttonHS);

  contentHeader.appendChild(col1);
  contentHeader.appendChild(col2);
  contentHeader.appendChild(col3);
  contentHeader.appendChild(col4);

  document.getElementById('content').appendChild(contentHeader);
}

function refreshUi() { 
  fetch(`https://${GetParentResourceName()}/refreshUi`, {
    method: 'POST',
    headers: {'Content-Type': 'application/json; charset=UTF-8'},
  }).then(resp => resp.json());
}

function closeUi() { 
  fetch(`https://${GetParentResourceName()}/closeUi`, {
    method: 'POST',
    headers: {'Content-Type': 'application/json; charset=UTF-8'},
  }).then(resp => resp.json());
}
 

Sacha Wick

Posted

Es wäre geil wenn du den ganzen Server leaken könntest oder send mir eine Freundschaftsanfrage per Discord daryl_dixon1985

 

Lg

 

  • Happy 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.


×
×
  • Create New...

Important Information

By continuing on Launcherleaks.net, you agree to our Terms of Use, Guidelines & Privacy Policy