| CS.RIN.RU - Steam Underground Community http://cs.rin.ru/forum/ |
|
| [REL] Gmod Extracted Fix http://cs.rin.ru/forum/viewtopic.php?f=31&t=46094 |
Page 1 of 2 |
| Author: | PeJpepiG [ Sunday, 29 Jul 2007, 22:09 ] |
| Post subject: | [REL] Gmod Extracted Fix |
Garry's Mod Extracted Fix How to create a Gmod Standalone? 1. Get SASiO's GCFExplorer (http://cs.rin.ru/forum/viewtopic.php?t=44110) 2. Extract the following gcfs with GCFExplorer in this way: source dedicated server.gcf source engine.gcf base source engine 2.gcf source materials.gcf source models.gcf source sounds.gcf garrysmod content.gcf Note: If you don't want source dedicated server in your Standalone you have to copy steamclient.dll, tier0_s.dll, vstdlib_s.dll, Steam_api.dll from Steam dir to the bin dir of your Standalone And that gcf files depending on which games content you want to add: counter-strike source client.gcf counter-strike source shared.gcf day of defeat source.gcf half-life 2 content.gcf half-life 2 deathmatch.gcf episode 1 shared.gcf half-life 2 episode one.gcf lostcoast content.gcf half-life source.gcf half-life source deathmatch client.gcf half-life deathmatch source.gcf 3. Get newest version of hCUPa's SteamEmu (3.71, http://cs.rin.ru/forum/viewtopic.php?p=486092#486092) and put the steam.dll in your Steandalone dir. 4. Create steamemu.ini with this code: [Emulator] Extracted=1 5. Now you can start the games you extracted content of with this parameters: hl2.exe -steam -game %gamedir% 6. To start gmod there are two possibilitys: First and easy way: Use the fixed Garry's Mod.exe from Attachment. This exe will auto-detect installed content (also from third-party mods). Second way: Use the fixed files only pack and overwrite existing files. This won't detect if content is installed or not. To disable css/dods content delete info.txt in "garrysmod\addons\counter-strike" \ "garrysmod\addons\day-of-defeat" To add other content (from third party mods) add gamedir in GameInfo.txt. Thanks to: - hcupa for his great SteamEmu - SASiO for his great GCFExplorer PJG I'll post my realy ugly code, so everybody can improve it and fix problems, and post you're code in here, so I can edit first post adding your version. If you search for gmod icon, it's in the winui.gcf\\steam\games. If you don't know how to make it an exe check out Quick Batch File Compiler. So here is the ugly code, there's a lot to improve. @echo off @TITLE Garry's Mod @SHIFT @if not exist garrysmod goto end @dir /B /A:D>gmod~1 @Set /a "cnt=1" @Set /a "n=1" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=2" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=3" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=4" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=5" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=6" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=7" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=8" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=9" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=10" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=11" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=12" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=13" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=14" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=15" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=16" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=17" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=18" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=19" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @Set /a "cnt=1" @Set /a "n=20" @for /F %%i in (gmod~1) do call :setvarFixLine %n% "%%i" @set game%n%=%var% @DEL gmod~1 @echo "GameInfo">garrysmod\gameinfo.txt @echo {>>garrysmod\gameinfo.txt @echo game "Garry's Mod">>garrysmod\gameinfo.txt @echo title "">>garrysmod\gameinfo.txt @echo title2 "">>garrysmod\gameinfo.txt @echo type multiplayer_only>>garrysmod\gameinfo.txt @echo "developer" "TEAM GARRY">>garrysmod\gameinfo.txt @echo "icon" "resource/v">>garrysmod\gameinfo.txt @echo "developer_url" "http://www.garrysmod.com/">>garrysmod\gameinfo.txt @echo "manual" "http://wiki.garrysmod.com/">>garrysmod\gameinfo.txt @echo FileSystem>>garrysmod\gameinfo.txt @echo {>>garrysmod\gameinfo.txt @echo SteamAppId 215>>garrysmod\gameinfo.txt @echo ToolsAppId 211>>garrysmod\gameinfo.txt @echo SearchPaths>>garrysmod\gameinfo.txt @echo {>>garrysmod\gameinfo.txt @echo Game "|gameinfo_path|.">>garrysmod\gameinfo.txt @echo Game "garrysmod">>garrysmod\gameinfo.txt @echo Game "hl2">>garrysmod\gameinfo.txt @echo Game "%game1%">>garrysmod\gameinfo.txt @echo Game "%game2%">>garrysmod\gameinfo.txt @echo Game "%game3%">>garrysmod\gameinfo.txt @echo Game "%game4%">>garrysmod\gameinfo.txt @echo Game "%game5%">>garrysmod\gameinfo.txt @echo Game "%game6%">>garrysmod\gameinfo.txt @echo Game "%game7%">>garrysmod\gameinfo.txt @echo Game "%game8%">>garrysmod\gameinfo.txt @echo Game "%game9%">>garrysmod\gameinfo.txt @echo Game "%game10%">>garrysmod\gameinfo.txt @echo Game "%game11%">>garrysmod\gameinfo.txt @echo Game "%game12%">>garrysmod\gameinfo.txt @echo Game "%game13%">>garrysmod\gameinfo.txt @echo Game "%game14%">>garrysmod\gameinfo.txt @echo Game "%game15%">>garrysmod\gameinfo.txt @echo Game "%game16%">>garrysmod\gameinfo.txt @echo Game "%game17%">>garrysmod\gameinfo.txt @echo Game "%game18%">>garrysmod\gameinfo.txt @echo Game "%game19%">>garrysmod\gameinfo.txt @echo Game "%game20%">>garrysmod\gameinfo.txt @echo }>>garrysmod\gameinfo.txt @echo }>>garrysmod\gameinfo.txt @echo }>>garrysmod\gameinfo.txt @echo "Counter-Strike">garrysmod\settings\mount\counter-strike.txt @echo {>>garrysmod\settings\mount\counter-strike.txt @echo "SearchPath" "cstrike">>garrysmod\settings\mount\counter-strike.txt @echo }>>garrysmod\settings\mount\counter-strike.txt @echo "Day of Defeat">garrysmod\settings\mount\day-of-defeat.txt @echo {>>garrysmod\settings\mount\day-of-defeat.txt @echo "SearchPath" "dod">>garrysmod\settings\mount\day-of-defeat.txt @echo }>>garrysmod\settings\mount\day-of-defeat.txt @echo "Half-Life 2">garrysmod\settings\mount\hl2.txt @echo {>>garrysmod\settings\mount\hl2.txt @echo "SearchPath" "hl2">>garrysmod\settings\mount\hl2.txt @echo }>>garrysmod\settings\mount\hl2.txt @echo "HL2: Episode 1">garrysmod\settings\mount\hl2_ep1.txt @echo {>>garrysmod\settings\mount\hl2_ep1.txt @echo "SearchPath" "episodic">>garrysmod\settings\mount\hl2_ep1.txt @echo }>>garrysmod\settings\mount\hl2_ep1.txt @echo "Half-Life 2: Lost Coast">garrysmod\settings\mount\hl2-lost-coast.txt @echo {>>garrysmod\settings\mount\hl2-lost-coast.txt @echo "SearchPath" "lostcoast">>garrysmod\settings\mount\hl2-lost-coast.txt @echo }>>garrysmod\settings\mount\hl2-lost-coast.txt @echo "Half-Life 2: Deathmatch">garrysmod\settings\mount\hl2mp.txt @echo {>>garrysmod\settings\mount\hl2mp.txt @echo "SearchPath" "hl2mp">>garrysmod\settings\mount\hl2mp.txt @echo }>>garrysmod\settings\mount\hl2mp.txt @echo "Half-life: Source">garrysmod\settings\mount\hl_source.txt @echo {>>garrysmod\settings\mount\hl_source.txt @echo "SearchPath" "hl1">>garrysmod\settings\mount\hl_source.txt @echo }>>garrysmod\settings\mount\hl_source.txt @echo "Half-life Deathmatch: Source">garrysmod\settings\mount\hldm_source.txt @echo {>>garrysmod\settings\mount\hldm_source.txt @echo "SearchPath" "hl1mp">>garrysmod\settings\mount\hldm_source.txt @echo }>>garrysmod\settings\mount\hldm_source.txt @if exist cstrike echo "AddonInfo">garrysmod\addons\counter-strike\info.txt @if exist cstrike echo {>>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "name" "Counter-Strike: Source Content">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "version" "1.0">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "up_date" "5th August 2006">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "author_name" "Valve">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "author_email" "n/a">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "author_url" "http://www.counter-strike.net/">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "info" "CS:S Content!">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo "override" "0">>garrysmod\addons\counter-strike\info.txt @if exist cstrike echo }>>garrysmod\addons\counter-strike\info.txt @if not exist cstrike DEL garrysmod\addons\counter-strike\info.txt @if exist dod echo "AddonInfo">garrysmod\addons\day-of-defeat\info.txt @if exist dod echo {>>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "name" "Day Of Defeat: Source Content">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "version" "1.0">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "up_date" "22nd August 2006">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "author_name" "Valve">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "author_email" "n/a">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "author_url" "http://www.steampowered.net/">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "info" "Adds DoD:S content">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo "override" "0">>garrysmod\addons\day-of-defeat\info.txt @if exist dod echo }>>garrysmod\addons\day-of-defeat\info.txt @if not exist dod DEL garrysmod\addons\day-of-defeat\info.txt @hl2.exe -steam -game garrysmod -console %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 @:setvarFixLine @If %cnt%==%1 Set "Var=%~2" @Set /a "cnt+=1" @:end |
|
| Author: | CptFuzzies [ Sunday, 29 Jul 2007, 22:59 ] |
| Post subject: | |
OMFG YOU BEAT ME TO IT! I was sooooo close to making the fix. Edit: WAAAAAAY TOO LONG! Just go here: http://cs.rin.ru/forum/viewtopic.php?t=46151 Create a Standalone in one click. Yes patched with GMOD FIX! |
|
| Author: | CR@CK-iT [ Sunday, 29 Jul 2007, 23:09 ] |
| Post subject: | |
Rofl ^^ also "my fix"... The funny thing is PJG and I found the same solution for getting Gmod to run. When I posted my gmod for my collection PJG asked me if I used the same solution like me. And it was the same ^^. There's only one part missing: A check that is searching for the extracted folders and automatically (de)activates the content in Gmod. |
|
| Author: | PeJpepiG [ Sunday, 29 Jul 2007, 23:12 ] |
| Post subject: | |
@CR@CK-iT: Changed it so now it is only one exe and also detects which content is installed. But it's really funny we used the same way to get it working without knowing it. |
|
| Author: | CR@CK-iT [ Sunday, 29 Jul 2007, 23:42 ] |
| Post subject: | |
Tested it and it works great But I have two suggestions for improvement: 1. The formation of the edited files (you know which I mean 2. This results from number one: It would be better if the file which indicates gmod the folders to search in (you know the file Also would it be possible to write all folders in the extracted dir, because by doing that it would be possible for Garry's Mod to spawn even items of Mods. E. g. you have insurgency mod installed and if you use the folder button in the spawn menu in Garry's Mod and you select an item of the insurgency mod, it will spawn this annoying error message. So if the exe would write all folders in the dir where gmod is located would feature the possibility to spawn all objects of all installed games. |
|
| Author: | PeJpepiG [ Monday, 30 Jul 2007, 03:20 ] |
| Post subject: | |
Updated the exe, fixed files still look "strange". Check out first post to know what changed. Also released fixedfilesonly pack, yes I know people will used it again telling they made it themselves without any help. I'm too lazy to care what other people do with that files. But I would be happy if everybody that uses my files for a public release writes my name somewhere. |
|
| Author: | RessourectoR [ Monday, 30 Jul 2007, 08:51 ] |
| Post subject: | |
Thanks, hopefully that reduces people asking for GMod |
|
| Author: | PeJpepiG [ Monday, 30 Jul 2007, 10:57 ] |
| Post subject: | |
There will be some changes in future, trying to make auto-detect which mods are installed and a few other things. First Post will also be edited. |
|
| Author: | Mr.Deviance [ Monday, 30 Jul 2007, 12:08 ] |
| Post subject: | |
So many problems because of gmod. |
|
| Author: | CR@CK-iT [ Monday, 30 Jul 2007, 12:55 ] |
| Post subject: | |
Maby I'll explain here what files will be changed by using PJG exe or how the method works. Okay, we have the mod folder garrysmod right? And if we use the SteamEmu 3.71 we cannot start Garry's mod because the Hl2 exe crashs. So we have to fix this problem: We go into this folder garrysmod\settings\mount, where we see a lot of files. Concerning the folder name "mount" we can exspect that Gmod tries to "load / mount" these games. To have a closer look how Gmod launches the games, we'll have a look at the file. If we look for example in the file counter-strike, we should see this: "Counter-Strike" { "SearchPath" "cstrike" "GCF" "240" } It mentions a gcf file... do we have a gcf file, if we want to run the game extracted? No, we delete this passage. The file should look like this: "Counter-Strike" { "SearchPath" "cstrike" } All the other files must also be edited like this one. We have to delete all GCF requests in all the txt files in the mount folder, otherwise SteamEmu still tries to find these files and crashs. If we have done this, Gmod should start probably. By clicking on the tab Play Single Player we just see the standard Gmod maps: gm_construct and gm_flatgrass. Also in the other topic "browse all" we can only find the hl2 and gmod maps, but though we have an extracted CSS and DOD installed! In real Steam with Gmod, CSS and Dod we should see all CSS and Dod maps listed here. Even if we join one of the two maps and have a look in the spawn menu (by pressing Q) we only see the Half-Life 2 content. There are no objects of CSS or Dod. Now we have to fix this to: We go to the folder garrysmod where we can locate a file called gameinfo.txt, which should look like this: "GameInfo" { game "Garry's Mod" title "" title2 "" type multiplayer_only "developer" "TEAM GARRY" "icon" "resource/v" "developer_url" "http://www.garrysmod.com/" "manual" "http://wiki.garrysmod.com/" FileSystem { SteamAppId 215 ToolsAppId 211 SearchPaths { Game |gameinfo_path|. Game hl2 } } } As we can see Gmod initialises the folder hl2, which includes the Half-Life 2 content. This content was accessable in Gmod and to get Gmod to recognize the other folders (CSS and Dod and all other games mentioned in the mount files) we have to add the command game and the folder name. Here's an example: "GameInfo" { game "Garry's Mod" title "" title2 "" type multiplayer_only "developer" "TEAM GARRY" "icon" "resource/v" "developer_url" "http://www.garrysmod.com/" "manual" "http://wiki.garrysmod.com/" FileSystem { SteamAppId 215 ToolsAppId 211 SearchPaths { Game |gameinfo_path|. Game hl2 Game cstrike } } } We added the command Game cstrike and Gmod should recognize in "Play Single Player" and the tab "Browse all" the Counter-Strike Source maps. In game we still don't have the css content. For fixing the css content we do the following: We change the directory to garrysmod\addons, where we can find 3 folders. Counter-Strike and Day-of-defeat are the interesting ones. If we look into one of the folders we will find a info.txt, which mentions the following (e.g css): "AddonInfo" { "name" "Counter-Strike: Source Content" "version" "1.0" "up_date" "5th August 2006" "author_name" "Valve" "author_email" "n/a" "author_url" "http://www.counter-strike.net/" "info" "CS:S Content!" // // !!!!! This is important !!!!! // // If you are adding new stuff this should be 0 // If you're overriding stuff that already exists this should be 1 // Loadtimes will increase slightly with every addon you have with // this set to 1 - so only set override if you really need to. "override" "0" // Won't be active unless the following GCFs are available and // are mounted "GCFRequires" { "0" "240" } } There it is a again: A request for a GCF file. Do we have one, when we run Gmod extracted? For sure not! So we also delete the "GCFRequires" part. It should look like this: "AddonInfo" { "name" "Counter-Strike: Source Content" "version" "1.0" "up_date" "5th August 2006" "author_name" "Valve" "author_email" "n/a" "author_url" "http://www.counter-strike.net/" "info" "CS:S Content!" // // !!!!! This is important !!!!! // // If you are adding new stuff this should be 0 // If you're overriding stuff that already exists this should be 1 // Loadtimes will increase slightly with every addon you have with // this set to 1 - so only set override if you really need to. "override" "0" } If we start Gmod again, the css containt should be availible in the spawn menu. And if we also delete the GCFrequires in the info file of day of defeat, its content should assable be accessable in the spawn menu. That's it! This is how the fix works! Have fun! |
|
| Author: | PeJpepiG [ Monday, 30 Jul 2007, 14:18 ] |
| Post subject: | |
If you don't understand what CR@CK-iT wants to tell you how it works you could compare the files in gmodfixedfiles.7z and compare them with the original files. But like you see it's not realy hard. |
|
| Author: | KeReMiD4O [ Tuesday, 31 Jul 2007, 00:19 ] |
| Post subject: | |
Jesus (; GJ thans man (: Sticky this!!! |
|
| Author: | CR@CK-iT [ Friday, 03 Aug 2007, 11:22 ] |
| Post subject: | |
I found one little mistake in your mods search function: With this function Gmod also loads all the sound files mentioned in the lists and it loads for example the explosion sounds of Dod. If you have Dod installed and start to run Gmod and throw a grenade, you won't hear the original half-life 2 granade sound... it's the one from Day of Defeat. It's the same with the rocketlauncher. Oh, and another thing: If you start Gmod for the first time and you spawn a CSS weapon, you cannot hear the shooting sound. In console it sais something like sound is not precached. By rebooting Gmod loads the sound probably. Maby this could be fixed too. Also found another thing: Why does your exe list smod so often in the gameinfo file? Quote: {
Game "|gameinfo_path|." Game "bin" Game "cstrike" Game "dod" Game "garrysmod" Game "gesource" Game "hidden" Game "hl2" Game "hl2ctf" Game "hl2mp" Game "Insurgency" Game "platform" Game "reslists" Game "smod" Game "smod" Game "smod" Game "smod" Game "smod" Game "smod" Game "smod" Game "smod" } |
|
| Author: | PeJpepiG [ Friday, 03 Aug 2007, 13:08 ] |
| Post subject: | |
@CR@CK-iT: 1. Ah, sry it's because of the order gameinfo_paths in GameInfo.txt. 2. Can remember that problem, but I can't rebuild it, need more information. 3. This happens because of my code, it was the easiest way to make it auto-detect mods. It always lists the last mod a few times. But Source-Engine doesn't care if a gameinfo_path is set more than onces, so it's not really a problem. Edit: Posted new version 1.3 in first post, try it out. Edit2: Posted code in first post, have a look at it. |
|
| Author: | Commander Jaco [ Friday, 03 Aug 2007, 19:29 ] |
| Post subject: | |
Ja I seem to have a noob problem can some one help me, in which directory and how shuold i extract the cfg's? please help |
|
| Page 1 of 2 | All times are UTC + 3 hours |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|