Welcome to Revival Servers!

Welcome to Revival. The forums is an important aspect of joining the Community. This is where you can meet other community members, apply for staff, provide suggestions and participate in many other activities.

Tood's 2nd Application

Status
Not open for further replies.

Tood

Developer.
Staff Blacklisted
Networking Blacklisted
Joined
Jul 15, 2019
Messages
38
Points
8
Age
27
Name (Steam Name): Tood [Freelancer]

Tell us about yourself: Well to start my name is Andrew, known as Tood around the gaming community, 23 years of age, previously a Barber by day and Games Programmer by night but now I tend to focus on jobs here and there around Garry's Mod, I have been around many gmod servers and I have quite a few languages under my belt.

Lua/GLua - I use this purely for Garry's Mod, I make my own content at a small level just to keep my time occupied.
XML - I use XML for configuration and custom modifications for a game called Star Wars Empire at War/Forces of Corruption.
Swift - I use Swift regularly for Games Development for IOS/MAC-OS.
Papyrus - I take an interest in The Elder Scrolls Skyrim and I like to add my fair share of simple UI creations.

What role are you taking? (Programmer, Server Configurator, Mapper, etc.): Server Configurator or whatever role you feel I would fit in with.

Please describe your experience in the field relevant to the role you're applying for:
I have been a Developer around Garry's Mod for a fair while now. I have had my fair share of Freelance work and full-time work on a few servers.

Project Nightfall | CWRP - Head Developer.
-------------------------------------------------------------

When I joined the Project Nightfall Development team, I started off as a simple animator working with a very popular product within the Garry's Mod SWRP community, I simply made a few custom animations and I was invited into the team, I then pushed my way through the ranks (Junior Developer - Server Developer - Senior Developer - Head Developer), once I reached the rank of Head Developer I then proceeded to raise my very own Development team and after my leave of the community I am happy with the work we did within.
Work involved within this community: Custom SWEPs, Custom SENTs, Custom SNPCs, simple jobs, categories, worked very precisely with custom NPC stores and more.

Protocol Zero Servers | CWRP & Jedi vs Sith - Director of Development.
----------------------------------------------------------------

During my time as Director of Development for PZS, I was in charge of overseeing and approving all Development work before pushing it to the server, I led yet another team of very talented Developers. We led the community through 2 servers of some decent development work. We worked with a custom capture point script, a custom teleporting system, simple jobs and categories, this server was mainly premade addons to which we simply just worked with the configs provided making improvements to secure player base enjoyment.

Supreme Servers | CWRP - Developer
---------------------------------------------------------------

The work involved in this server was the most basic work I've had to do within Garry's mod, the work required is simply jobs and categories, configuring an NPC shop, configuring and improving minor scripts to improve gameplay within the server and creating a few derma panels for a few new ULX commands.

TG Networks | Jedi vs Sith - Director of Development
---------------------------------------------------------------

This server really tested my skills as a Developer due to the demand from the player base, this brought out a side of skills I never knew I could use to the advantage of the server. This didn't require simple configuration, I achieved custom content such as entities that provided buffs to player health, armor, speed and jump height, entities that gave the player Experience points when found, the biggest system I created on this server was a custom loot box system that dropped from NPCs and entity NPCs when killed, these loot boxes contained items that were randomized from tables I added into the code which provided variety for the players and this received a lot of attention from the player base.

Icefuse Networks | Jedi vs Sith - Freelancer
-----------------------------------------------------------------

I was brought in for a week by Icefuse Networks to work on part of the most recent update on their Jedi vs Sith server. My part of the update contained custom animations and custom skill trees for the player base to use when they leveled up using a lightsaber script from wiltOS technologies. I also provided aid and advice, where applicable, when asked.

Viral Gaming Roleplay | CWRP - Freelancer
----------------------------------------------------------------

I was brought in for a week by Viral Gaming Roleplay to manage the upkeep of Development of their server. This involved general development such as basic configuration, a few SWEPs here and there, and a few custom ULX commands.


