[Scripts] Can Experts simplify this trash for me :/ ?
Well, I've makes more than 80 library out of nowhere
Which I've make in really random times where my boredom and mood is suitable for writing
Only a fraction of times since I play Minecraft too (etc)
BUT!
One non-important problem is up
I'm improved every script created (but isn't that much, cuz the big time gap)
My first script is absolutely trash compared to my latest one
And the problem is, I don't have time to update nor look for it these days (well, I had a life too xD)
Annnddd
I still realize that my simplifying skill isn't good at all! (well, idk what to compare with mine, so I just assume mine is really bad (it is! *iiner self))
That's why I'm here with this post and its help request
May you help me to simplify this garbage below?
Because my knowledge upon Lua isn't good at all (my perspective)
But please: Don't laugh at me xD !
Here it is:
Log = {} LogKey = {} function ToLog(val, mode, k1, k2, k3, k4, k5, k6, k7, modedetail) -- Optimization local LocLog = Log local LocLogKey = LogKey if k2 ~= nil then if LocLog[k1] == nil then LocLog[k1] = {} end if LocLogKey[k1] == nil then LocLogKey[k1] = {} end end if k3 ~= nil then if LocLog[k1][k2] == nil then LocLog[k1][k2] = {} end if LocLogKey[k1][k2] == nil then LocLogKey[k1][k2] = {} end end if k4 ~= nil then if LocLog[k1][k2][k3] == nil then LocLog[k1][k2][k3] = {} end if LocLogKey[k1][k2][k3] == nil then LocLogKey[k1][k2][k3] = {} end end if k5 ~= nil then if LocLog[k1][k2][k3][k4] == nil then LocLog[k1][k2][k3][k4] = {} end if LocLogKey[k1][k2][k3][k4] == nil then LocLogKey[k1][k2][k3][k4] = {} end end if k6 ~= nil then if LocLog[k1][k2][k3][k4][k5] == nil then LocLog[k1][k2][k3][k4][k5] = {} end if LocLogKey[k1][k2][k3][k4][k5] == nil then LocLogKey[k1][k2][k3][k4][k5] = {} end end if k7 ~= nil then if LocLog[k1][k2][k3][k4][k5][k6] == nil then LocLog[k1][k2][k3][k4][k5][k6] = {} end if LocLogKey[k1][k2][k3][k4][k5][k6] == nil then LocLogKey[k1][k2][k3][k4][k5][k6] = {} end end if mode == 1 then -- Optimization local tableinsert if k7 ~= nil then if LocLog[k1][k2][k3][k4][k5][k6][k7] == nil then LocLog[k1][k2][k3][k4][k5][k6][k7] = {} LocLogKey[k1][k2][k3][k4][k5][k6][k7] = {} end tableinsert = #LocLog[k1][k2][k3][k4][k5][k6][k7] + 1 LocLog[k1][k2][k3][k4][k5][k6][k7][tableinsert] = val LocLogKey[k1][k2][k3][k4][k5][k6][k7][tableinsert] = val elseif k6 ~= nil then if LocLog[k1][k2][k3][k4][k5][k6] == nil then LocLog[k1][k2][k3][k4][k5][k6] = {} LocLogKey[k1][k2][k3][k4][k5][k6] = {} end tableinsert = #LocLog[k1][k2][k3][k4][k5][k6] + 1 LocLog[k1][k2][k3][k4][k5][k6][tableinsert] = val LocLogKey[k1][k2][k3][k4][k5][k6][tableinsert] = val elseif k5 ~= nil then if LocLog[k1][k2][k3][k4][k5] == nil then LocLog[k1][k2][k3][k4][k5] = {} LocLogKey[k1][k2][k3][k4][k5] = {} end tableinsert = #LocLog[k1][k2][k3][k4][k5] + 1 LocLog[k1][k2][k3][k4][k5][tableinsert] = val LocLogKey[k1][k2][k3][k4][k5][tableinsert] = val elseif k4 ~= nil then if LocLog[k1][k2][k3][k4] == nil then LocLog[k1][k2][k3][k4] = {} LocLogKey[k1][k2][k3][k4] = {} end tableinsert = #LocLog[k1][k2][k3][k4] + 1 LocLog[k1][k2][k3][k4][tableinsert] = val LocLogKey[k1][k2][k3][k4][tableinsert] = val elseif k3 ~= nil then if LocLog[k1][k2][k3] == nil then LocLog[k1][k2][k3] = {} LocLogKey[k1][k2][k3] = {} end tableinsert = #LocLog[k1][k2][k3] + 1 LocLog[k1][k2][k3][tableinsert] = val LocLogKey[k1][k2][k3][tableinsert] = val elseif k2 ~= nil then if LocLog[k1][k2] == nil then LocLog[k1][k2] = {} LocLogKey[k1][k2] = {} end tableinsert = #LocLog[k1][k2] + 1 LocLog[k1][k2][tableinsert] = val LocLogKey[k1][k2][tableinsert] = val elseif k1 ~= nil then if LocLog[k1] == nil then LocLog[k1] = {} LocLogKey[k1] = {} end tableinsert = #LocLog[k1] + 1 LocLog[k1][tableinsert] = val LocLogKey[k1][tableinsert] = val end end if mode == 2 then if k7 ~= nil then LocLog[k1][k2][k3][k4][k5][k6][k7] = val LocLogKey[k1][k2][k3][k4][k5][k6][k7] = GameTime elseif k6 ~= nil then LocLog[k1][k2][k3][k4][k5][k6] = val LocLogKey[k1][k2][k3][k4][k5][k6] = GameTime elseif k5 ~= nil then LocLog[k1][k2][k3][k4][k5] = val LocLogKey[k1][k2][k3][k4][k5] = GameTime elseif k4 ~= nil then LocLog[k1][k2][k3][k4] = val LocLogKey[k1][k2][k3][k4] = GameTime elseif k3 ~= nil then LocLog[k1][k2][k3] = val LocLogKey[k1][k2][k3] = GameTime elseif k2 ~= nil then LocLog[k1][k2] = val LocLogKey[k1][k2] = GameTime elseif k1 ~= nil then LocLog[k1] = val LocLogKey[k1] = GameTime end end if mode > 2 then local modekey if mode == 3 then modekey = GameTime if modedetail ~= nil then modekey = GameTime + modedetail end elseif mode == 4 then modekey = TotalRounds if modedetail ~= nil then modekey = TotalRounds + modedetail end elseif mode == 5 then modekey = TurnTimeLeft if modedetail ~= nil then modekey = TurnTimeLeft + modedetail end elseif mode == 6 then modekey = WaterLine if modedetail ~= nil then modekey = WaterLine + modedetail end end if k7 ~= nil then if LocLog[k1][k2][k3][k4][k5][k6][k7] == nil then LocLog[k1][k2][k3][k4][k5][k6][k7] = {} end if LocLogKey[k1][k2][k3][k4][k5][k6][k7] == nil then LocLogKey[k1][k2][k3][k4][k5][k6][k7] = {} end LocLog[k1][k2][k3][k4][k5][k6][k7][modekey] = val LocLogKey[k1][k2][k3][k4][k5][k6][k7][modekey] = GameTime elseif k6 ~= nil then if LocLog[k1][k2][k3][k4][k5][k6] == nil then LocLog[k1][k2][k3][k4][k5][k6] = {} end if LocLogKey[k1][k2][k3][k4][k5][k6] == nil then LocLogKey[k1][k2][k3][k4][k5][k6] = {} end LocLog[k1][k2][k3][k4][k5][k6][modekey] = val LocLogKey[k1][k2][k3][k4][k5][k6][modekey] = GameTime elseif k5 ~= nil then if LocLog[k1][k2][k3][k4][k5] == nil then LocLog[k1][k2][k3][k4][k5] = {} end if LocLogKey[k1][k2][k3][k4][k5] == nil then LocLogKey[k1][k2][k3][k4][k5] = {} end LocLog[k1][k2][k3][k4][k5][modekey] = val LocLogKey[k1][k2][k3][k4][k5][modekey] = GameTime elseif k4 ~= nil then if LocLog[k1][k2][k3][k4] == nil then LocLog[k1][k2][k3][k4] = {} end if LocLogKey[k1][k2][k3][k4] == nil then LocLogKey[k1][k2][k3][k4] = {} end LocLog[k1][k2][k3][k4][modekey] = val LocLogKey[k1][k2][k3][k4][modekey] = GameTime elseif k3 ~= nil then if LocLog[k1][k2][k3] == nil then LocLog[k1][k2][k3] = {} end if LocLogKey[k1][k2][k3] == nil then LocLogKey[k1][k2][k3] = {} end LocLog[k1][k2][k3][modekey] = val LocLogKey[k1][k2][k3][modekey] = GameTime elseif k2 ~= nil then if LocLog[k1][k2] == nil then LocLog[k1][k2] = {} end if LocLogKey[k1][k2] == nil then LocLogKey[k1][k2] = {} end LocLog[k1][k2][modekey] = val LocLogKey[k1][k2][modekey] = GameTime elseif k1 ~= nil then if LocLog[k1] == nil then LocLog[k1] = {} end if LocLogKey[k1] == nil then LocLogKey[k1] = {} end LocLog[k1][modekey] = val LocLogKey[k1][modekey] = GameTime elseif val ~= nil then LocLog[modekey] = val LocLogKey[modekey] = GameTime end end Log = LocLog LogKey = LocLogKey end
If you may ask for more details
Then:
I need more shorten method to do such things
and without consuming large resources beforehand (local var?)
Also! The simplified stuff is doing the same thing as mine!
I know there is a way!
I've read some help, but haven't found the real solution on those
But I know, that my savior must be
You...
╓──────────────────╖ ╓──────────────────╖
⠀HP: ██████████ 1E9/1E91E9/1E9 ██████████ :MP
╙──────────────────╜ ╙──────────────────╜
I see lots of repeated code. You can simplify it a lot if you just add some methods with proper arguments.
My themes / Theme Editor / Code contributions /
Dank
Well, that is
Lots of repeated code is main the problem
Still didn't know the proper method to do such things ATM
Can you write down how to do it =/ ? Thanks
*Well, I need some milk*
╓──────────────────╖ ╓──────────────────╖
⠀HP: ██████████ 1E9/1E91E9/1E9 ██████████ :MP
╙──────────────────╜ ╙──────────────────╜
Not sure if this does exactly what you need, but hey - maybe it helps anyway:
sheepluva <- me my code stats ->
a Hedgewars Developer
click here to message me
<- where I'm from what I speak ->
Thank you very much sheepluva =DDDD!!!
I bet this was what I've search for (Sure it is, and will absolutely help me =))
I'll try to learn it in any way!
While recursive word is unfamiliar with me
Anyway, I've use this method like the so called recursive stuff in some scripts
Without knowing its name x)
But I think mine is quite "Ancient" and "Messy"
Hope will improve after read these =]
Well, your code seems really short, real short
My IQ isn't enough I guess x)
I think there are much to learn, my level still too low isn't it?
I just write my work rarely, maybe I need some milk here and do more with this narrow time
And get an internet connection... xD
After all
Information is expesive these days, lucky to get this knowledge =D
And it was an Awesome help for my problem! Thanks again
No wonder, its sheepluva !^^!
PS: Haven't test it yet, so I maybe update this comment later...
╓──────────────────╖ ╓──────────────────╖
⠀HP: ██████████ 1E9/1E91E9/1E9 ██████████ :MP
╙──────────────────╜ ╙──────────────────╜