[B][U]Support Ticket System[/U][/B]
[B]Version: beta.2.2[/B]
[B]What is this?[/B]
This is a gmod addon that allows players to create support tickets and admins can then view them and respond to them! This addon will be released for free however MIGHT have a paid version with many more features and even web support! (answering tickets when not even online!)
[B]What are the current features?[/B]
- Enter your own command to open the menu (default is !support)
- Enable/Disable rainbow intro
- Select your admin mod
- Select your fav saving method
- MySQL support
- Enter custom support reasons
- Enter your ranks that are admin
- Change ServerID (multi server support)
- Comments for chat back and forth!
- System auto organizes the tickets by priority and status
- +More
- Public beta (i guess this is not a feature but hey people want it!)
[B]Why is this in beta?[/B]
This addon is currently in beta just because i need YOUR help testing it now it should work perfect but will have a few bugs so please report them [URL="https://github.com/GMODDFH/lmm_ticket_system/issues"]here[/URL] and also dont bash me for having bugs i needed testing here and i am stating that this addon is in beta... However this addon is still safe so dont worry about that!
There is some info in the readme for developers on how to add more admin mods.. Now i have never worked with any other admin mods so i would like the help of devs out there! You can check out the instructions [URL="https://github.com/GMODDFH/lmm_ticket_system/blob/master/README.md"]here[/URL] thanks!
[URL="https://github.com/GMODDFH/lmm_ticket_system/"]Download via github[/URL]
Youtube Video... Now for the beta version the video is unlisted the video will be released to youtube when its out of beta!
[video]https://youtu.be/IEQI0_vdPCQ[/video]
[B]Change Log:[/B]
[code]
beta.2.1 - beta.2.2
+ Small bug fix (text was tmysql4 instead of tmysql whoops!)
+ Text saving "exploit" fix (not really a major exploit but a bug)
beta.2.0
Huge jump.. i know but this is a HUGE update
+ Removed the 3 sec timer to create tickets
+ Added support for text saving!
+ Deleted some cl functions/net functions and combined them into one!
+ Fixed sizes on the open tickets page
+ More small fixes
beta.0.1
+ Added more sql protection
beta.0.0
+ First Beta Version
[/code]
NOTE: Please use this thread to give me critisim and to tell me what to do better please put all bug reports [URL="https://github.com/GMODDFH/lmm_ticket_system/issues"]here[/URL] thanks!
Many big things are planned for the future of this addon!
It doesn't seem exploitable but there's a lot of code that could be changed and done in a lot less lines or more efficiently. The big example that stands out to me is adding seperate net messages for if the panel should be animate or not, when you could just use 1 net message and and if statement clientside, just make the config shared and have a seperate config server side only for mysql
[editline]25th July 2016[/editline]
Also beta is not a feature
[QUOTE=meharryp;50772760]It doesn't seem exploitable but there's a lot of code that could be changed and done in a lot less lines or more efficiently. The big example that stands out to me is adding seperate net messages for if the panel should be animate or not, when you could just use 1 net message and and if statement clientside, just make the config shared and have a seperate config server side only for mysql
[editline]25th July 2016[/editline]
Also beta is not a feature[/QUOTE]
Alright i will fix up some stuff like that thanks and yes i know but hey people like betas.. i do!
There's a lot of reused code. Make a helper function or merge some of the net messages into one.
Also your sql is injectable.
Looks good otherwise from my 40 seconds of browsing the code
[QUOTE=Derek_SM;50772900]There's a lot of reused code. Make a helper function or merge some of the net messages into one.
Also your sql is injectable.
Looks good otherwise from my 40 seconds of browsing the code[/QUOTE]
I added the string escapes could you tell me what line exactly and where.. thanks and what do you mean by a helper function?
[QUOTE=XxLMM13xXx;50772965]I added the string escapes could you tell me what line exactly and where.. [/QUOTE]
[url]https://github.com/GMODDFH/lmm_ticket_system/blob/master/lua/autorun/server/sv_lmmts.lua#L159[/url]
'id' isn't escaped.
[QUOTE=Sudoxe;50773333][url]https://github.com/GMODDFH/lmm_ticket_system/blob/master/lua/autorun/server/sv_lmmts.lua#L159[/url]
'id' isn't escaped.[/QUOTE]
Ah thanks i added that escaped there and everywhere else (double checked)
[QUOTE=XxLMM13xXx;50773390]Ah thanks i added that escaped there and everywhere else (double checked)[/QUOTE]
[url]https://github.com/GMODDFH/lmm_ticket_system/blob/master/lua/autorun/server/sv_lmmts.lua#L162[/url]
escape player names too.
[QUOTE=Sudoxe;50773426][url]https://github.com/GMODDFH/lmm_ticket_system/blob/master/lua/autorun/server/sv_lmmts.lua#L162[/url]
escape player names too.[/QUOTE]
Ah good call would have never thought of that... Updated [URL="https://github.com/GMODDFH/lmm_ticket_system/commit/370775bea1ba17154006da79bce8d428bcf07cbd"]here[/URL] however im not gonna make that a new update
Pretty cool
[QUOTE=meatwad253;50773865]Pretty cool[/QUOTE]
Thanks! I have many awesome plans for this so stay tuned! Also report all issues [URL="https://github.com/GMODDFH/lmm_ticket_system/issues"]here[/URL]
helper functions are functions, which you use to prevent rewriting a whole block of code multiple times, simply put that block into the function, and replace the reused blocks with that function.
[QUOTE=whitestar;50774265]helper functions are functions, which you use to prevent rewriting a whole block of code multiple times, simply put that block into the function, and replace the reused blocks with that function.[/QUOTE]
I think i understand i will do something like this!
[QUOTE=XxLMM13xXx;50774279]I think i understand i will do something like this![/QUOTE]
Heres an public, probably for you better understandable, explaination:
"[B]Helper functions are (what I believe the most people mean when they say it) usually functions that wrap some useful functionality that you're going to reuse, most likely over and over again. You can create helper functions meant to be used for many different kinds of purposes...[/B]"
- [I]Stackoverflow[/I]@[B]LihO[/B]
can you please not use a rainbow physgun in videos? thank you
[QUOTE=Sir TE5T;50774326]can you please not use a rainbow physgun in videos? thank you[/QUOTE]
He can do what he wants in his videos? If you dont like it, then simply dont watch it. Easy.
[QUOTE=Sir TE5T;50774326]can you please not use a rainbow physgun in videos? thank you[/QUOTE]
Why not....
[QUOTE=whitestar;50774332]He can do what he wants in his videos? If you dont like it, then simply dont watch it. Easy.[/QUOTE]
Yeah i dont undertand why i cant...
[editline]25th July 2016[/editline]
[QUOTE=whitestar;50774298]Heres an public, probably for you better understandable, explaination:
"[B]Helper functions are (what I believe the most people mean when they say it) usually functions that wrap some useful functionality that you're going to reuse, most likely over and over again. You can create helper functions meant to be used for many different kinds of purposes...[/B]"
- [I]Stackoverflow[/I]@[B]LihO[/B][/QUOTE]
Thanks!
I've seen you create small projects like this for awhile now, though I honestly don't understand how you don't know many of the [b]very[/b] common coding practices.
A few examples are
1. Not wrapping overly used code in functions
2. Barely using local variables
3. Mixing tabs and spaces (makes me think code is copy-pasted)
Alongside those things you're creating functions such as `[URL="https://github.com/GMODDFH/lmm_ticket_system/blob/master/lua/autorun/server/sv_lmmts.lua#L91"]LMMTSGetPlayerBySteamID64[/URL]`, which uses the exact implementation of [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/player/GetBySteamID64]player.GetBySteamID64[/url].
It seems you're trying very little to learn from old mistakes, I'd serously suggest you read something like [URL="www.lua.org/pil/contents.html"]www.lua.org/pil/contents.html[/URL]. At the very least read over it and take in a few of the notes it makes about things.
Looks good but, please remove the timer or atleast let the users configure how long thier players have to wait until they can create a ticket.
[QUOTE=bigdogmat;50774713]I've seen you create small projects like this for awhile now, though I honestly don't understand how you don't know many of the [b]very[/b] common coding practices.
A few examples are
1. Not wrapping overly used code in functions
2. Barely using local variables
3. Mixing tabs and spaces (makes me think code is copy-pasted)
Alongside those things you're creating functions such as `[URL="https://github.com/GMODDFH/lmm_ticket_system/blob/master/lua/autorun/server/sv_lmmts.lua#L91"]LMMTSGetPlayerBySteamID64[/URL]`, which uses the exact implementation of [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/player/GetBySteamID64]player.GetBySteamID64[/url].
It seems you're trying very little to learn from old mistakes, I'd serously suggest you read something like [URL="www.lua.org/pil/contents.html"]www.lua.org/pil/contents.html[/URL]. At the very least read over it and take in a few of the notes it makes about things.[/QUOTE]
I was not awar of that function I will take all these points into consideration when I optimize the code! Thanks!
[QUOTE=AwPanda;50774885]Looks good but, please remove the timer or atleast let the users configure how long thier players to have to wait until they can create a ticket.[/QUOTE]
Alright I will actually remove the timer to start the ticket that was before I changed the way I open the panel...
[QUOTE=XxLMM13xXx;50774911]
This addon will be released for free however MIGHT have a paid version with many more features and even web support!
[/QUOTE]
I'm sorry, but i've seen your code... who'd wanna buy it?
[QUOTE=Lemmie;50776661]I'm sorry, but i've seen your code... who'd wanna buy it?[/QUOTE]
Still in beta I will be optimizing the code... mind telling me from yurnpoint of view what's wrong?
[QUOTE=XxLMM13xXx;50776947]Still in beta I will be optimizing the code... mind telling me from yurnpoint of view what's wrong?[/QUOTE]
It's a dead market, there's plenty of decent systems out there that are more optimized and provide a decent management system. There's one that's been out for a while since coderhire - I believe it's Kamshack's report system(?) which relies on SQL. It's basic and does what it's intended to do. You're getting slightly better at what you're doing but overshooting the mark by saying you'll be adding "web support" when the code in question is shit, but at this point trying to sell scripts is kind of a joke. I mean if that got onto scriptfodder or whatever the marketplace is these days i'd eat my own dick.
I was more pissed off by the fact that you believe this is of selling quality.
Also, implement a timer of re-creating a ticket, after one has been made, else they could abuse it to spam thousands of tickets per second, making the database overload eventually.
[QUOTE=Lemmie;50777344]It's a dead market, there's plenty of decent systems out there that are more optimized and provide a decent management system. There's one that's been out for a while since coderhire - I believe it's Kamshack's report system(?) which relies on SQL. It's basic and does what it's intended to do. You're getting slightly better at what you're doing but overshooting the mark by saying you'll be adding "web support" when the code in question is shit, but at this point trying to sell scripts is kind of a joke. I mean if that got onto scriptfodder or whatever the marketplace is these days i'd eat my own dick.
I was more pissed off by the fact that you believe this is of selling quality.[/QUOTE]
Thanks for your answer and basically the ticket system is not gonna be sold.. thats free.. what will be sold will be announced later.. Now this is in the beta stage because i need the community's help with testing and finding bugs so basically i will be optimizing the code dont worry
[QUOTE=whitestar;50777348]Also, implement a timer of re-creating a ticket, after one has been made, else they could abuse it to spam thousands of tickets per second, making the database overload eventually.[/QUOTE]
Yeah i was planning on doing this.. Thanks!
[QUOTE=XxLMM13xXx;50778073]Thanks for your answer and basically the ticket system is not gonna be sold.. thats free.. what will be sold will be announced later.. Now this is in the beta stage because i need the community's help with testing and finding bugs so basically i will be optimizing the code dont worry
Yeah i was planning on doing this.. Thanks![/QUOTE]
Why are you trying/planning to sell something when you don't even know the basics of Lua yet.
I noticed you always seem to rely on others to find your bugs, but you know you can always do that and try to make an effort in finding it yourself?
[QUOTE=Lemmie;50776661]I'm sorry, but i've seen your code... who'd wanna buy it?[/QUOTE]
Have you [I]seen[/I] some of the shit people will pay for in this game today? There'd be a market for this, even if it's not huge.
New version out! Beta V2! Check change log and download [URL="https://github.com/GMODDFH/lmm_ticket_system"]here[/URL]
Now to answer the posts..
[QUOTE=Mikey Howell;50778716]Why are you trying/planning to sell something when you don't even know the basics of Lua yet.
I noticed you always seem to rely on others to find your bugs, but you know you can always do that and try to make an effort in finding it yourself?[/QUOTE]
I know the basics of lua.. And i want the help of the community because this was much buggy however i fixed those.. And i need help from people with larger communities
Instead of doing this
[code]
frameclose.OnCursorEntered = function(self)
self.hover = true
end
frameclose.OnCursorExited = function(self)
self.hover = false
end
function frameclose:Paint(w, h)
draw.RoundedBox(0, 0, 0, w, h, (self.hover and Color(255,15,15,250)) or Color(255,255,255,255)) -- Paints on hover
frameclose:SetTextColor(self.hover and Color(255,255,255,250) or Color(0,0,0,255))
end
[/code]
you can use IsHovered, like so:
non-working code, just to show
[code]
someframe.Paint = function( p, w, h )
draw.roundedbox( 0, 0, 0, w, h, p:IsHovered() and Color( 255, 0, 0, 255 ) or Color( 0, 0, 0, 255 ) )
end
[/code]
[QUOTE=Invule;50784474]Instead of doing this
[code]
frameclose.OnCursorEntered = function(self)
self.hover = true
end
frameclose.OnCursorExited = function(self)
self.hover = false
end
function frameclose:Paint(w, h)
draw.RoundedBox(0, 0, 0, w, h, (self.hover and Color(255,15,15,250)) or Color(255,255,255,255)) -- Paints on hover
frameclose:SetTextColor(self.hover and Color(255,255,255,250) or Color(0,0,0,255))
end
[/code]
you can use IsHovered, like so:
non-working code, just to show
[code]
someframe.Paint = function( p, w, h )
draw.roundedbox( 0, 0, 0, w, h, p:IsHovered() and Color( 255, 0, 0, 255 ) or Color( 0, 0, 0, 255 ) )
end
[/code][/QUOTE]
Ah i will look into this!
Sorry, you need to Log In to post a reply to this thread.