• help needed
    11 replies, posted
Im trying to make the classes unlock able in accordance to the players rank on onslaught. so far i have: [lua]if Classes[3] then if ply:GetRank() < 3 then ply:ChatPrint("You must be a corporal or above to use this class!") return end[/lua] I believe its the 'if Classes[3] then' part. Im trying to get the class number from the Classes table but im not quite sure how. Any help is appreciated and sorry for being such a noob :3 [highlight](User was banned for this post ("Wrong section" - mahalis))[/highlight]
To get any help, you're probably going to have to post the structure of the Classes table and what the 'class number' is.
[QUOTE=yakahughes;20191551]To get any help, you're probably going to have to post the structure of the Classes table and what the 'class number' is.[/QUOTE] okay here is the class table [lua]Classes = {} Classes[1] = {NAME = "Scout", SPEED = 650, JUMP = 260, WEAPON_SET = 1, HEALTH = 100, AMMO = {2,11}, MODEL = "models/player/Group03/Female_02.mdl", DSCR = "A fast and agile class the scout is perfect for those who like to be in the action."} Classes[2] = {NAME = "Soldier", SPEED = 250, JUMP = 200, ARMOR = 50, WEAPON_SET = 2, HEALTH = 200,AMMO = {1,2,8,6}, MODEL = "models/player/Group03/male_08.mdl", DSCR = "A perfect for those defensive players featuring a wide range of weapons the soldier is a perfect well balanced class." } Classes[3] = {NAME = "Engineer", SPEED = 300, JUMP = 160, WEAPON_SET = 3, HEALTH = 120, AMMO = {2,4}, MODEL = "models/player/Group03/male_03.mdl", DSCR = "With the ability to make turrets and dispensers the engineer is truly an invaluable class." } Classes[4] = {NAME = "Sniper", SPEED = 270, JUMP = 160, WEAPON_SET = 4, HEALTH = 80,AMMO = {7,5}, MODEL = "models/player/Group03/male_06.mdl", DSCR = "The Sniper is the useful for taking out incoming enemies but its lack of health and speed requires you to keep cover!"} Classes[5] = {NAME = "Pyro", SPEED = 450, JUMP = 210, WEAPON_SET = 5, HEALTH = 150, AMMO = {2,10,12,8}, MODEL = "models/player/Group03/male_07.mdl", DSCR = "The pyro has the ability to set enemies alight and place mines to send those enemies fliying!" } Classes[6] = {NAME = "Medic", SPEED = 500, JUMP = 210, WEAPON_SET = 6, HEALTH = 100, AMMO = {13}, MODEL = "models/player/Group03/Female_04.mdl", DSCR = "Acting as the team medic, the support helps keep the team alive and the base standing." } Classes[7] = {NAME = "Berserker", SPEED = 250, JUMP = 200, WEAPON_SET = 7, HEALTH = 400, AMMO = {8}, MODEL = "models/player/Group03/male_03.mdl", DSCR = "The Berserker has a very high amount of health and hits... HARD!" }[/lua]
And what are you trying to do exactly? What is 'get the class number' mean, if you already have Classes[3]?
[lua] if Classes[3] and ply:GetRank() <= 3 then ply:ChatPrint("You must be a corporal or above to use this class!") return end [/lua] or if you still wanted to do it your way, you forget one END on the end :)
[QUOTE=yakahughes;20191856]And what are you trying to do exactly? What is 'get the class number' mean, if you already have Classes[3]?[/QUOTE] im trying to do in words. If classes [3] is selected and your rank is below 3 then you cant use that class but i couldnt do the if classes [3] is selected.
[QUOTE=bjmh777;20192140]if classes [3] is selected.[/QUOTE] How is classes[3] selected
[QUOTE=antid2;20192102][lua] if Classes[3] and ply:GetRank() <= 3 then ply:ChatPrint("You must be a corporal or above to use this class!") return end [/lua] or if you still wanted to do it your way, you forget one END on the end :)[/QUOTE] I tried it antid2 but i could still change class. I could change to any class and it said "You must be a corporal or above to use this class!" for every class. here is all of my class function if it helps [lua]function Class(ply,com,args) local newclass = tonumber(args[1]) if !Classes[newclass] then return end ply:SetNetworkedInt("class", newclass ) for k,v in pairs( ents.GetAll( ) ) do if v:IsNPC() || v:GetClass() == "ose_mines" then v:CheckValidOwnership() end end if PHASE == "BATTLE" && ply:Alive() then ply.NextSpawn = CurTime() + SPAWN_TIME + (#player.GetAll() * ADD_SPAWN_TIME) ply:Kill() else ply:ChatPrint("You will spawn as "..Classes[newclass].NAME.." in the battle phase") end if Classes[3] and ply:GetRank() <= 3 then ply:ChatPrint("You must be a corporal or above to use this class!") return end end [/lua] [editline]06:07PM[/editline] [QUOTE=yakahughes;20192247]How is classes[3] selected[/QUOTE] by either the command join_class 3 or on the qmenu and clicking on the class
You should use newclass == 3 instead of Classes[3]
[QUOTE=esalaka;20192477]You should use newclass == 3 instead of Classes[3][/QUOTE] thanks esalaka. It works now except the class is still changes. I need to code it now so it doesnt change class or changes to another if it is selected.
Put the if newclass == 3... thing right below if !Classes[newclass] then return end. You're checking if they can do it after you've already done it.
[QUOTE=yakahughes;20192676]Put the if newclass == 3... thing right below if !Classes[newclass] then return end. You're checking if they can do it after you've already done it.[/QUOTE] *facepalm* Of course. Thanks for all your help guys.
Sorry, you need to Log In to post a reply to this thread.