Why do you want to become a developer for Revival? (One Paragraph Min.):
My previous term as a Developer on Revival ended with myself abruptly leaving with no detailed explanation, many factors were involved but there was too much going on at the time of my term and I couldn't juggle everything at the time. Now that I have freelanced on a few extra servers since then I have been given a fresh breather and I am ready again to help out to the best of my ability, it was brought to my attention by a staff member that Revival could do with an extra Development helping hand and I can never turn down any request for help, if I see anything that needs fixing or updated then I can't hold back from throwing myself into the position to offer as much help as I can and I believe I am ready to help.

What can you bring to the development team?:
I can bring time, effort and skill to the Development team, I have led Development Teams, I have worked in large Development Teams and I have achieved a lot of skill in between that may prove beneficial to servers around the gmod community and if I can pass this knowledge on then I'm there. I am always one to help out servers regardless of the popularity or demand from the player base.

Any extra information please add it here:
Let's go over some work I have done previously.
To start, some personal content I have released on my workshop

Cadet Forcefield

This forcefield simply forces the default spawn job on servers back to spawn if they try to exit rooms such as training rooms or spawn rooms.

shared.lua
Code:
ENT.Type = "anim" -- This means it's a prop or has some sort of physical function/presence on the server.
ENT.Base = "base_gmodentity" -- Well it's derived from gmod entities so we need to let the server know this.

ENT.Author = "Tood/The Toodster/Andrew." -- Who is the author of this entity? This is optional.
ENT.Contact = "Discord - @The Toodster#0001" -- How do players contact the author if any issues arise? This is also optional.

ENT.AdminOnly = true -- If you have ranks such as Tmod and Mod and you want to let them spawn this in then set this to false.
ENT.Spawnable = true -- We definitely want to be able to spawn this in.

ENT.PrintName = "Cadet Forcefield" -- The name of the entity inside the category inside the Q menu entities tab.
ENT.Category = "Tood's ENTs V1" -- What category will this be found in inside the Q menu entities tab.

cl_init.lua
Code:
include( "shared.lua" )
include( "vgui/cl_respawnscreen.lua" )

function ENT:Draw() -- Lets begin actually seeing the model of the prop on the client.
    self:DrawModel() -- Tell the engine to actually draw/create the model for the client to see.
end

init.lua
Code:
AddCSLuaFile( "cl_init.lua" )
AddCSLuaFile( "shared.lua" )
AddCSLuaFile( "vgui/cl_respawnscreen.lua" )

include( "shared.lua" )
include( "cl_respawnscreen.lua" )

util.AddNetworkString( "YouShallNotPass" ) -- This begins the networking as we can't run serverside functions on the client so we want to connect the 2 together through networking.

concommand.Add( "RespawnThisDude", function( ply ) -- Adds in a new console command.
    ply:Spawn() -- What does this console command do? Sends the player back to spawn.
end )

local modelrandom = { -- Begin a table of random props to choose from.
    "models/hunter/plates/plate4x6.mdl",
    "models/hunter/plates/plate4x4.mdl",
    "models/hunter/plates/plate3x4.mdl",
    "models/hunter/plates/plate2x3.mdl"
}

local background = Material( "models/props_combine/portalball001_sheet" ) -- We have added a basic animated material to the prop.

function ENT:Initialize() -- Begin the entity.
    self:SetModel( table.Random( modelrandom ) ) -- What model do we want for the prop? We randomise it and call from the table above.
    self:PhysicsInit( SOLID_NONE ) -- We don't want this to act like a prop.
    self:SetMoveType( MOVETYPE_NONE ) -- This is so it freezes in place when we move the entity around.
    self:SetSolid( SOLID_VPHYSICS ) -- We need to give it some type of solid so we can interact with it using the physgun.
    self:SetMaterial( background ) -- Set the material from local background =
   
local getphys = self:GetPhysicsObject() -- We need to call on the physics of the object we are creating of course.
    if getphys:IsValid() then -- If the physics object is actually a physics object.
        getphys:Wake() -- Wake it and run the physics.
    end
