• Problems That Don't Need Their Own Thread v2.0
    5,020 replies, posted
[QUOTE=Acecool;47087524]Odd, if you're using windows it should detect; if I recall correctly you'd use list.Get( "Entities" ) or something along those lines so you'd need to set up a new table ENT = { }, etc...[/QUOTE] Yes, I am using windows. I didn't simply create a new ENT table because I am not sure if there are any default functions/index's on the table that I would be missing if I created it in the file.
Did I do this right? [url]http://wiki.garrysmod.com/page/Global/AddWorldTip[/url] I'm surprised this wasn't documented before, I just added it to the wiki. It can be found in garrysmod\gamemodes\sandbox\gamemode\cl_worldtips.lua Example usage in base_gmodentity.lua: [code]function ENT:Think() if ( CLIENT && self:BeingLookedAtByLocalPlayer() && self:GetOverlayText() != "" ) then AddWorldTip( self:EntIndex(), self:GetOverlayText(), 0.5, self:GetPos(), self.Entity ) halo.Add( { self }, Color( 255, 255, 255, 255 ), 1, 1, 1, true, true ) end end[/code] Edit: okay seriously there is no space between "cl_worldtips." and "lua" above.
Someone please help me understand what's going on here. I got sick of trying to figure out how to include/AddCSLuaFile my autorun files in order to make everything work together, so I made a Master.lua file. It was easy when it was all just 3 files (client,server,shared) but then I busted it all out to make files easier to send to client (and to make things easier to find when I'm coding). Now shit's messed up. I tried to copy the way WireMod did it, because I assume they did it right, but still issues. (all the files have unique prefixes, I removed them here to simplify the example) Master.lua is simply a file with the text you see below. No other files have any [i]include[/i]s or [i]AddCSLuaFile[/i]s in them whatsoever. Files with Client_ as a prefix have all their code in an if(CLIENT) conditional, likewise with Server_ files, and Shared_ files have none. Shared_Data_General creates a global table (if it doesn't already exist) that is used by pretty much all of the rest of the files, client and server. They add things to it (like functions) at the beginning (compile time? interpret time?). Therefore, Shared_Data_General is the file I always want run first, server and client. Client_Legs tries to add a function to the global table, but fails. At the beginning of the game, Client_Legs spits an error saying that the global table doesn't exist. What am I doing wrong here? [code] if(SERVER)then AddCSLuaFile("Master.lua") AddCSLuaFile("Shared_Data_General.lua") AddCSLuaFile("Shared_Data_Gear.lua") AddCSLuaFile("Shared_Data_Items.lua") AddCSLuaFile("Client_Menus.lua") AddCSLuaFile("Client_Runtime.lua") AddCSLuaFile("Client_Legs.lua") end include("Shared_Data_General.lua") include("Shared_Data_Gear.lua") include("Shared_Data_Items.lua") if(SERVER)then include("Server_Hooks.lua") include("Server_Utility.lua") elseif(CLIENT)then include("Client_Runtime.lua") include("Client_Menus.lua") include("Client_Legs.lua") end [/code] [b]TL;DR: I'm trying to explicitly set the load order of my autorun scripts. Why can't Client_Legs see a global table created by Shared_Data_General?[/b] Fun random info that might help. I once added print statements to the top of each file, so I could watch their load order when I started the game. It looked like Client files ran twice, first in the wrong order, then in the right order. What's up with that?
that's a really weird way of doing it, the way I (and I assume most people) do it is like this: [lua]--init.lua AddCSLuaFile("cl_init.lua") --you can change the order of the rest of them AddCSLuaFile("cl_otherfiles.lua") AddCSLuaFile("sh_otherfiles.lua") include("sv_otherfiles.lua") include("sh_otherfiles.lua") --cl_init.lua include("cl_otherfiles.lua") include("sh_otherfiles.lua") [/lua] for your question, are you including the files clientside anywhere else? try adding a print inside the shared table file and see if it prints on both sides
[QUOTE=PortalGod;47088790]that's a really weird way of doing it, the way I (and I assume most people) do it is like this: snip [/QUOTE] That's essentially what I'm doing, it looks like... first AddCSLuaFile-ing all the ones that need to be on client, then Include-ing all the files in order, server on server and client on client. Do the master files have to be named cl_init.lua and init.lua? Does that control where they're run? If not, are those lines you wrote there in if(SERVER) or if(CLIENT) conditionals?
I'd recommend doing everything in your shared.lua file.. Example: [url]https://dl.dropboxusercontent.com/u/26074909/tutoring/includes/gm_name.rar[/url] Load order should go as follows: Shared, Client/Server, Addons, Content. Because Client and Server execute the file independent of the other, a simple if / else will work fine. By having everything in shared, you'd simplify the load-order so you know what is happening when and where... By having the includes in different files, you need to make sure the server AddCSLuaFiles all of the necessary files in the right order. Take a look at gm_name.rar, in it there's a helper function and some other files to show how to use it; it simply takes a REALM_* and converts it into AddCSLuaFile / include for the file at the appropriate time.
Drop those shared somewhere and then include all your files somewhere in a shared file. It's much easier. [lua] include_sv = (SERVER) and include or function() end include_cl = (SERVER) and AddCSLuaFile or include include_sh = function(path) include_sv(path) include_cl(path) end [/lua]
Or use PortalGod's method like any sensible person ever. Hell I'd even say use Acecool's method over those include_sv/sh/cl functions.
I don't understand how to add an icon for my SENT in the spawn menu. What material files do I need and where do I need to put them?
[QUOTE=Willox;47089142]Or use PortalGod's method like any sensible person ever. Hell I'd even say use Acecool's method over those include_sv/sh/cl functions.[/QUOTE] Care to explain why it's so bad?
[QUOTE=StonedPenguin;47090818]Care to explain why it's so bad?[/QUOTE] The function names are too easily confused. I'd assume given what they do you'll end up with a bunch of them piled together. It could be worse.
[QUOTE=Willox;47091024]The function names are too easily confused. I'd assume given what they do you'll end up with a bunch of them piled together. It could be worse.[/QUOTE] I don't really understand how they are that easily confused? What would you have them called? include_server? include_client? include_shared? that'd be equally if not more stupid. you could rewrite them to take a string argument for the instance to run it on 'SERVER' or 'SHARED' or 'CLIENT' but that eliminates the ability to use the call without parenthesis syntax and really doesn't improve much unless you really just have a thing for strings... Lastly if you're using any kind of good folder structure or file naming convention it should be the name of the file not the function that you're looking at when browsing through your code. The intent is to quickly and easily create helpers to load your code without writing a heavy weight loading framework... I'd say that a three liner is pretty good. It really defeats the point when you're writing more code to support your "pretty" syntax than you would to do it manually?
[QUOTE=thelastpenguin;47091120]I don't really understand how they are that easily confused? What would you have them called? include_server? include_client? include_shared? that'd be equally if not more stupid. you could rewrite them to take a string argument for the instance to run it on 'SERVER' or 'SHARED' or 'CLIENT' but that eliminates the ability to use the call without parenthesis syntax and really doesn't improve much unless you really just have a thing for strings... Lastly if you're using any kind of good folder structure or file naming convention it should be the name of the file not the function that you're looking at when browsing through your code. The intent is to quickly and easily create helpers to load your code without writing a heavy weight loading framework... I'd say that a three liner is pretty good. It really defeats the point when you're writing more code to support your "pretty" syntax than you would to do it manually?[/QUOTE] It's down to personal preference of course. Although it's hardly more code, it's a few lines. You've got the choice of your own "system" or something that everybody has seen and will understand. [code] -- init.lua AddCSLuaFile "cl_init.lua" AddCSLuaFile "sh_init.lua" include "sh_init.lua" -- cl_init.lua include "sh_init.lua" vs. -- init.lua include_cl "cl_init.lua" include_sh "sh_init.lua" -- cl_init.lua include_sh "sh_init.lua" [/code] I'd assume include_sh is still used clientside for some pretty color printing or something (which is a benefit).
What's the best way to avoid memory leaks with tables? For example, i create the following table: [code] Player.CSEnts = {} Player.CSEnts[1].Model = "xyz.mdl") Player.CSEnts[1].Name = "random name" Player.CSEnts[2].Model = "xyz.mdl") Player.CSEnts[2].Name = "random name" Player.CSEnts[3].Model = "xyz.mdl") Player.CSEnts[3].Name = "random name" [/code] How do i clean this up without memory leaks? Player.CSEnts[3] = nil or Player.CSEnts[3] = {} or Player.CSEnts[3].Model = nil, Player.CSEnts[3].Name = nil and clear the table with 1 way from above. I only need to clean 1 entry in the table, so what's the safest way to remove this from memory? even tho if i need to remove all, can i just do Player.CSEnts = nil or {} ?
Can you use [URL="https://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/indexfc74.html"]derma.DefineControl[/URL] to overwrite the default layout and control of derma functions like the DButton?
[QUOTE=MauriceG93;47091252]What's the best way to avoid memory leaks with tables? For example, i create the following table: [code] Player.CSEnts = {} Player.CSEnts[1].Model = "xyz.mdl") Player.CSEnts[1].Name = "random name" Player.CSEnts[2].Model = "xyz.mdl") Player.CSEnts[2].Name = "random name" Player.CSEnts[3].Model = "xyz.mdl") Player.CSEnts[3].Name = "random name" [/code] How do i clean this up without memory leaks? Player.CSEnts[3] = nil or Player.CSEnts[3] = {} or Player.CSEnts[3].Model = nil, Player.CSEnts[3].Name = nil and clear the table with 1 way from above. I only need to clean 1 entry in the table, so what's the safest way to remove this from memory? even tho if i need to remove all, can i just do Player.CSEnts = nil or {} ?[/QUOTE] Lua has garbage collection. This means that if the reference to your table is lost (as in, no code is able to access it through any variables), it will automatically be cleaned up. Any lines of the following code will work as long as you don't have the underlying tables accessible anywhere else. [code] Player.CSEnts = nil Player.CSEnts = {} Player.CSEnts = "poo" [/code]
[QUOTE=MauriceG93;47091252]What's the best way to avoid memory leaks with tables? For example, i create the following table: [code] Player.CSEnts = {} Player.CSEnts[1].Model = "xyz.mdl") Player.CSEnts[1].Name = "random name" Player.CSEnts[2].Model = "xyz.mdl") Player.CSEnts[2].Name = "random name" Player.CSEnts[3].Model = "xyz.mdl") Player.CSEnts[3].Name = "random name" [/code] How do i clean this up without memory leaks? Player.CSEnts[3] = nil or Player.CSEnts[3] = {} or Player.CSEnts[3].Model = nil, Player.CSEnts[3].Name = nil and clear the table with 1 way from above. I only need to clean 1 entry in the table, so what's the safest way to remove this from memory? even tho if i need to remove all, can i just do Player.CSEnts = nil or {} ?[/QUOTE] I'm pretty sure the first two will work the same, but creating tables tends to be expensive, so I would set it to nil. not sure about the third one though. and yeah
so I want to adjust the animation rate of my reload, but I'm using DefaultReload. I want to multiply it by 0.40363637566566333370762865494275 (very specific number, could just do 0.4036 and feel comfortable) How can I do this? I know I can set the playback rate of the viewmodel, but does that even effect the actual reload? [editline]Corrections needed to be made[/editline] lol, correction, I want it divided by that number Playback rate does not effect the actual reload. I'm really hoping I won't have to write my own reload logic to top onto everything I already have written in SWEP:Reload()
If you do SetMaterial of an entity to something random you want, how would you go back to its default material? As in, is there a way to reset to its default material without having to respawn it or something of that nature? Also, is there a way to disable the physgun glow thing? Not the beam, but the big glowing ball, while having the beam work still.
You just set the material to ""
[IMG]http://i.imgur.com/JBdATL7.png[/IMG] Anyone know how I can replicate these electricity Tesla like effects? What are they called, and what tool should I use?
[code]int C_RollerMine::DrawModel( int flags ) { if ( m_bIsOpen && m_flActiveTime <= gpGlobals->curtime ) { float scale = random->RandomFloat( 4.0f, 6.0f ); if ( gpGlobals->frametime != 0 ) { // Inner beams BeamInfo_t beamInfo; beamInfo.m_vecStart = GetAbsOrigin(); Vector offset = RandomVector( -6*scale, 2*scale ); offset += Vector(2,2,2) * scale; beamInfo.m_vecEnd = GetAbsOrigin() + offset; beamInfo.m_pStartEnt= cl_entitylist->GetEnt( BEAMENT_ENTITY( entindex() ) ); beamInfo.m_pEndEnt = beamInfo.m_pStartEnt; beamInfo.m_nStartAttachment = random->RandomInt( 0, NUM_ATTACHMENTS ); beamInfo.m_nEndAttachment = random->RandomInt( 0, NUM_ATTACHMENTS ); // Ensure we're not the same point if ( beamInfo.m_nStartAttachment == beamInfo.m_nEndAttachment ) { int nextStep = ( random->RandomInt( 0, 1 ) ) ? 1 : -1; beamInfo.m_nEndAttachment = ( beamInfo.m_nStartAttachment + nextStep ) % NUM_ATTACHMENTS; } beamInfo.m_nType = TE_BEAMTESLA; beamInfo.m_pszModelName = "sprites/lgtning.vmt"; beamInfo.m_flHaloScale = 0.0f; beamInfo.m_flLife = 0.1f; beamInfo.m_flWidth = random->RandomFloat( 2.0f, 4.0f ); beamInfo.m_flEndWidth = random->RandomFloat( 0.0f, 1.0f ); beamInfo.m_flFadeLength = 0.0f; beamInfo.m_flAmplitude = random->RandomFloat( 16, 32 ); beamInfo.m_flBrightness = 255.0; beamInfo.m_flSpeed = 0.0; beamInfo.m_nStartFrame = 0.0; beamInfo.m_flFrameRate = 1.0f; if ( m_bPowerDown ) { beamInfo.m_flRed = 255.0f;; beamInfo.m_flGreen = 64.0f; beamInfo.m_flBlue = 64.0f; } else if ( m_bHackedByAlyx ) { beamInfo.m_flRed = 240.0f;; beamInfo.m_flGreen = 200.0f; beamInfo.m_flBlue = 80.0f; } else { beamInfo.m_flRed = 255.0f;; beamInfo.m_flGreen = 255.0f; beamInfo.m_flBlue = 255.0f; } beamInfo.m_nSegments = 4; beamInfo.m_bRenderable = true; beamInfo.m_nFlags = 0; beams->CreateBeamEntPoint( beamInfo ); // Draw the halo float color[3]; if ( m_bHackedByAlyx ) { color[0] = 0.25f; color[1] = 0.05f; color[2] = 0.0f; } else { color[0] = color[1] = color[2] = 0.15f; } IMaterial *pMaterial = materials->FindMaterial( "effects/rollerglow", NULL, false ); CMatRenderContextPtr pRenderContext( materials ); pRenderContext->Bind( pMaterial ); DrawHalo( pMaterial, GetAbsOrigin(), random->RandomFloat( 6.0f*scale, 6.5f*scale ), color ); if ( m_bPowerDown ) { color[0] = random->RandomFloat( 0.80f, 1.00f ); color[1] = random->RandomFloat( 0.10f, 0.25f ); color[2] = 0.0f; } else if ( m_bHackedByAlyx ) { color[0] = random->RandomFloat( 0.25f, 0.75f ); color[1] = random->RandomFloat( 0.10f, 0.25f ); color[2] = 0.0f; } else { color[0] = color[1] = color[2] = random->RandomFloat( 0.25f, 0.5f ); } Vector attachOrigin; QAngle attachAngles; GetAttachment( beamInfo.m_nEndAttachment, attachOrigin, attachAngles ); DrawHalo( pMaterial, attachOrigin, random->RandomFloat( 1.0f*scale, 1.5f*scale ), color ); GetAttachment( beamInfo.m_nStartAttachment, attachOrigin, attachAngles ); DrawHalo( pMaterial, attachOrigin, random->RandomFloat( 1.0f*scale, 1.5f*scale ), color ); } } return BaseClass::DrawModel( flags ); }[/code] DrawHalo is essentially just a mesh quad oriented towards the player's view, centered over the center of the rollermine. What essentially does is draw a beam between each attachment ( one pair per frame ) that lasts for a tenth of a second.
[QUOTE=VIoxtar;47092808][IMG]http://i.imgur.com/JBdATL7.png[/IMG] Anyone know how I can replicate these electricity Tesla like effects? What are they called, and what tool should I use?[/QUOTE] I'm pretty sure they're several different models for the different stages. There may be bodygroups, animations or whatever within those models but here they are: models/roller.mdl models/roller_spikes.mdl There may be another one I'm missing; but roller should be with spikes retracted and roller_spikes should be with the spikes extended.
with ENT:PhysicsCollide, how to check if a player collides with the entity
[QUOTE=Kogitsune;47093058][code]int C_RollerMine::DrawModel( int flags ) { if ( m_bIsOpen && m_flActiveTime <= gpGlobals->curtime ) { float scale = random->RandomFloat( 4.0f, 6.0f ); if ( gpGlobals->frametime != 0 ) { // Inner beams BeamInfo_t beamInfo; beamInfo.m_vecStart = GetAbsOrigin(); Vector offset = RandomVector( -6*scale, 2*scale ); offset += Vector(2,2,2) * scale; beamInfo.m_vecEnd = GetAbsOrigin() + offset; beamInfo.m_pStartEnt= cl_entitylist->GetEnt( BEAMENT_ENTITY( entindex() ) ); beamInfo.m_pEndEnt = beamInfo.m_pStartEnt; beamInfo.m_nStartAttachment = random->RandomInt( 0, NUM_ATTACHMENTS ); beamInfo.m_nEndAttachment = random->RandomInt( 0, NUM_ATTACHMENTS ); // Ensure we're not the same point if ( beamInfo.m_nStartAttachment == beamInfo.m_nEndAttachment ) { int nextStep = ( random->RandomInt( 0, 1 ) ) ? 1 : -1; beamInfo.m_nEndAttachment = ( beamInfo.m_nStartAttachment + nextStep ) % NUM_ATTACHMENTS; } beamInfo.m_nType = TE_BEAMTESLA; beamInfo.m_pszModelName = "sprites/lgtning.vmt"; beamInfo.m_flHaloScale = 0.0f; beamInfo.m_flLife = 0.1f; beamInfo.m_flWidth = random->RandomFloat( 2.0f, 4.0f ); beamInfo.m_flEndWidth = random->RandomFloat( 0.0f, 1.0f ); beamInfo.m_flFadeLength = 0.0f; beamInfo.m_flAmplitude = random->RandomFloat( 16, 32 ); beamInfo.m_flBrightness = 255.0; beamInfo.m_flSpeed = 0.0; beamInfo.m_nStartFrame = 0.0; beamInfo.m_flFrameRate = 1.0f; if ( m_bPowerDown ) { beamInfo.m_flRed = 255.0f;; beamInfo.m_flGreen = 64.0f; beamInfo.m_flBlue = 64.0f; } else if ( m_bHackedByAlyx ) { beamInfo.m_flRed = 240.0f;; beamInfo.m_flGreen = 200.0f; beamInfo.m_flBlue = 80.0f; } else { beamInfo.m_flRed = 255.0f;; beamInfo.m_flGreen = 255.0f; beamInfo.m_flBlue = 255.0f; } beamInfo.m_nSegments = 4; beamInfo.m_bRenderable = true; beamInfo.m_nFlags = 0; beams->CreateBeamEntPoint( beamInfo ); // Draw the halo float color[3]; if ( m_bHackedByAlyx ) { color[0] = 0.25f; color[1] = 0.05f; color[2] = 0.0f; } else { color[0] = color[1] = color[2] = 0.15f; } IMaterial *pMaterial = materials->FindMaterial( "effects/rollerglow", NULL, false ); CMatRenderContextPtr pRenderContext( materials ); pRenderContext->Bind( pMaterial ); DrawHalo( pMaterial, GetAbsOrigin(), random->RandomFloat( 6.0f*scale, 6.5f*scale ), color ); if ( m_bPowerDown ) { color[0] = random->RandomFloat( 0.80f, 1.00f ); color[1] = random->RandomFloat( 0.10f, 0.25f ); color[2] = 0.0f; } else if ( m_bHackedByAlyx ) { color[0] = random->RandomFloat( 0.25f, 0.75f ); color[1] = random->RandomFloat( 0.10f, 0.25f ); color[2] = 0.0f; } else { color[0] = color[1] = color[2] = random->RandomFloat( 0.25f, 0.5f ); } Vector attachOrigin; QAngle attachAngles; GetAttachment( beamInfo.m_nEndAttachment, attachOrigin, attachAngles ); DrawHalo( pMaterial, attachOrigin, random->RandomFloat( 1.0f*scale, 1.5f*scale ), color ); GetAttachment( beamInfo.m_nStartAttachment, attachOrigin, attachAngles ); DrawHalo( pMaterial, attachOrigin, random->RandomFloat( 1.0f*scale, 1.5f*scale ), color ); } } return BaseClass::DrawModel( flags ); }[/code] DrawHalo is essentially just a mesh quad oriented towards the player's view, centered over the center of the rollermine. What essentially does is draw a beam between each attachment ( one pair per frame ) that lasts for a tenth of a second.[/QUOTE] Thanks for this. Could you perhaps explain to me what an attachment is? Not sure I get it, and can't find any info on the wiki.
[QUOTE=VIoxtar;47094242][QUOTE=Scarface3353;47093996]with ENT:PhysicsCollide, how to check if a player collides with the entity[/QUOTE]Entity:IsPlayer(colData.HitEntity)[/QUOTE] More accurately, colData.HitEntity:IsPlayer() :smile:
[QUOTE=VIoxtar;47094242]Thanks for this. Could you perhaps explain to me what an attachment is? Not sure I get it, and can't find any info on the wiki.[/QUOTE] An attachment is defined on the model as a point relative to a bone, facing in a given direction relative to the bone, even if that bone is the root and not a rigged skeleton or anything like that. You can get a list of all attachments that the model an entity is using has by calling [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Entity/GetAttachments]Entity:GetAttachments[/url]. It returns a set with each attachment's id and given name. If you know the name of the attachment, you can fetch the id of it with [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Entity/LookupAttachment]Entity:LookupAttachment[/url]. This is a good idea for things like muzzle attachments, as a replacement model might not have them in the same order. If you know the id, you can call [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Entity/GetAttachment]Entity:GetAttachment[/url]. It will return a table that has two fields - Pos and Ang, which are the non-local position and angle of the attachment. The rollermine generally is going to require there to be the same number of attachments ( it is hardcoded to require a total of 12 ), but since it is just drawing lines between them, the order doesn't particularly matter, hence them not bothering with the names of the attachment and instead just using the id.
What is currently the best way to modify the player's movement speed without using SetWalkSpeed?
[QUOTE=Kogitsune;47095075]An attachment is defined on the model as a point relative to a bone, facing in a given direction relative to the bone, even if that bone is the root and not a rigged skeleton or anything like that. You can get a list of all attachments that the model an entity is using has by calling [IMG]http://wiki.garrysmod.com/favicon.ico[/IMG] [URL="http://wiki.garrysmod.com/page/Entity/GetAttachments"]Entity:GetAttachments[/URL]. It returns a set with each attachment's id and given name. If you know the name of the attachment, you can fetch the id of it with [IMG]http://wiki.garrysmod.com/favicon.ico[/IMG] [URL="http://wiki.garrysmod.com/page/Entity/LookupAttachment"]Entity:LookupAttachment[/URL]. This is a good idea for things like muzzle attachments, as a replacement model might not have them in the same order. If you know the id, you can call [IMG]http://wiki.garrysmod.com/favicon.ico[/IMG] [URL="http://wiki.garrysmod.com/page/Entity/GetAttachment"]Entity:GetAttachment[/URL]. It will return a table that has two fields - Pos and Ang, which are the non-local position and angle of the attachment. The rollermine generally is going to require there to be the same number of attachments ( it is hardcoded to require a total of 12 ), but since it is just drawing lines between them, the order doesn't particularly matter, hence them not bothering with the names of the attachment and instead just using the id.[/QUOTE] Awesome, thanks. It's sort of what I thought it was then. Now I gotta look deeper into how to render that (or a similar looking) beam on my SENT. I actually want to have the beams' locations change and their overall radius to expand over time, basically so it looks like this: [IMG]http://i.imgur.com/JNIexCc.png[/IMG] If anyone's got a lead or an idea for an approach, it'd be a ton of help. Thanks :) Edit: Just realized I may not need attachments after all, as I want the tesla effects to be randomized.
[QUOTE=VIoxtar;47095416]Awesome, thanks. It's sort of what I thought it was then. Now I gotta look deeper into how to render that (or a similar looking) beam on my SENT. I actually want to have the beams' locations change and their overall radius to expand over time, basically so it looks like this: [IMG]http://i.imgur.com/JNIexCc.png[/IMG] If anyone's got a lead or an idea for an approach, it'd be a ton of help. Thanks :) Edit: Just realized I may not need attachments after all, as I want the tesla effects to be randomized.[/QUOTE] Could you draw several beams between two random points in a certain radius of your SENT and have the radius increase over time?
Sorry, you need to Log In to post a reply to this thread.