• Problems That Don't Need Their Own Thread v2.0
    5,020 replies, posted
[QUOTE=highvoltage;46610204]I don't think this is the place for this but does anyone remember a script that would save any spawned props in a vmf file that you could use to give more detail in maps your making?[/QUOTE] I would think it is persistent props, or something like it. You won't be able to save to a VMF any longer because we're limited to txt. A quick search found this: [url]http://www.facepunch.com/threads/923571-Make-your-save-into-a-map-thread?p=21397239&viewfull=1[/url] Another one is here: [url]http://www.facepunch.com/threads/424729?p=11680479&viewfull=1[/url] Here's the search results page if those don't ring a bell: [url]https://www.google.com/search?q=site:http://www.facepunch.com%20save%20props%20vmf&gws_rd=ssl[/url]
I'm trying to loop a sound using [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/sound/PlayFile]sound.PlayFile[/url] I have noblock set, and have enabled looping, but the sound does not loop smoothly (it's a police siren). I'd prefer to not use timers for this, so how could I get the loop to be smooth? It looped perfectly smooth in FL Studio, but in-game it's like wee oo wee oo (pause) wee oo wee oo.
[QUOTE=man with hat;46610297]I'm trying to loop a sound using [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/sound/PlayFile]sound.PlayFile[/url] I have noblock set, and have enabled looping, but the sound does not loop smoothly (it's a police siren). I'd prefer to not use timers for this, so how could I get the loop to be smooth? It looped perfectly smooth in FL Studio, but in-game it's like wee oo wee oo (pause) wee oo wee oo.[/QUOTE] Can we see the file? There is a chance the cues aren't implemented correctly or at odd marks. I'd recommend using GoldWave or Wavosaur for looping; I haven't tried FL Studio yet so I'm not sure if it creates correct cues. Also, typically when having a sound that loops on an entity, we local _sound = CreateSound( _ent, _wav ); _sound:Play( ) / _sound:Stop( ); which could also be the issue.
[QUOTE=Acecool;46610221]I would think it is persistent props, or something like it. You won't be able to save to a VMF any longer because we're limited to txt. A quick search found this: [url]http://www.facepunch.com/threads/923571-Make-your-save-into-a-map-thread?p=21397239&viewfull=1[/url] Another one is here: [url]http://www.facepunch.com/threads/424729?p=11680479&viewfull=1[/url] Here's the search results page if those don't ring a bell: [url]https://www.google.com/search?q=site:http://www.facepunch.com%20save%20props%20vmf&gws_rd=ssl[/url][/QUOTE] Thanks, I had tried searching for "vmf exporter" using the same result but didn't get anything useful
[QUOTE=Acecool;46610369]Can we see the file? There is a chance the cues aren't implemented correctly or at odd marks. I'd recommend using GoldWave or Wavosaur for looping; I haven't tried FL Studio yet so I'm not sure if it creates correct cues. Also, typically when having a sound that loops on an entity, we local _sound = CreateSound( _ent, _wav ); _sound:Play( ) / _sound:Stop( ); which could also be the issue.[/QUOTE] Sorry, I should have clarified. The file itself isn't a loop, I just checked the little loop icon to make it repeat in FL Studio. I've never looped it through a program so I just decided to go with this. Would it be better to loop it with a program?
[QUOTE=man with hat;46610541]Sorry, I should have clarified. The file itself isn't a loop, I just checked the little loop icon to make it repeat in FL Studio. I've never looped it through a program so I just decided to go with this. Would it be better to loop it with a program?[/QUOTE] Yes. The built in looping probably just has it %play when the sound ends. Using sound-cues you can have the sound start playing normally, then when it hits the end cue it jumps back to the start cue so you can have a nice wind-up, then loop. Wavosaur is free and sets up the cues automatically using CTRL + L or so.. GoldWave you need to set them up and name them manually.
[QUOTE=Acecool;46610679]Yes. The built in looping probably just has it %play when the sound ends. Using sound-cues you can have the sound start playing normally, then when it hits the end cue it jumps back to the start cue so you can have a nice wind-up, then loop. Wavosaur is free and sets up the cues automatically using CTRL + L or so.. GoldWave you need to set them up and name them manually.[/QUOTE] Thanks, I'll try that.
[url=http://wiki.garrysmod.com/page/Player/ViewPunch]ply:ViewPunch[/url] / [url=http://wiki.garrysmod.com/page/Player/SetViewPunchAngles]ply:SetViewPunchAngles[/url] are great for weapons. Counter-Strike: Source uses view punches for recoil. A nice way to use it is to just modify the pitch of your aim angles with the player's viewpunch ( [url=http://wiki.garrysmod.com/page/Player/GetViewPunchAngles]ply:GetViewPunchAngles[/url] ) multiplied by some value like 2 in your bullet firing code.
[QUOTE=Acecool;46609907]Entities have a sort of speed-limit in source. You can get around that by manually calculating distance, and setpos'ing the entity and performing checks along the path between the old position and the new position to see if it hit something. I wouldn't use view-punch, mainly because it don't modify the direction the player is looking. I'd recommend modifying the GetEyeAngles which will change where the player is looking and where the bullet will follow... For your dynamic cone, you, on top of the eye angles, could simply take the aim vector / angle and rotate around axis... Another option is to consider how to do it in a 2d game ( where you have the point x, y and you add a random value +/- on the x and y to make it change ) and apply it to 3d by modifying the aim angle pitch and yaw which is up/down left/right ever so slightly and then you may need to normalize it to pass it into the bullet system. As for the bullets being offset in the viewpunch method, it is because the view isn't being moved most likely. Just modify the angles / rotate around axis a very small amount before normalizing it and it should work.[/QUOTE] I'll look into that speed hack thing but I rather fix my current issues. My weapon base is based off of the Counter-Strike Source weapons. No bullshit like ironsights or firing restrictions while sprinting is in it so I'm not going to change it. It's a must. For the rest of your post, I literally don't understand any of what you just said. I need help understanding this whole "Normal" and "Rotatearoundaxis" Buisness
When you take an angle and normalize it, it becomes a vector again. It becomes length of 1 unit so that you can take it and multiply it by x units and end up at a new position. So, if I want to get a position 5 feet in front of the player, I can take local _f = _p:GetEyeAngles( ):Forward( ); print( _p:LocalToWorld( _f * ( 16 * 5 ) ) ) and it will be at a position 5 feet in front of the player ( actually 5 feet in the direction the player is looking ). Normalized vectors are incredibly useful. As for rotate around axis, you can tell an angle to re-orient itself from a pivot point ( the axis ). Because you're passing in a normal vector generated from an angle, you can modify how much the bullet strays from the center line by reorienting the angle by a small amount. [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Angle/RotateAroundAxis]Angle:RotateAroundAxis[/url] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/math/NormalizeAngle]math.NormalizeAngle[/url] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Angle/RotateAroundAxis]Angle:RotateAroundAxis[/url] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Angle/Normalize]Angle:Normalize[/url] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Vector/GetNormal]Vector:GetNormal[/url] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Vector/GetNormalized]Vector:GetNormalized[/url] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/Vector/Normalize]Vector:Normalize[/url]
[QUOTE=Acecool;46609907]Take a look at this: [url]https://dl.dropboxusercontent.com/u/26074909/tutoring/_systems/anti_teamkill_system.lua.html[/url] [/QUOTE] Thanks for that. I have this so far. [code]// // Stop Team Damage - Josh 'Acecool' Moser // // // Configuration Table - Make sure the teams you want immunity between share the same number // // // Added so that DarkRP has time to create the teams before we access the values. // Other hooks that may work: InitPostEntity, Initialize ( may run too early ) // hook.Add( "CreateTeams", "ParseTableAtRightTime", function( ) timer.Simple( 0, function( ) ANTI_TEAMKILL_TEAMS_TABLE = { // Team 1 [ TEAM_NAZI ] = 1; [ TEAM_NAZIMEDIC ] = 1; -- Example, uncomment if you have more than one team set up that needs to be on the same "team"... [ TEAM_NAZISUPPLIER ] = 1; -- Example, uncomment if you have more than one team set up that needs to be on the same "team"... [ TEAM_FUHRER ] = 1; }; end ); end ); // // When making hooks, it is best to remain non-intrusive. Other hooks may be running to determine damage in addition to this one. // To remain non-intrusive we create the scenario which matches the logic we're using; nothing else should be touched. // // // Perform the action that prevents team-damage between like-teams // hook.Add("PlayerShouldTakeDamage", "PlayerShouldTakeDamage:AvoidTeamDamage", function( _victim, _attacker ) // Make sure both victim and attacker are valid entities and that they're both player entities -- The victim can be assumed a player because of the hook. We're just calling it to remain uniform. if ( IsValid( _victim ) && IsValid( _attacker ) && _victim:IsPlayer( ) && _attacker:IsPlayer( ) ) then // If both victim and attacker team data matches, don't allow damage. This is the ONLY test we need to perform. if ( ANTI_TEAMKILL_TEAMS_TABLE[ _victim:Team( ) ] == ANTI_TEAMKILL_TEAMS_TABLE[ _attacker:Team( ) ] ) then return false; end end end );[/code] But I get this error every time I shoot someone, doesn't matter what team. [code][ERROR] addons/darkrpmod/lua/darkrp_modules/nazidamage/sv_nazidamage.lua:35: attempt to index global 'ANTI_TEAMKILL_TEAMS_TABLE' (a nil value) [/code] I'm absolute shit at lua, and I'm still trying to learn. So help is appreciated.
Hi. I wanna change swep world model, when swep deployed. For example: [code]function SWEP:ChangeWorldModel(mdl) self.WorldModel = mdl end[/code] But only local player see changed world model
Alright, instead of guessing, I decided to have it build the table upon first damage occasion and insert all other teams too... [url]https://dl.dropboxusercontent.com/u/26074909/tutoring/_systems/anti_teamkill_system_with_failsafe2.lua.html[/url] - and Lua: [url]https://dl.dropboxusercontent.com/u/26074909/tutoring/_systems/anti_teamkill_system_with_failsafe2.lua[/url] [code]// // Stop Team Damage with failsafe ( auto-refresh compatible ) - Josh 'Acecool' Moser // // // Configuration Table - Make sure the teams you want immunity between share the same number // ANTI_TEAMKILL_TEAMS_TABLE = ANTI_TEAMKILL_TEAMS_TABLE || { }; // // Changed to a function which gets called on damage instead of attempting to figure out when // DarkRP sets up the teams... // local function AntiTeamKillBuildTable( ) // Set the teams up on the first occasion when damage is dealth... ANTI_TEAMKILL_TEAMS_TABLE = { [ TEAM_NAZI ] = 1; [ TEAM_NAZIMEDIC ] = 1; -- Example, uncomment if you have more than one team set up that needs to be on the same "team"... [ TEAM_NAZISUPPLIER ] = 1; -- Example, uncomment if you have more than one team set up that needs to be on the same "team"... [ TEAM_FUHRER ] = 1; // I'd recommend setting up another team, but you don't need to if you don't want to because all other teams will be automatically added... }; // Insert any left-over teams as rogues... for k, v in pairs( team.GetAllTeams( ) ) do // Only insert if the entry doesn't exist; this allows you to set up 1 team, and everyone else gets their own entry... if ( ANTI_TEAMKILL_TEAMS_TABLE[ k ] ) then continue; end // Set it up, give it a team number which is offset by a bit... ANTI_TEAMKILL_TEAMS_TABLE[ k ] = k + 9000; end end // // When making hooks, it is best to remain non-intrusive. Other hooks may be running to determine damage in addition to this one. // To remain non-intrusive we create the scenario which matches the logic we're using; nothing else should be touched. // // // Perform the action that prevents team-damage between like-teams // hook.Add("PlayerShouldTakeDamage", "PlayerShouldTakeDamage:AvoidTeamDamage", function( _victim, _attacker ) // Make sure both victim and attacker are valid entities and that they're both player entities -- The victim can be assumed a player because of the hook. We're just calling it to remain uniform. if ( IsValid( _victim ) && IsValid( _attacker ) && _victim:IsPlayer( ) && _attacker:IsPlayer( ) ) then // ANTI_TEAMKILL_TEAMS_TABLE is defined as an empty table, at least, so here we query the teams... local _teamA = ANTI_TEAMKILL_TEAMS_TABLE[ _attacker:Team( ) ]; local _teamV = ANTI_TEAMKILL_TEAMS_TABLE[ _victim:Team( ) ]; // Set up the table when it needs to be set up ( first damage occasion instead of guessing with DarkRP / other gamemodes )... if ( !ANTI_TEAMKILL_TEAMS_TABLE || !_teamA || !_teamV ) then AntiTeamKillBuildTable( ); end // If both victim and attacker team data matches, don't allow damage. This is the ONLY return we need to handle. if ( ANTI_TEAMKILL_TEAMS_TABLE[ _victim:Team( ) ] == ANTI_TEAMKILL_TEAMS_TABLE[ _attacker:Team( ) ] ) then return false; end end end );[/code] That should take care of that issue for good... [editline]1st December 2014[/editline] [QUOTE=UnkN;46613065]Hi. I wanna change swep world model, when swep deployed. For example: [code]function SWEP:ChangeWorldModel(mdl) self.WorldModel = mdl end[/code] But only local player see changed world model[/QUOTE] You'll need to network the change so everyone else sees it ( although, you may be able to get away with just doing self:SetModel( mdl ); in server code. [editline]1st December 2014[/editline] I have a question: string.format( "My %s is a %s!", "string" ); In other languages when working with replacers, you can reference the first, second, or whatever as many times as you want either by using \\1, \\2, or other methods. Is it possible to do the same thing with string.format in Lua, or not?
[QUOTE=Acecool;46613858]Alright, instead of guessing, I decided to have it build the table upon first damage occasion and insert all other teams too... [url]https://dl.dropboxusercontent.com/u/26074909/tutoring/_systems/anti_teamkill_system_with_failsafe2.lua.html[/url] - and Lua: [url]https://dl.dropboxusercontent.com/u/26074909/tutoring/_systems/anti_teamkill_system_with_failsafe2.lua[/url] [code]// // Stop Team Damage with failsafe ( auto-refresh compatible ) - Josh 'Acecool' Moser // // // Configuration Table - Make sure the teams you want immunity between share the same number // ANTI_TEAMKILL_TEAMS_TABLE = ANTI_TEAMKILL_TEAMS_TABLE || { }; // // Changed to a function which gets called on damage instead of attempting to figure out when // DarkRP sets up the teams... // local function AntiTeamKillBuildTable( ) // Set the teams up on the first occasion when damage is dealth... ANTI_TEAMKILL_TEAMS_TABLE = { [ TEAM_NAZI ] = 1; [ TEAM_NAZIMEDIC ] = 1; -- Example, uncomment if you have more than one team set up that needs to be on the same "team"... [ TEAM_NAZISUPPLIER ] = 1; -- Example, uncomment if you have more than one team set up that needs to be on the same "team"... [ TEAM_FUHRER ] = 1; // I'd recommend setting up another team, but you don't need to if you don't want to because all other teams will be automatically added... }; // Insert any left-over teams as rogues... for k, v in pairs( team.GetAllTeams( ) ) do // Only insert if the entry doesn't exist; this allows you to set up 1 team, and everyone else gets their own entry... if ( ANTI_TEAMKILL_TEAMS_TABLE[ k ] ) then continue; end // Set it up, give it a team number which is offset by a bit... ANTI_TEAMKILL_TEAMS_TABLE[ k ] = k + 9000; end end // // When making hooks, it is best to remain non-intrusive. Other hooks may be running to determine damage in addition to this one. // To remain non-intrusive we create the scenario which matches the logic we're using; nothing else should be touched. // // // Perform the action that prevents team-damage between like-teams // hook.Add("PlayerShouldTakeDamage", "PlayerShouldTakeDamage:AvoidTeamDamage", function( _victim, _attacker ) // Make sure both victim and attacker are valid entities and that they're both player entities -- The victim can be assumed a player because of the hook. We're just calling it to remain uniform. if ( IsValid( _victim ) && IsValid( _attacker ) && _victim:IsPlayer( ) && _attacker:IsPlayer( ) ) then // ANTI_TEAMKILL_TEAMS_TABLE is defined as an empty table, at least, so here we query the teams... local _teamA = ANTI_TEAMKILL_TEAMS_TABLE[ _attacker:Team( ) ]; local _teamV = ANTI_TEAMKILL_TEAMS_TABLE[ _victim:Team( ) ]; // Set up the table when it needs to be set up ( first damage occasion instead of guessing with DarkRP / other gamemodes )... if ( !ANTI_TEAMKILL_TEAMS_TABLE || !_teamA || !_teamV ) then AntiTeamKillBuildTable( ); end // If both victim and attacker team data matches, don't allow damage. This is the ONLY return we need to handle. if ( ANTI_TEAMKILL_TEAMS_TABLE[ _victim:Team( ) ] == ANTI_TEAMKILL_TEAMS_TABLE[ _attacker:Team( ) ] ) then return false; end end end );[/code] That should take care of that issue for good... [editline]1st December 2014[/editline] You'll need to network the change so everyone else sees it ( although, you may be able to get away with just doing self:SetModel( mdl ); in server code. [editline]1st December 2014[/editline] I have a question: string.format( "My %s is a %s!", "string" ); In other languages when working with replacers, you can reference the first, second, or whatever as many times as you want either by using \\1, \\2, or other methods. Is it possible to do the same thing with string.format in Lua, or not?[/QUOTE] That seems to work for the same team, but that seems to have team damage, for ALL teams, such as civilian vs civilian. I've looked through the code, and I'm not sure what's causing it.
[QUOTE=Acecool;46613858]I have a question: string.format( "My %s is a %s!", "string" ); In other languages when working with replacers, you can reference the first, second, or whatever as many times as you want either by using \\1, \\2, or other methods. Is it possible to do the same thing with string.format in Lua, or not?[/QUOTE] Keeping this relevant... I've done a bit of searching and while I can add a guaranteed number of 0s before a digit, or x number of decimals, or x spaces to make up columns, I haven't found a way to grab the first arg using \\1 etc... I may re-direct the function to parse it through the original, but keep a reference to the ... so \\x will reference _args[ x ] and upload it to my dev base if the feature doesn't exist... [QUOTE=sarge997;46614488]That seems to work for the same team, but that seems to have team damage, for ALL teams, such as civilian vs civilian. I've looked through the code, and I'm not sure what's causing it.[/QUOTE] Yeah, you set up 4 teams to be "friendly". TEAM_NAZI, TEAM_NAZIMEDIC, TEAM_NAZISUPPLIER, TEAM_FUHRER are assigned to team 1. If you don't set up any other teams, or join any more to 1, then they'll all be able to damage each other except those 4 to each other IF they're valid variables / references... I did away with trying the CreateTeams hook so it initializes when it needs it, no sooner and no later. If you add teams with auto-refresh, it'll add them too when they get damaged if the key doesn't exist. If you want it to re-generate the table each autorefresh so updates will occur in teams, change: [code]ANTI_TEAMKILL_TEAMS_TABLE = ANTI_TEAMKILL_TEAMS_TABLE || { };[/code] to [code]ANTI_TEAMKILL_TEAMS_TABLE = { };[/code] Show us a list of your teams and we can come up with something that will work... Your TEAM_CITIZEN or TEAM_CIVILIAN ( whatever the names ), if there are more than 1 "team" per team then you need to give it an identifier... say TEAM_CITIZEN = 2; TEAM_CIVILIAN = 2; TEAM_DISC_JOCKEY = 2; TEAM_TERRORIST = 3; TEAM_TERRORIST_MP = 3; Etc... Since you only have 4 set up, those 4 shouldn't be able to damage each other as long as those ids are initialized... I'm working on something for a friend that goes with my maps class / system to make adding spawns easier, and it'll use functions to add the teams instead of setting up a table ( may be more user friendly ) and it'll be able to determine whether or not the value is setup or not... But, as said, show us a list of your teams and I'll help you set something up.
How can I make a clothes customizater to darkrp
anyone know how to make gmod not load duplicate doors when loading a save file?
[QUOTE=Acecool;46610679]Yes. The built in looping probably just has it %play when the sound ends. Using sound-cues you can have the sound start playing normally, then when it hits the end cue it jumps back to the start cue so you can have a nice wind-up, then loop. Wavosaur is free and sets up the cues automatically using CTRL + L or so.. GoldWave you need to set them up and name them manually.[/QUOTE] Resolved. The problem was that FL Studio saved the .mp3 with a bit of silence at the beginning and at the end. I made a .wav and used GoldWave to loop it. Thanks.
I guess I should have put this here, but I didn't notice the thread. I'm trying to make a destruction derby game mode, which in turn means I'm trying to make a custom entity that derives from the default jeep vehicle, so I can use :PhysicsCollide [url]http://facepunch.com/showthread.php?t=1439625[/url]
-solved-
I need help with parenting objects. I'm trying to parent an object to a player's thigh but since there are no attachment spots for that area I don't know what to do. [editline]2nd December 2014[/editline] Actually I just want to stop using attachments alltogether because it seems like most if not all custom player models don't have attachments. This is how I'm currently attaching things [code] local PLookUp = ply:LookupAttachment( "chest" ) local PAttachment = ply:GetAttachment(PLookUp) local PAttachmentAng = PAttachment.Ang local PBoneIndex = ply:LookupBone("ValveBiped.Bip01_Spine4") local PBonePos, PBoneAng = ply:GetBonePosition(PBoneIndex) -- LATER IN THE CODE, THIS IS ONLY RUN ONCE ply.PrimaryObj:SetPos(PBonePos + PAttachmentAng:Forward()*-4.5 + PAttachmentAng:Right()*-4 + PAttachmentAng:Up()*-4) ply.PrimaryObj:SetAngles( PAttachmentAng + Angle(90,0,90) ) ply.PrimaryObj:SetOwner( ply ) ply.PrimaryObj:SetParent(ply,PLookUp) [/code]
Hello, I have an issue with tables linking and I have no idea how to unlink them. For example if I use this code: [code] table1 = {} table1.number = 5 local table2 = table1 table2.number = 3 print(table1.number) [/code] I'll get the number 3 printed out. How do I avoid this?
[QUOTE=Blackfire76;46624268]Hello, I have an issue with tables linking and I have no idea how to unlink them. For example if I use this code: [code] table1 = {} table1.number = 5 local table2 = table1 table2.number = 3 print(table1.number) [/code] I'll get the number 3 printed out. How do I avoid this?[/QUOTE] this is basically settings table2 to the table object from table1 (NOT A COPY!) if you want a copy you can either manually go through all the indices and set it in a new table or use table.Copy(table1)
[QUOTE=MeepDarknessM;46624297]this is basically settings table2 to the table object from table1 (NOT A COPY!) if you want a copy you can either manually go through all the indices and set it in a new table or use table.Copy(table1)[/QUOTE] I tried using table.copy already, same results. ._. EDIT: Oh hang on I just realized the reason that didnt work is because the script had a syntax error. oops thanks
I'm having trouble with traceresult.HitNormal. It seems to rotate unexpectedly. It always rotates on the second block, and it rotates randomly later on in the video. I don't even know why. Video: [url]https://dl.dropboxusercontent.com/u/104427432/Videos/gm_flatgrass%202014-12-2%2021-30-20.webm[/url] Code: [lua] Ang = trace.HitNormal:Angle() -- if (Ang.p+Ang.y+Ang.r) % 90 != 0 then Ang = Angle(Ang.p-Ang.p%90,Ang.y-Ang.y%90,Ang.r-Ang.r%90) end --wtf this is stupid but it fixes stuff idk why. Ang = Ang + sent.AngOffset --angoffset is Angle(0,0,0) for the blocks. Pos = trace.Entity:GetPos() - (trace.Entity:OBBMins().z*2+sent.PosOffset)* trace.HitNormal --this works fine. [/lua] pls. halp.
How can I get a clients system time?
[QUOTE=fghdx;46625727]How can I get a clients system time?[/QUOTE] [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/os/time]os.time[/url]
[QUOTE=bobbleheadbob;46625741][img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/os/time]os.time[/url][/QUOTE] When I tried that it did not return the clients time.
[QUOTE=fghdx;46625801]When I tried that it did not return the clients time.[/QUOTE] Are you running it on his client?
[QUOTE=ROFLBURGER;46625819]Are you running it on his client?[/QUOTE] Yep.
Sorry, you need to Log In to post a reply to this thread.