end

function ENT:Touch( ply ) -- Lets begin a function for when a player touches this entity, but not just any player, see below.
    if IsValid( ply ) && ply:IsPlayer() then -- Make sure that ply is the player and their is actually a player.
   
    if ply:Team() == GAMEMODE.DefaultTeam then -- If the player is on the job that is noted as the GAMEMODE.DefaultTeam in jobs.lua
    RunConsoleCommand( "RespawnThisDude" ) -- It will run the new console command we added above and respawn GAMEMODE.DefaultTeam if they TOUCH the entity.
        net.Start( "YouShallNotPass" ) -- Let's start the networking.
        net.Send( ply ) -- Who do we want to send the networking to? The player who touches the entity if they are GAMEMODE.DefaultTeam.
        end
    end
end

function ENT:Use( ply ) -- Now we need to do something for the players who aren't on the GAMEMODE.DefaultTeam
    if IsValid( ply ) && ply:IsPlayer() then -- Once again is ply a player and is ply actually a player.
    if self:IsValid() && self:GetClass() == "cadet_forcefield" then -- Is the entity actually an entity? and is the entity class the forcefield itself? Yes.
    if ply:Team() != GAMEMODE.DefaultTeam then -- If the player pressing +USE on the entity is NOT on GAMEMODE.DefaultTeam then run the code below.
    timer.Create( "OpenTheForcefield", 1, 5, function() self:SetCollisionGroup( COLLISION_GROUP_PASSABLE_DOOR ) end ) -- Makes a timer for after one second it will set the forcefield to nocollide allowing trainers to pass through. After 5 seconds what happens? See below?
    timer.Simple( 6, function() self:SetCollisionGroup( COLLISION_GROUP_NONE ) end ) -- On the 6th second it will reset the physics of the entity no longer allowing anyone to pass through it.
            end
        end
    end
end

cl_respawnscreen.lua
Remember the networking we started in the init.lua? Well this is what is run when it is sent to the client.
Code:
include( "entities/cadet_forcefield/shared.lua" )

