Advertisement
actuallykane

RedEM: Roleplay class (sv_player.lua)

Dec 11th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.17 KB | None | 0 0
  1. function CreateRoleplayPlayer(source, name, gold, firstname, lastname, xp, level, job, jobgrade)
  2.     local self = {}
  3.  
  4.     self.source = source
  5.     self.name = name
  6.     self.gold = gold
  7.     self.firstname = firstname
  8.     self.lastname = lastname
  9.     self.xp = xp
  10.     self.level = level
  11.     self.job = job
  12.     self.jobgrade = jobgrade
  13.     self.session = {}
  14.  
  15.     local rTable = {}
  16.  
  17.     -- SETS LEVELwXP
  18.     rTable.setLevelwXP = function(m)
  19.         if type(m) == "number" then
  20.             if m > self.level then
  21.                 self.level = m
  22.                 TriggerClientEvent('xrp:addLevel', self.source, m)
  23.                 TriggerClientEvent('xrp:activateLevel', self.source , self.level)
  24.             else
  25.                 self.level = m
  26.                 TriggerClientEvent('xrp:removeLevel', self.source, m)
  27.                 TriggerClientEvent('xrp:activateLevel', self.source , self.level)
  28.             end
  29.  
  30.         else
  31.             print('XRP_ERROR: There seems to be an issue while setting level, something else then a number was entered.')
  32.         end
  33.     end
  34.     -- SETS LEVEL
  35.     rTable.setLevel = function(m)
  36.         if type(m) == "number" then
  37.            
  38.                 self.level = m
  39.                 rTable.addXP(Levels[m] - self.xp)
  40.                 TriggerClientEvent('xrp:addLevel', self.source, self.level)
  41.                 TriggerClientEvent('xrp:activateLevel', self.source , self.level)
  42.  
  43.         else
  44.             print('XRP_ERROR: There seems to be an issue while setting level, something else then a number was entered.')
  45.         end
  46.     end
  47.    
  48.     rTable.setXP = function(m)
  49.         if type(m) == "number" then
  50.                 self.xp = m
  51.                 TriggerClientEvent('xrp:addXP', self.source, m)
  52.                 TriggerClientEvent('xrp:activateXP', self.source , self.xp)
  53.             local case = 1, lvlNow, lvlNew
  54.             while true do
  55.                 if self.xp > Levels[case] then
  56.                     case = case + 1
  57.                 else
  58.                 lvlNow = case
  59.                 break
  60.                 end
  61.             end
  62.             case = 1
  63.             while true do
  64.                 cache = case + 1
  65.                 if m > Levels[cache] then
  66.                     case = case + 1
  67.                 else
  68.                 lvlNew = case
  69.                 break
  70.                 end
  71.             end
  72.  
  73.             if lvlNow ~= lvlNew then
  74.                --print("New level from " .. lvlNow .. " to " .. lvlNew)
  75.                rTable.setLevel(tonumber(lvlNew))
  76.         else
  77.         --print("Old level " .. lvlNow .. " == " .. lvlNew)
  78.             end
  79.         else
  80.             print('XRP_ERROR: There seems to be an issue while setting xp, something else then a number was entered.')
  81.         end
  82.     end
  83.    
  84.     rTable.setFirstname = function(m)
  85.         if type(m) == "string" then
  86.             TriggerEvent("xrp:setPlayerData", self.source, "firstname", m, function(response, success)
  87.                 self.firstname = m
  88.             end)
  89.         else
  90.             print('XRP_ERROR: There seems to be an issue while setting firstname, something else then a text was entered.')
  91.         end
  92.     end
  93.    
  94.     rTable.setLastname = function(m)
  95.         if type(m) == "string" then
  96.             TriggerEvent("xrp:setPlayerData", self.source, "lastname", m, function(response, success)
  97.                 self.lastname = m
  98.             end)
  99.         else
  100.             print('XRP_ERROR: There seems to be an issue while setting lastname, something else then a text was entered.')
  101.         end
  102.     end
  103.  
  104.     rTable.setJob = function(m)
  105.         if type(m) == "string" then
  106.             TriggerEvent("xrp:setPlayerData", self.source, "job", m, function(response, success)
  107.                 self.job = m
  108.             end)
  109.         else
  110.             print('XRP_ERROR: There seems to be an issue while setting job, something else then a text was entered.')
  111.         end
  112.     end
  113.  
  114.     rTable.setJobgrade = function(m)
  115.         if type(m) == "number" then
  116.             TriggerEvent("xrp:setPlayerData", self.source, "jobgrade", m, function(response, success)
  117.                 self.jobgrade = m
  118.             end)
  119.         else
  120.             print('XRP_ERROR: There seems to be an issue while setting jobgrade, something else then a text was entered.')
  121.         end
  122.     end
  123.    
  124. rTable.addXP = function(m)
  125.         if type(m) == "number" then
  126.             local newXP = self.xp + m
  127.  
  128.             local case = 1, lvlNow, lvlNew
  129.             while true do
  130.                 if self.xp > Levels[case] then
  131.                     case = case + 1
  132.                 else
  133.                 lvlNow = case
  134.                 break
  135.                 end
  136.             end
  137.             case = 1
  138.             while true do
  139.                 if newXP > Levels[case] then
  140.                     case = case + 1
  141.                 else
  142.                 lvlNew = case
  143.                 break
  144.                 end
  145.             end
  146.  
  147.             if lvlNow ~= lvlNew then
  148.                --print("New level from " .. lvlNow .. " to " .. lvlNew)
  149.                rTable.setLevelwXP(tonumber(lvlNew))
  150.         else
  151.         --print("Old level " .. lvlNow .. " == " .. lvlNew)
  152.             end
  153.            
  154.  
  155.             --self.xp = newXP
  156.             if newXP > self.xp then
  157.                 self.xp = newXP
  158.             TriggerClientEvent('xrp:addXP', self.source, m)
  159.             TriggerClientEvent('xrp:activateXP', self.source , self.xp)
  160.             else
  161.                 self.xp = newXP
  162.             TriggerClientEvent('xrp:removeXP', self.source, m)
  163.             TriggerClientEvent('xrp:activateXP', self.source , self.xp)
  164.             end
  165.            
  166.         else
  167.             print('XRP_ERROR: There seems to be an issue while adding xp, a different type then number was trying to be added.')
  168.         end
  169.     end
  170.    
  171.     -- Sets a players gold balance
  172.     rTable.setGold = function(m)
  173.         if type(m) == "number" then
  174.                 self.gold = m
  175.  
  176.             TriggerClientEvent('xrp:addGold', self.source, self.gold)
  177.             TriggerClientEvent('xrp:activateGold', self.source , self.gold)
  178.         else
  179.             print('XRP_ERROR: There seems to be an issue while setting gold, something else then a number was entered.')
  180.         end
  181.     end
  182.  
  183.     rTable.getGold = function()
  184.         return self.gold
  185.     end
  186.  
  187.     -- Adds money to a users gold
  188.     rTable.addGold = function(m)
  189.         if type(m) == "number" then
  190.             local newGold = self.gold + m
  191.             self.gold = newGold
  192.  
  193.             TriggerClientEvent('xrp:addGold', self.source, m)
  194.             TriggerClientEvent('xrp:activateGold', self.source , self.gold)
  195.         else
  196.             print('XRP_ERROR: There seems to be an issue while adding to gold, a different type then number was trying to be added.')
  197.         end
  198.     end
  199.  
  200.     -- Removes money from a users gold
  201.     rTable.removeGold = function(m)
  202.         if type(m) == "number" then
  203.             local newGold = self.gold - m
  204.             self.gold = newGold
  205.            
  206.             TriggerClientEvent('xrp:removeGold', self.source, m)
  207.             TriggerClientEvent('xrp:activateGold', self.source , self.gold)
  208.         else
  209.             print('XRP_ERROR: There seems to be an issue while removing from gold, a different type then number was trying to be removed.')
  210.         end
  211.     end
  212.    
  213.     rTable.getXP = function()
  214.         return self.xp
  215.     end
  216.    
  217.     rTable.getName = function()
  218.         return self.name
  219.     end
  220.    
  221.     rTable.getLevel = function()
  222.         return self.level
  223.     end
  224.    
  225.     rTable.getFirstname = function()
  226.         return self.firstname
  227.     end
  228.    
  229.     rTable.getLastname = function()
  230.         return self.lastname
  231.     end
  232.  
  233.     rTable.getJob = function()
  234.         return self.job
  235.     end
  236.  
  237.     rTable.getJobgrade = function()
  238.         return self.job
  239.     end
  240.  
  241.     -- Global set
  242.     rTable.set = function(k, v)
  243.         self[k] = v
  244.     end
  245.  
  246.     -- Global get
  247.     rTable.get = function(k)
  248.         return self[k]
  249.     end
  250.  
  251.  
  252.     rTable.setGlobal = function(g, default)
  253.         self[g] = default or ""
  254.  
  255.         rTable["get" .. g:gsub("^%l", string.upper)] = function()
  256.             return self[g]
  257.         end
  258.  
  259.         rTable["set" .. g:gsub("^%l", string.upper)] = function(e)
  260.             self[g] = e
  261.         end
  262.  
  263.         Users[self.source] = rTable
  264.     end
  265.  
  266.     return rTable
  267. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement