GMod - What are you working on? October 2017 (#74)
289 replies, posted
[QUOTE=happyfaic72;52783884]Updated it, the swirls are slower and have a new addition to them
[IMG]https://i.imgur.com/iToq9As.gif[/IMG][/QUOTE]
Are you making that manually with Lua Particles or are you making it with that Garry's Mod particle creator that looks like it's from 1998?
[QUOTE=Ubre;52784174]Are you making that manually with Lua Particles or are you making it with that Garry's Mod particle creator that looks like it's from 1998?[/QUOTE]
or just SFM particle editor
[EDITLINE]16 October 2017[/EDITLINE]
It's in every Source game, not just SFM apparently
[QUOTE=MPan1;52784180]or just SFM particle editor[/QUOTE]
Never knew about that, thanks I'll check it out!
[QUOTE=Ubre;52784208]Never knew about that, thanks I'll check it out![/QUOTE]
launch the game with -tools
The particle editor was added in episode 2, and has been in every source game since. You can use all the particle editors from any game released before left4dead.
Well I was making a combine flamethrower thing but I ended up making a weld-your-own-3d-painting-gun.
[IMG]https://i.imgur.com/eLCgjRh.gif[/IMG][IMG]https://i.imgur.com/q3KYNcp.png[/IMG]
Working on some stuff for developers
[code]] rb_printclienttree _G/cam
Building list...
----------------------------------------------------------------------------------------
Number of items within table: 14
Filter includes:
Numbers (n): true
Strings (s): true
Functions (f): true
Tables (t): true
Completed in 0.06689453125 seconds
----------------------------------------------------------------------------------------
Name/Key Type Value
----------------------------------------------------------------------------------------
PushModelMatrix function function: 0x338eb5a8
Start3D function function: 0x339d8628
End3D function function: 0x338eb478
Start3D2D function function: 0x338eb690
End2D function function: 0x338eb440
StartOrthoView function function: 0x338eb560
End3D2D function function: 0x338eb6d0
Start function function: 0x338eb420
IgnoreZ function function: 0x338eb520
Start2D function function: 0x339d8610
End function function: 0x338eb4b8
EndOrthoView function function: 0x338eb4d8
ApplyShake function function: 0x338eb638
PopModelMatrix function function: 0x338eb5f0
[/code]
[code]] rb_printclienttree _G +f
Building list...
----------------------------------------------------------------------------------------
Number of items within table: 239
Filter includes:
Numbers (n): false
Strings (s): false
Functions (f): true
Tables (t): false
Completed in 1.240478515625 seconds
----------------------------------------------------------------------------------------
Name/Key Type Value
----------------------------------------------------------------------------------------
DOF_Kill function function: 0x33a64f68
tobool function function: 0x3391ed10
Derma_Anim function function: 0x339e3ac0
LerpVector function function: 0x338c1348
Sound function function: 0x33915c18
SafeRemoveEntityDelayed function function: 0x3391ece0
Error function function: 0x338bf758
rawget function function: builtin#12
SetGlobal2Var function function: 0x338c10a0
SortedPairsByMemberValue function function: 0x339a18a0
OrderVectors function function: 0x338c1300
ChangeTooltip function function: 0x3395e280
...this goes on for a while but you get the idea...
[/code]
[code]]rb_printclienttree util -t //this won't output util.worldpicker
Building list...
----------------------------------------------------------------------------------------
Number of items within table: 61
Filter includes:
Numbers (n): true
Strings (s): true
Functions (f): true
Tables (t): false
Completed in 0.361083984375 seconds
----------------------------------------------------------------------------------------
Name/Key Type Value
----------------------------------------------------------------------------------------
SharedRandom function function: 0x338c5f98
IsModelLoaded function function: 0x338c5e48
SteamIDTo64 function function: 0x338c5f10
GetModelInfo function function: 0x338c52a8
PointContents function function: 0x338c52f0
GetPlayerTrace function function: 0x339abb58
NetworkStringToID function function: 0x338c5458
BlastDamage function function: 0x338c4df0
JSONToTable function function: 0x338c5d80
ParticleTracer function function: 0x338c5338
GetPData function function: 0x339aff20
GetSurfaceIndex function function: 0x338c4e30
SteamIDFrom64 function function: 0x338c5f50
DecalMaterial function function: 0x338c4da8
RemovePData function function: 0x339aff80
GetPixelVisibleHandle function function: 0x338c5208
IsValidRagdoll function function: 0x338c4980
TimerCycle function function: 0x338c5e90
KeyValuesToTable function function: 0x338c5538
KeyValuesToTablePreserveOrder function function: 0x338c5580
PixelVisible function function: 0x338c5228
IsSkyboxVisibleFromPoint function function: 0x338c5ca8
TraceHull function function: 0x338c4b20
IntersectRayWithPlane function function: 0x338c54a0
DistanceToLine function function: 0x338c53c8
CRC function function: 0x338c5270
ScreenShake function function: 0x338c4ce8
NiceFloat function function: 0x339afbc0
LocalToWorld function function: 0x339afb60
TraceEntityHull function function: 0x338c4ad8
IsValidModel function function: 0x338c48f8
DecalEx function function: 0x338c5cf8
Effect function function: 0x338c4d28
IntersectRayWithOBB function function: 0x338c54f0
TableToKeyValues function function: 0x338c55d8
PrecacheModel function function: 0x338c49c8
PrecacheSound function function: 0x338c4a10
StringToType function function: 0x339afb90
ParticleTracerEx function function: 0x338c5380
GetSunInfo function function: 0x338c4ec0
TraceEntity function function: 0x338c4a98
Base64Encode function function: 0x338c5e00
RelativePathToFull function function: 0x338c5d38
IsValidPhysicsObject function function: 0x339abb40
Timer function function: 0x339afc00
BlastDamageInfo function function: 0x338c5fe0
TableToJSON function function: 0x338c5dc0
GetSurfacePropName function function: 0x338c4e78
TraceLine function function: 0x338c4a58
IsValidProp function function: 0x338c4940
AimVector function function: 0x338c5ed0
Compress function function: 0x338c5620
TypeToString function function: 0x339afba8
NetworkIDToString function function: 0x338c5410
DateStamp function function: 0x339afb78
tobool function function: 0x3391ed10
QuickTrace function function: 0x339afb48
Decal function function: 0x338c4d6
[QUOTE=BlueSkilly;52780084]Don't bother with cubemaps, they're a pain in the ass and they often look terrible.
[/QUOTE]
I beg to differ.
[t]https://steamuserimages-a.akamaihd.net/ugc/877498811161698428/4742CE27B582796D9B6A9E3825E149083AE27163/[/t]
Edit: There is also some quite fucky method to get parallax reflections, never tried them myself though but here's a video of it in action:
[video=youtube;ZH6s1hbwoQQ]https://www.youtube.com/watch?v=ZH6s1hbwoQQ[/video]
Minor update:
I made the bullet holes move with entities rather than being static on the map:
[video]https://youtu.be/cEpU9TZqnQI[/video]
As you can see, lag is still a problem though.
[QUOTE=MPan1;52787714]Minor update:
I made the bullet holes move with entities rather than being static on the map:
[video]https://youtu.be/cEpU9TZqnQI[/video]
As you can see, lag is still a problem though.[/QUOTE]
now you have to make it so you can put props through the hole
[QUOTE=_Chewgum;52787734]now you have to make it so you can put props through the hole[/QUOTE]
It works sometimes depending on the size:
[video]https://youtu.be/uWc2CrWGO2E[/video]
[QUOTE=Yashirmare;52786945]I beg to differ.
[t]https://steamuserimages-a.akamaihd.net/ugc/877498811161698428/4742CE27B582796D9B6A9E3825E149083AE27163/[/t]
Edit: There is also some quite fucky method to get parallax reflections, never tried them myself though but here's a video of it in action:
[video=youtube;ZH6s1hbwoQQ]https://www.youtube.com/watch?v=ZH6s1hbwoQQ[/video][/QUOTE]
Not sure if it's been mentioned but the downside with parallax corrected cubemaps is that it requires a shape that defines the room in the shader. A very simple and easy shape is a square or sphere as they can be mathematically represented in a shader with just a few numbers. Square is just min and max vectors (maybe also rotation), sphere is point and size, etc.
Maybe this can be mostly automated in source engine with the data the BSP compiler generates. I think in CryEngine (which tries to be realtime and no compiling) requires artists to place or at least adjust these things to make it look more correct.
Spent some time scanning maps for logic_relay's, finding their names and made StormFox trigger them. Also placing some logic behind what light_spot's to turn on/off.
[t]https://i.imgur.com/kmXhSiu.gif[/t]
(Those effects aren't mine. Its the map-creators. I'm just triggering them)
Added it to the display, along with some helpful tips.
[t]https://i.imgur.com/YaDZfiG.png[/t]
And now working on a way to display maps your client have loaded.
[t]https://i.imgur.com/BRCMjLx.png[/t]
Still unsure if I should add another CAMI permission for map-change or just copy the maps name to the player.
(The star means the map got a logic_trigger for day/night)
[QUOTE=Yashirmare;52786945]I beg to differ.
[t]https://steamuserimages-a.akamaihd.net/ugc/877498811161698428/4742CE27B582796D9B6A9E3825E149083AE27163/[/t]
Edit: There is also some quite fucky method to get parallax reflections, never tried them myself though but here's a video of it in action:
[video=youtube;ZH6s1hbwoQQ]https://www.youtube.com/watch?v=ZH6s1hbwoQQ[/video][/QUOTE]
That's not a "fucky" method as much as it is just making a new shader.
[QUOTE=wauterboi;52789431]That's not a "fucky" method as much as it is just making a new shader.[/QUOTE]
Too bad gmod will probably never get new shaders. There's a lot of broken/missing stuff that would be incredibly useful to have.
$selfillumfresnel is broken, you can't really make edge fresnel with it.
portal 2 added
$phongdisablehalflambert which is useful for more stylized effects. Also it allows a non-broken lightwarp with it.
$envmaplightscale multiplies the level's lightmaps with the env map (or something like that) Allows for bright cubemaps to display properly in darker areas.
Wet dream stuff would be tf2's lightmaps on models stuff, and normal maps with staticproplighting from CS:GO.
[QUOTE=Stiffy360;52789718]Too bad gmod will probably never get new shaders. There's a lot of broken/missing stuff that would be incredibly useful to have.[/QUOTE]
I really wish MadParakeet could share how he got custom shaders working.
I don't really understand what's holding anyone back from shaders. There's just been a lot of dodging the question with non-specific answers (save for Garry, who said he wasn't sure how to make things compatible for Mac/Linux users). It just seems like no one even wants to touch it.
[QUOTE=wauterboi;52789803]I really wish MadParakeet could share how he got custom shaders working.
I don't really understand what's holding anyone back from shaders. There's just been a lot of dodging the question with non-specific answers (save for Garry, who said he wasn't sure how to make things compatible for Mac/Linux users). It just seems like no one even wants to touch it.[/QUOTE]
fyi, voxelate is completely open source. I've recently fixed up shaders on windows on the dev branch.
we literally jmp patch IShaderSystemInternal::FindShader :v:
[url]https://github.com/glua/gm_voxelate/tree/simplify[/url]
[URL="https://steamuserimages-a.akamaihd.net/ugc/854981112849383161/0DD1DFA9D4F87F7A5278A470E443F0447FE5001D/"]Large Image alert[/URL]
Ive been trying to make an "infinite" terrain map, similar in structure to [URL="https://facepunch.com/showthread.php?t=1488775"]this[/URL] but simplified and rewritten. The thing is, my shouldCollide hook causes the player model to jitter. Is there any way I can edit collisions on a per-entity basis without the performance hit of shouldCollide?
[QUOTE=TNT3530;52791591][URL="https://steamuserimages-a.akamaihd.net/ugc/854981112849383161/0DD1DFA9D4F87F7A5278A470E443F0447FE5001D/"]Large Image alert[/URL]
Ive been trying to make an "infinite" terrain map, similar in structure to [URL="https://facepunch.com/showthread.php?t=1488775"]this[/URL] but simplified and rewritten. The thing is, my shouldCollide hook causes the player model to jitter. Is there any way I can edit collisions on a per-entity basis without the performance hit of shouldCollide?[/QUOTE]
ShouldCollide should not be that much of a performance hit if you are using it correctly. You can look into using a [URL="https://developer.valvesoftware.com/wiki/Logic_collision_pair"]logic_collision_pair[/URL], but it only works between two entities.
[QUOTE=swadicalrag;52789833]fyi, voxelate is completely open source. I've recently fixed up shaders on windows on the dev branch.
we literally jmp patch IShaderSystemInternal::FindShader :v:
[url]https://github.com/glua/gm_voxelate/tree/simplify[/url][/QUOTE]
Excuse me being completely off topic, but what is your profile picture from?
So I really don't wanna look like a spam but since I make some kind of interesting things quite often I thought I'd show this too.
[B]Weapon Rarity System[/B]
[IMG]https://i.imgur.com/ptpCRRE.jpg[/IMG]
[IMG]https://i.imgur.com/AAJSEaJ.png[/IMG](That PUBG hud is not made by me, only the coloring and weapon rarity name.)
[B]Configuration:[/B]
This lets you add rarities and chance for the item to spawn with the specified rarity in a very simple and easy way. Its also very easy to add new modifiers for the weapons such as reloading speed etc.
[IMG]https://i.imgur.com/5XOyEdv.png[/IMG][IMG]https://i.imgur.com/qTbcm8V.png[/IMG]
Next up is adding the ability to set skins and color to the weapons aswell as adding stuff like flammable bullets and some sick effect magic.
[QUOTE=Yashirmare;52792228]Excuse me being completely off topic, but what is your profile picture from?[/QUOTE]
It's an anime called Love and Lies, here's the scene: [url]https://youtu.be/2CS87AfcD1A?t=56[/url]
[QUOTE=Thiefdroid;52792388]So I really don't wanna look like a spam but since I make some kind of interesting things quite often I thought I'd show this too.
[B]Weapon Rarity System[/B]
[IMG]https://i.imgur.com/ptpCRRE.jpg[/IMG]
[IMG]https://i.imgur.com/AAJSEaJ.png[/IMG](That PUBG hud is not made by me, only the coloring and weapon rarity name.)
This lets you add rarities and chance for the item to spawn with the specified rarity in a very simple and easy way. Its also very easy to add new modifiers for the weapons such as reloading speed etc.
[IMG]https://i.imgur.com/lABGsHr.png[/IMG][IMG]https://i.imgur.com/O9jIxOe.png[/IMG]
Next up is adding the ability to set skins and color to the weapons aswell as adding stuff like flammable bullets and some sick effect magic.[/QUOTE]
That looks really nice! Is every single version of each weapon a custom SWEP or is the rarity and stats set as soon as you spawn it? Also can there be a Rare Rapid Fire etc.?
[QUOTE=Ubre;52792399]That looks really nice! Is every single version of each weapon a custom SWEP or is the rarity and stats set as soon as you spawn it? Also can there be a Rare Rapid Fire etc.?[/QUOTE]
If I were to make a Rare Rapid Fire rarity which only takes a few seconds, yes. Otherwise, no.
The weapons are the default FAS:2 weapons with no changes whatsoever to the weapons code at all.
Spawning the weapon gives it a random rarity instantly based on the chances and the rarity stays with the weapon at all times, even when dropped! (Unless there is some kind of system that removes the weapons actual entity)
-snip- gotta reupload.
Blocked because it contains content from UMG?
I'v been working on a thing. Still work in progress but feedback is apreciated. Also I rigged it to get a higher chance of winning to
[video=youtube;YJIpHys-agI]https://www.youtube.com/watch?v=YJIpHys-agI[/video]
Each screen can be rendered to however you like and as you can see performance is not an issue.
[QUOTE=0V3RR1D3;52792965]I'v been working on a thing. Still work in progress but feedback is apreciated. Also I rigged it to get a higher chance of winning to
[video=youtube;YJIpHys-agI]https://www.youtube.com/watch?v=YJIpHys-agI[/video]
Each screen can be rendered to however you like and as you can see performance is not an issue.[/QUOTE]
That looks great! I know nothing about models so I wouldn't know how you made those bended screens, I guess you will make it so you press those little buttons on the button instead of the screen.
Only thing it's missing is sounds
[QUOTE=code_gs;52791633]ShouldCollide should not be that much of a performance hit if you are using it correctly. You can look into using a [URL="https://developer.valvesoftware.com/wiki/Logic_collision_pair"]logic_collision_pair[/URL], but it only works between two entities.[/QUOTE]
Is going through a table too slow and incorrect?
This is what my shouldCollide calls (isSameCell)
[CODE]function terrainExistsInCell(x, y, z, tab, ent)
if !x then
x = 0
end
if !y then
y = 0
end
if !z then
z = 0
end
for _,e in pairs(table.GetKeys(tab)) do
if (x .. "," .. y .. "," .. z) == e then
if tab[e]["Ground"] == ent:EntIndex() then
return true
end
if tab[e]["Random Spawn 1"] == ent:EntIndex() then
return true
end
if tab[e]["Random Spawn 2"] == ent:EntIndex() then
return true
end
end
end
return false
end
function isSameCell(ent, ent2)
if ent:GetClass() == "func_brush" or ent:GetClass() == "prop_dynamic" then
return terrainExistsInCell(ent2.CurX, ent2.CurY, ent2.CurZ, generatedCells, ent)
elseif ent2:GetClass() == "func_brush" or ent2:GetClass() == "prop_dynamic" then
return terrainExistsInCell(ent.CurX, ent.CurY, ent.CurZ, generatedCells, ent2)
end
checkValidCellData(ent)
checkValidCellData(ent2)
if ent.CurX != ent2.CurX or ent.CurY != ent2.CurY or ent.CurZ != ent2.CurZ then
return false
else
return true
end
end[/CODE]
Can I get similar functionality using the collision pair?
Could you PM me the structure of generatedCells table? Your loop looks very slow.
I'm in the planning stage of making an admin mod with a realtime web panel in nodejs.
Would it be better to implement mysql on the server side, or run a local json file/database thing? I feel like having a server admin with a smaller server wouldn't want to setup a sql server and a node server..
[QUOTE=marvincmarvin;52794546]I'm in the planning stage of making an admin mod with a realtime web panel in nodejs.
Would it be better to implement mysql on the server side, or run a local json file/database thing? I feel like having a server admin with a smaller server wouldn't want to setup a sql server and a node server..[/QUOTE]
Depends entirely on what you're doing. You may find a NoSQL option a better fit for you.
Sorry, you need to Log In to post a reply to this thread.