• [EVOLVE][SANDBOX] How to give Ranked Players Weapons when Spawning
    16 replies, posted
Hello, I'm not very educated in the field of lua scripting, only besides its use and specific variable inputs. Here's my problem: I'm attempting to create a lua script to give different ranked players different assortments of weapons when they spawn. The Server I manage uses the admin mod EVolve, and the weapons i'm trying to set are m9k. Here's the idea: Rank (gets) weapons Client (=) colt1911, tec9, m3 The weapon names are: m9k_colt1911 m9k_tec9 m9k_m3 From what I know with EVolve, when using "usergroups", it's EV_GetRank. [B][url]http://evolvemod.googlecode.com/svn-history/r149/trunk/beta/lua/ev_framework.lua[/url][/B] How would one go about setting up a simple script that would give a client joining the server the above weapons? Any constructive input would be greatly appreciated, I've looked all over for a script that would barely resemble this function, yet I have not come across one, I bet i'm not the only one who wishes to have access to such a script..
You serious? I made you a script already and it works.
[CODE]//lua/autorun/server local SBOX_WB = { ["servermanager"] = {"m9k_colt1911"}, ["specialguest"] = {"weapon_zm_revolver", "weapon_ttt_m16"} } hook.Add("PlayerSpawn", "SBOX_WB.PlayerSpawn", function(ply) local benefits = ply:GetNWString("usergroup") if (ply.EV_GetRank) then benefits = ply:EV_GetRank() end print(benefits) benefits = SBOX_WB[benefits] PrintTable(benefits) if !benefits then return end for k,v in ipairs(benefits) do ply:Give(v) end end)[/CODE] This one works? I'm running the code now.
If you don't know how to check the console to see what prints, I can't help you any further.
Switch lines 14 and 15 with eachother.
[QUOTE=brandonj4;42437085]If you don't know how to check the console to see what prints, I can't help you any further.[/QUOTE] [ERROR] lua/includes/util.lua:54: bad arguement #1 to 'pairs' <table expected, got nil> 1. pairs - [c]:-2 2. PrintTable - lua/includes/util.lua:54 3. v - lua/autorun/server/weapons.lua:13 4. unknown - lua/includes/modules/hook.lua:82
What does it print before that? It should print "nil" or "servermanager".
rewent over the error, and that's what I got again. There is nothing before that. It's just <table expected, got nil>
I did, how do I upload? It asks for a URL to post image
Here is the exact script (correct me if i'm wrong) that I was provided, that gives the error [IMG]http://i.imgur.com/a3eROHm.png[/IMG] and Here is the Error Code (Bottom in Blue) [IMG]http://i.imgur.com/8ElIZPZ.png[/IMG] I am the Server Manager, Chris. When I join, this is the error that shows, and I spawn striped, with no player model, and ranks are completely non-existent. Very very weird, any ideas on why this is?
Welp, here you are!
Just remove the PrintTable line and it will work fine. The error is only caused because it's printing a nil table. Make sure you set the table ranks accordingly, yours' is destroyer, which is not in the table so you will get nothing.
[QUOTE=OzymandiasJ;42446069]Just remove the PrintTable line and it will work fine. The error is only caused because it's printing a nil table. Make sure you set the table ranks accordingly, yours' is destroyer, which is not in the table so you will get nothing.[/QUOTE] I'm not so sure what the print table line is in this: [CODE]//lua/autorun/server local SBOX_WB = { ["servermanager"] = {"m9k_colt1911"}, ["specialguest"] = {"weapon_zm_revolver", "weapon_ttt_m16"} } hook.Add("PlayerSpawn", "SBOX_WB.PlayerSpawn", function(ply) local benefits = ply:GetNWString("usergroup") if (ply.EV_GetRank) then benefits = ply:EV_GetRank() end print(benefits) benefits = SBOX_WB[benefits] PrintTable(benefits) if !benefits then return end for k,v in ipairs(benefits) do ply:Give(v) end end)[/CODE]
This is what he's talking about... PrintTable(benefits)
[CODE]//lua/autorun/server local SBOX_WB = { ["servermanager"] = {"m9k_colt1911"}, ["specialguest"] = {"weapon_zm_revolver", "weapon_ttt_m16"} } hook.Add("PlayerSpawn", "SBOX_WB.PlayerSpawn", function(ply) local benefits = ply:GetNWString("usergroup") if (ply.EV_GetRank) then benefits = ply:EV_GetRank() end print(benefits) benefits = SBOX_WB[benefits] if !benefits then return end for k,v in ipairs(benefits) do ply:Give(v) end end)[/CODE] Testing this code now. [editline]8th October 2013[/editline] Not getting errors, that's a good sign, though as a Server Manager, upon joining the server, no colt 1911, nor does console mention the script
Sorry, you need to Log In to post a reply to this thread.