• Help With PlayerSay Hook
    4 replies, posted
So here's what's up. im trying to make this script that when you say "/pay arg[1] arg[2]" it pays your arg[1] arg[2] dollars. They had this on wiki. [lua] function ISaid( ply, text, toall ) if (string.sub(text, 1, 4) == "/pay") then--if the first 4 letters are /all continue return "[Global]"..string.sub( text, 5 );--add [Global] infront of the players text then display end return text;--if its just a normal chat message, display normally end hook.Add( "PlayerSay", "ISaid", ISaid ); [/lua] and i could change it to [lua] function ISaid( ply, text, toall ) Whotopay = arg[1] Amounttopay = arg[2] if (string.sub(text, 1, 4) == "/pay") then--if the first 4 letters are /all continue //Run function here for examle... ply:PayPlayer(Whotopay, Amounttopay) end end hook.Add( "PlayerSay", "ISaid", ISaid ); [/lua] But how do i get the values of arg[1] and arg[2]?? i would have to use somthing like [lua] local texttable = string.Explode(" ",txt) [/lua] to get the next value after "/pay" right? I search google and i could not find anything so i am now here on facepunch trying to get the answer. Help is greatly appreciated.
string.Explode gives args[2] and args[3] Right on the dot.
[QUOTE=Gbps;16509895]string.Explode gives args[2] and args[3] Right on the dot.[/QUOTE] Yes and if i am correct i could use somthing like this to get the values of them. [lua] Topay = texttable[1] Amounttopay = texttable[2] [/lua]
I think this is what you want: [lua]function GiveMoney(ply,text) if string.sub(text,1,4) == "/pay" then local words = string.Explode(" ",text) -- This cuts up the sentence into words in a table ply:PayPlayer(words[2],words[3]) -- words[2] is the second word, like "Entoros", and words[3] would be "50" return "" end end hook.Add("PlayerSay","PayMoney",GiveMoney)[/lua]
Thanks i knew i was on the right track. Thanks to everyone that helped me.
Sorry, you need to Log In to post a reply to this thread.