Simple Help Needed :D

Hello everyone, so a friend of mine is re-editing an old gamemode and he’s a bit confused on some parts.

We already have a level system down, and different jobs you can pick. (It’s not roleplay, it’s a campaign (Get to this point, like left4dead.) gamemode.

In the init.lua file, we have:



local job = Jobs[ply:GetNetworkedInt("job")]


In our shared, this is where the jobs are customized:



Jobs[1] = {JNAME = "Shotgunner", USE_WEPGROUP = 1, PLAYERMODEL= "models/player/Group03/Female_02.mdl",}
Jobs[2] = {JNAME = "Rifleman", USE_WEPGROUP = 2, PLAYERMODEL = "models/player/Group03/male_08.mdl"}


So we have our level system by experience points, we got around 100 levels, intact.
We need help making it so that if a player is not a certain level, they will get a message you “Cannot use that Job” and it will use the default job.

Our CheckLevel function is for example:



if ply:CheckLevel() >= 2 then
//If the player is a higher level than 2 then do whatever


Here is a forced function for a user to use this job:



self:SetNetworkedInt( "job", 1)


Can anyone come up with a code for something similar to this?:



if playerchose [Job[2]] then
         if ply:CheckLevel() >=15 then
         self:SetNetworkedInt( "job", 2)
else
         message("You are not high enough level for this job.")
         self:SetNetworkedInt("job", 1) // Change to job 1 which is default.


Thank you in advance :smiley:

uhm i made this in notepad. i dont know if its any good or not.

[lua]
local level = { 10, 20, 30, 40 } – Choose what lvl the diffrent jobs need
local selectedJob = 3 --Id of the job theyr trying to use a number like 2,3,4

if playerchose [Job[level[selectedJob]]] and ply:CheckLevel() >= level[selectedJob] then
self:SetNetworkedInt( “job”, selectedJob )
else
message(“You need level " … level[selectedJob] … " or higher to have this job”
self:SetNetworkedInt(“job”, 1)
end[/lua]

I don’t have a playerchose command xD

okei xD will this work though?

i was thinking you could have this inside some function that changes job. and the function inputs the index for the job

[lua]
function changejob( ply, args )
local level = { 10, 20, 30, 40 } – Choose what lvl the diffrent jobs need
local selectedJob = tonumber(args[1]) --Id of the job theyr trying to use a number like 2,3,4

if ply:CheckLevel() >= level[selectedJob] then
	self:SetNetworkedInt( "job", selectedJob )
else
	message("You need level " .. level[selectedJob] .. " or higher to have this job"	
	self:SetNetworkedInt("job", 1)
end	

end
concommand.Add(“change_job”,changejob)
[/lua]

and you could use this from a derma menu

[lua]
local JobButton1 = DermaMenu()
JobButton1:AddOption(“Yes.”, function() RunConsoleCommand( “change_job”, “2” ) JobMenu:Close() end )
JobButton1:AddOption(“No.”, function() end )
JobButton1:Open()
end
[/lua]

please lat me know if this was helpfull:P

I already have a menu for choosing jobs already and such D:
Anyways, would this code work?




if job = [2] then
         if ply:CheckLevel() >=15 then
         self:SetNetworkedInt( "job", 2)
else
         message("You are not high enough level for this job.")
self:SetNetworkedInt( "job", 1)
end



change the first line there to:
if job == 2 then

and change both "self"s to ply

[editline]21st March 2011[/editline]

Oh and change the message(“whatever”) to ply:ChatPrint(“whatever”)

Comma at the end of that line isn’t supposed to be there

Actually lua doesn’t care if it’s there or not.