net.Receive( "YouShallNotPass", function() -- This is where we receive and begin the networking from the init.lua

-----------------------------------------------------------

surface.CreateFont( "ToodsFontV1", { -- Create the a custom font to use later.
    font = "xirod", -- Name of the ttf file.
    size = 25, -- How big is the text?
    weight = 250, -- How thick is the text?
    shadow = true, -- Do we want the text to have a nice shaded background?
    outline = true, -- Add in a nice black outline if your text is white?
} )
surface.CreateFont( "ToodsFontV2", { -- All of the above.
    font = "xirod",
    size = 14,
    weight = 250,
    shadow = true,
    outline = true,
} )

local background = Material( "materials/scifibackgrounds/scifiback.png" ) -- This is a custom material for the background of the panel. We will call on this later.
local ply = LocalPlayer() -- ply is basically a nickname instead of using LocalPlayer() all the time. Makes things easier.

    toodsrespawn = vgui.Create( "DFrame" ) -- Begin the main panel that pops up.
    toodsrespawn:SetSize( 1250, 720 ) -- How big do we want this panel on the players screen.
    toodsrespawn:Center() -- Center the panel on the players screen.
    toodsrespawn:SetTitle( "" ) -- Leave this blank to remove that annoying white title in the top left corner of the panel.
    toodsrespawn:ShowCloseButton( false ) -- We create our own nicer looking close button so set this to false or true if you want to keep the default X.
    toodsrespawn:MakePopup() -- It needs to pop up of course.
    toodsrespawn.Paint = function( self, w, h ) -- Lets begin to give the panel a nice color and box.
    surface.SetDrawColor( 255, 255, 255, 255 ) -- Set this to white if you use a custom material or you can just choose a random color if you don't use a material.
    surface.SetMaterial( background ) -- Yes lets give it the material we added in above in local background =
    surface.DrawRect( 0, 0, w, h ) -- Make the panel a square shape. Use draw.RoundedBox() if you want to curve the edges instead.
    surface.DrawTexturedRect( 0, 0, w, h ) -- We need the panel to have a textured rect or the material might not render properly.
    draw.DrawText( GetHostName() .. "\n" .. "\n" .. -- What text do we want to display when this pops up? See below too.
    [[You are a recruit.
    You cannot pass until you have been trained.
    Please click the button below to call for a trainer. ]], "ToodsFontV1", 600, 230, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
    end

    closebutton = vgui.Create( "DButton", toodsrespawn ) -- Lets create our close button for the player to click and close the panel.
    closebutton:SetPos( 450, 550 ) -- Where do we want this button on the panel?
    closebutton:SetSize( 300, 50 ) -- How big is the button?
    closebutton:SetFont( "ToodsFontV2" ) -- What font do we want the text on the button to be.
    closebutton:SetText( [[      I'm ready
     to be trained!]] ) -- Lets write some text on the button.
    closebutton.Paint = function( self, w, h ) -- Same as the paint function above.
    draw.RoundedBox( 8, 0, 0, w, h, Color( 30, 30, 30, 225 ) ) -- But this time we draw a rounded box as we want to curve the edges a little bit.
    if closebutton:IsHovered() then -- If the player is hovering their cursor over the button then run the code below.
        closebutton:SetColor( Color( 0, 150, 255, 255 ) ) -- When hovering over then set the text to a nice blue color.
    else
        closebutton:SetColor( Color( 255, 255, 255, 255 ) ) -- If the cursor is not hovered over the button then set the text color to white.
    end
end
    closebutton.DoClick = function() -- What happens when the player clicks the button to close the menu?
    toodsrespawn:Remove() -- It will remove the entire panel from the player's screen.
    timer.Simple( 2, function() -- Create a timer that when the panel is closed then wait 2 seconds and it prints to everyones chat the text below notifying the playerbase that a trainer is needed.
    ply:PrintMessage( 3, "Trainer to spawn please" )
    ply:PrintMessage( 3, "Trainer to spawn please" )
    ply:PrintMessage( 3, "Trainer to spawn please" )
        end )
    end
end )
----------------------------------------------------------------
Something else? Sure, let's do my custom entity boost script.

This entity, when used, will provide the player with a temporary boost to either their health, armor, speed or jump height.

shared.lua
Code:
ENT.Type = "anim" -- This means it's a prop or has some sort of physical function/presence on the server.
ENT.Base = "base_gmodentity" -- Well it's derived from gmod entities so we need to let the server know this.

ENT.Author = "Tood/The Toodster/Andrew." -- Who is the author of this entity? This is optional.
ENT.Contact = "Discord - @The Toodster#0001" -- How do players contact the author if any issues arise? This is also optional.

ENT.AdminOnly = true -- If you have ranks such as Tmod and Mod and you want to let them spawn this in then set this to false.
ENT.Spawnable = true -- We definitely want to be able to spawn this in.

ENT.PrintName = "Random Holocron" -- Name of the entity in the category inside the Q menu entities tab.
ENT.Category = "Tood's Holocrons V1" -- Category where the entity is found.

cl_init.lua
Code:
include( "shared.lua" )

function ENT:Initialize() -- Initialize and begin the entity on the client.

    local clientskins = { -- This table will be called on later in the code, this will be called to set the skin of the entity randomly.
        "0",
        "1",
        "2",
        "3",
        "4"
    }

    self.GetHoloModel = ClientsideModel( "models/machine/srsp/holocron/srsp_holocron_05.mdl" ) -- This is clientside so make sure you call the ClientsideModel()
    self.GetHoloModel:SetSkin( table.Random( clientskins ) ) -- Set the skin randomly each time it is dropped or spawned in, call on the table above.
end

function ENT:Draw() -- Lets begin to draw the model of the entity on the client.
    local GetHoloAngle = CurTime() * 90 % 360 -- Gets the angle of the entity and spins it, * 90 is how fast it will spin and % 360 is it will constantly spin in a circle motion.
    local GetHoloHeight = math.sin( CurTime() * 3 ) * 5 -- This makes the entity float up and down, * 3 is how fast it will move up and down and * 5 is how high.
   
    self.GetHoloModel:SetPos( self:GetPos() + Vector( 0, 0, GetHoloHeight + 10 ) ) -- Get the position of the entity and set the position to just above the ground.
    self.GetHoloModel:SetAngles( Angle( 0, GetHoloAngle, 0 ) ) -- Set the angle to the local variable we created above.
end

function ENT:OnRemove() -- Creates a function so the entity will disappear from the client.
    self.GetHoloModel:Remove() -- Remove the entity.
end

init.lua
Code:
AddCSLuaFile( "cl_init.lua" )
AddCSLuaFile( "shared.lua" )

include( "shared.lua" )

--[[----------------------------------
        Create the entity itself
--]]----------------------------------

local holoskins = {
    "0",
    "1",
    "2",
    "3",
    "4"
}

function ENT:Initialize()
    self:SetModel( "models/machine/srsp/holocron/srsp_holocron_05.mdl" )
    self:PhysicsInit( SOLID_VPHYSICS )
    self:SetMoveType( MOVETYPE_NONE )
    self:SetSolid( SOLID_VPHYSICS )
    self:SetSkin( table.Random( holoskins ) )
   
local holorandom = self:GetPhysicsObject()

    if holorandom:IsValid() then
        holorandom:Wake()
    end
end

--[[-----------------------------------
                NPC drop hook
--]]-----------------------------------

-- This hook is called when an NPC is killed and what happens when that NPC is killed.

hook.Add( "OnNPCKilled", "ToodsHooksV1", function( npc, killer, weapon )
   
    local droprate = math.random( 1, 800 ) -- Lets assign chances of this entity dropping from NPCs
   
    if npc:IsValid() and killer:IsPlayer() then
   
    if droprate >= 1 and droprate <= 250 then -- If the chance is quite rare between 1 and 250 then drop the
-- entity from the NPC
    local droprandomholo = ents.Create( "randomholo" ) -- Run the entity when we create it.
    droprandomholo:SetPos( npc:LocalToWorld( npc:OBBCenter() ) ) -- Set the position of the drop to the
-- center of where the NPC was stationed.
    droprandomholo:Spawn() -- Spawn the entity.
    droprandomholo:Activate() -- Activate the function.
    end
   
    end
end )


--[[-------------------------------------
                Table values
--]]-------------------------------------

-- These tables are called on from the entities below. These random values is what the player gets when
-- they press +USE on the entity.

local basicarmor = {
"5", "8", "11", "13", "16", "19", "22",
"23","25","27","2","30","31","32","35",
"37","39","42","45","47","50"
}

local mediumarmor = {
"51", "54", "57", "60", "61", "65", "68",
"69", "70", "72", "74", "75", "77", "79",
"80", "84", "89", "92", "95", "98", "100"
}

local higharmor = {
"103", "105", "108", "112", "115", "116", "119",
"120", "124", "127", "130", "132", "135", "137",
"139", "141", "143", "145", "147", "149", "150"
}

local basichealth = {
"110", "120", "130", "140", "150", "160", "170",
"180", "190", "200", "210", "220", "230","240",
"250", "260", "270", "280", "290", "300", "310"
}

local mediumhealth = {
"320", "340", "360", "380", "400", "420", "440",
"460", "480", "500", "520", "540", "560", "580",
"600", "620", "640", "660", "680", "700", "720"
}

local highhealth = {
"720", "740", "760", "780", "800", "820", "840", "860",
"880", "900", "920", "940", "960", "980", "1000", "1020"
}

local basicjump = {
"2", "4", "6", "8", "10", "12",
"14", "16", "18", "20", "22"
}

local mediumjump = {
"22", "24", "26", "28", "30",
"32", "34", "36", "38", "40"
}

local highjump = {
"45", "50", "55",
"60", "65", "70"
}

local basicspeed = {
"10", "15", "20",
"25", "25", "30"
}

local mediumspeed = {
"32", "34", "36", "38", "40",
"42", "44", "46", "48", "50"
}

local highspeed = {
"55", "60", "65", "70", "75",
"80", "85", "90", "95", "100"
}

--[[-------------------------------------
    Use function to pick up holocron
--]]-------------------------------------

-- This is what will happen when the player presses +USE on the entity.

function ENT:Use( ply )

local droprate1 = math.random( 1, 1000 ) -- Assign a chance.
   
    if ply:IsValid() and ply:IsPlayer() then

local defaulthealth = ply:Health() -- Get the players default health.
local defaultarmor = ply:Armor() -- Get the players default armor.
local defaultjump = ply:GetJumpPower() -- Get the players default jump height.
local defaultspeed = ply:GetRunSpeed() -- Get the players default movement speed.

-- Yes I could do all the tables below in 1 big table but I'm picky so leave me alone!

-- These tables are randomly called when the entity is used, it will give the player a random value of extra
-- armor, health, jump height or movement speed for 15 seconds then it will reset the players health back to
-- the default values we stated above.

local basicvalues = {
    [1] = function() ply:SetHealth( ply:Health() + table.Random( basichealth ) )ply:ChatPrint( "Your Health is now set to " .. ply:Health() .. " for 15 seconds! Use it well!" ) timer.Simple( 15, function() ply:SetHealth( defaulthealth ) ply:ChatPrint( "Your Health has been reset back to " .. defaulthealth ) end ) end,
    [2] = function() ply:SetArmor( ply:Armor() + table.Random( basicarmor ) )ply:ChatPrint( "Your Armor is now set to " .. ply:Armor() .. " for 15 seconds! Use it well."  )timer.Simple( 15, function() ply:SetArmor( defaultarmor ) ply:ChatPrint( "Your Armor has been reset back to " .. defaultarmor ) end ) end,
    [3] = function() ply:SetRunSpeed( ply:GetRunSpeed() + table.Random( basicspeed ) )ply:ChatPrint( "Your Movement Speed is now set to " .. ply:GetRunSpeed() .. " for 15 seconds! Use it well." )timer.Simple( 15, function() ply:SetRunSpeed( defaultspeed ) ply:ChatPrint( "Your Movement Speed has been reset back to " .. defaultspeed ) end ) end,
    [4] = function() ply:SetJumpPower( ply:GetJumpPower() + table.Random( basicjump ) )ply:ChatPrint( "Your Jump Height is now set to " .. ply:GetJumpPower() .. " for 15 seconds! Use it well." )timer.Simple( 15, function() ply:SetJumpPower( defaultjump ) ply:ChatPrint( "Your Jump Height has been reset back to " .. defaultjump ) end ) end
}

local mediumvalues = {
    [1] = function() ply:SetHealth( ply:Health() + table.Random( mediumhealth ) )ply:ChatPrint( "Your Health is now set to " .. ply:Health() .. " for 15 seconds! Use it well!" ) timer.Simple( 15, function() ply:SetHealth( defaulthealth ) ply:ChatPrint( "Your Health has been reset back to " .. defaulthealth ) end ) end,
    [2] = function() ply:SetArmor( ply:Armor() + table.Random( mediumarmor ) )ply:ChatPrint( "Your Armor is now set to " .. ply:Armor() .. " for 15 seconds! Use it well." ) timer.Simple( 15, function() ply:SetArmor( defaultarmor ) ply:ChatPrint( "Your Armor has been reset back to " .. defaultarmor ) end ) end,
    [3] = function() ply:SetRunSpeed( ply:GetRunSpeed() + table.Random( mediumspeed ) )ply:ChatPrint( "Your Movement Speed is now set to " .. ply:GetRunSpeed() .. " for 15 seconds! Use it well." ) timer.Simple( 15, function() ply:SetRunSpeed( defaultspeed ) ply:ChatPrint( "Your Movement Speed has been reset back to " .. defaultspeed ) end ) end,
    [4] = function() ply:SetJumpPower( ply:GetJumpPower() + table.Random( mediumjump ) )ply:ChatPrint( "Your Jump Height is now set to " .. ply:GetJumpPower() .. " for 15 seconds! Use it well." ) timer.Simple( 15, function() ply:SetJumpPower( defaultjump ) ply:ChatPrint( "Your Jump Height has been reset back to " .. defaultjump ) end ) end
}

local highvalues = {
    [1] = function() ply:SetHealth( ply:Health() + table.Random( highhealth ) ) ply:ChatPrint( "Your Health is now set to " .. ply:Health() .. " for 15 seconds! Use it well!" ) timer.Simple( 15, function() ply:SetHealth( defaulthealth ) ply:ChatPrint( "Your Health has been reset back to " .. defaulthealth ) end ) end,
    [2] = function() ply:SetArmor( ply:Armor() + table.Random( higharmor ) ) ply:ChatPrint( "Your Armor is now set to " .. ply:Armor() .. " for 15 seconds! Use it well." ) timer.Simple( 15, function() ply:SetArmor( defaultarmor ) ply:ChatPrint( "Your Armor has been reset back to " .. defaultarmor ) end ) end,
    [3] = function() ply:SetRunSpeed( ply:GetRunSpeed() + table.Random( highspeed ) ) ply:ChatPrint( "Your Movement Speed is now set to " .. ply:GetRunSpeed() .. " for 15 seconds! Use it well." ) timer.Simple( 15, function() ply:SetRunSpeed( defaultspeed ) ply:ChatPrint( "Your Movement Speed has been reset back to " .. defaultspeed ) end ) end,
    [4] = function() ply:SetJumpPower( ply:GetJumpPower() + table.Random( highjump ) ) ply:ChatPrint( "Your Jump Height is now set to " .. ply:GetJumpPower() .. " for 15 seconds! Use it well." ) timer.Simple( 15, function() ply:SetJumpPower( defaultjump ) ply:ChatPrint( "Your Jump Height has been reset back to " .. defaultjump ) end ) end
}
   
--[[-----------------------------------------------
                Call on highvalues here
--]]-----------------------------------------------
   
-- If the chance is between 1 and 100 then call from the highvalues table above.

    if droprate1 >= 1 and droprate1 <= 100 then
    highvalues[math.random( 1, 4 )]()
   
--[[----------------------------------------------
                Call on mediumvalues here
--]]----------------------------------------------

-- If the chance is between 101 and 350 then call from the mediumvalues table above.

    elseif droprate1 >= 101 and droprate1 <= 350 then
    mediumvalues[math.random( 1, 4 )]()
   
--[[-----------------------------------------------
                Call on basicvalues here
--]]-----------------------------------------------

-- If the chance is between 351 and 1000 then call from the basicvalues table above.

    elseif droprate1 >= 351 and droprate1 <= 1000 then
    basicvalues[math.random( 1, 4 )]()
   
    else
    ply:ChatPrint( "Invalid request. Try again." ) -- If it doesn't work for some reason then print this in the
-- players chat.
   
    end
   
    self:Remove() -- When the player has received their buff then remove the entity.
   
    end
end

Thank you for taking the time to read through my application, if anyone has any questions then please do not hesitate to contact me on discord - @The Toodster#0001 or drop me a message on the forums.
 

Titan/Zxzzii

Section Yuh-Nuh
Advisor
Starwars
Head Admin
Joined
May 27, 2019
Messages
109
Points
18
Age
28
BIG +1 he is one of the best DEVs I have met.
 

William

President
President
Years of Service
Joined
Jan 17, 2017
Messages
439
Points
93
Accepted.

Lets speak on Teamspeak we can set up a time for.
 
Status
Not open for further replies.
Top