Hoi daar!
Het probleem gaat om het starten van Call of Duty 2/4 ... Nouja eerder alleen cod4 nu dan... waarom leg ik zo uit. Maar ik wil alvast zeggen dat ik daarom niet zeker weet of het onder dit forum of de games forum moest plaatsen, maar aangezien ik meer een oplossing of omweg probeer te vinden in mijn programma zelf probeer ik het toch liever hier.
Het gaat hier puur om het starten van het spel als een process. Dus ik zal even de code erbij halen om te laten zien wat ik ongeveer van plan ben:
De COD4LOADER is de gegeven path via een form om de map van het spel te vinden voor de .exe.
(dus C:\Call of Duty 4 - Modern Warfare )
Na dit even uitgelegd te hebben zal ik het probleem even voorleggen
(eindelijk)
Het probleem wat ik had met COD2 is dat als mijn applicatie niet in de map van het spel zelf stond moest
ik de hele path opgeven. Dat is op zich geen probleem uiteraard maar COD2 is degene die
begon te weigeren. Ik kreeg een melding dat een bepaalde .cfg file niet gevonden kon worden en zonder
dat draait het spel simpelweg niet.
De oplossing had je vast wel al gezien in de code, ik geef de basepath aan als start argument en dat werkte
toen uitstekend. Howeverrrr.... bij COD4 is de argument ook gewoon bruikbaar, maar helaas werkt het dus niet voor mij. Nouja ik zeg het eigenlijk verkeerd... het werkt wel want hij start het spel op, maar dan beginnen de echte problemen, ik krijg ineens rare errors...
Als ik het spel launch kan ik kiezen bij de popup melding:
WIN_IMPROPER_QUIT_BODY
-->Yes -->
Hij launched gewoon, maar op het moment dat de main menu zou moeten komen blijft het 1 seconde zwart en klapt ie eruit met de error :|| Error: Could not find zone #path#\zone\(null)code_post_gfx_mp.ff
-->No-->
Hij launched gewoon, maar op het moment dat de main menu zou moeten komen blijft het zwart en krijg ik dezelfde error op de achtergrond maar het beeld blijft hangen. Moet COD4 dan handmatig via de task manager afsluiten. En krijg dan dezelfde error te zien :|| Error: Could not find zone #path#\zone\(null)code_post_gfx_mp.ff
-->Cancel-->
Stoppe ermee.. gebeurt niks.
Ik heb het nagekeken en ik weet wat de IMPROPER betekent maar ze worden eigenlijk zonder exception catch gegeven door cod4 zelf. De IMPROPER staat voor hetzelfde bericht dat als je COD4 verkeerd afsluit je kan kiezen voor een safe of normal mode of uiteraard om te cancellen. De code_post_gfx heeft te maken met corrupte of vermiste bestanden in de zone map. Hij vind dus wel de main, hij launched... maar daarna zoekt hij de zone map op en gaat het dus mis.
De fixes die er zijn hebben geen nut en zijn in principe niet van toepassing voor mij, aangezien als ik cod4 zelf start er geen probleem bestaat. Maar zodra het vanuit mijn applicatie gebeurt zoekt (zoals ik zag in de cod2 console) het programma in de map van de applicatie waaruit de desbetreffende process word gestart en kan cod2 de benodigde .cfg files niet vinden. En dit is dus wat er alsnog waarschijnlijk gebeurt met cod4.... de zone map staat waarschijnlijk los van de fs_basepath command.
Nu is dus mijn vraag of hier iets aan te doen is..
Het is logisch dat de of een game het pad aanneemt van waaruit het gestart word, maar is dit te voorkomen door een soort snelkoppeling ipv een directe start aangezien de argument niet werkt?
Of is er misschien een andere workaround voor?
Wellicht een kleine kopie na de launch in de game path die de game launched en zichzelf delete? of zijn er makkelijkere manieren?
Ik hoop dat iemand mij wat verder kan helpen.
Bij voorbaat dank!
Kevin
Het probleem gaat om het starten van Call of Duty 2/4 ... Nouja eerder alleen cod4 nu dan... waarom leg ik zo uit. Maar ik wil alvast zeggen dat ik daarom niet zeker weet of het onder dit forum of de games forum moest plaatsen, maar aangezien ik meer een oplossing of omweg probeer te vinden in mijn programma zelf probeer ik het toch liever hier.
Het gaat hier puur om het starten van het spel als een process. Dus ik zal even de code erbij halen om te laten zien wat ik ongeveer van plan ben:
code:
1
2
3
4
5
6
| fsGame = @"+set fs_basepath " + COD4LOADER; i.StartInfo.FileName = COD4LOADER + @"\iw3mp.exe"; i.StartInfo.Arguments = fsGame; i.Start(); this.Hide(); |
De COD4LOADER is de gegeven path via een form om de map van het spel te vinden voor de .exe.
(dus C:\Call of Duty 4 - Modern Warfare )
Na dit even uitgelegd te hebben zal ik het probleem even voorleggen
Het probleem wat ik had met COD2 is dat als mijn applicatie niet in de map van het spel zelf stond moest
ik de hele path opgeven. Dat is op zich geen probleem uiteraard maar COD2 is degene die
begon te weigeren. Ik kreeg een melding dat een bepaalde .cfg file niet gevonden kon worden en zonder
dat draait het spel simpelweg niet.
De oplossing had je vast wel al gezien in de code, ik geef de basepath aan als start argument en dat werkte
toen uitstekend. Howeverrrr.... bij COD4 is de argument ook gewoon bruikbaar, maar helaas werkt het dus niet voor mij. Nouja ik zeg het eigenlijk verkeerd... het werkt wel want hij start het spel op, maar dan beginnen de echte problemen, ik krijg ineens rare errors...
Als ik het spel launch kan ik kiezen bij de popup melding:
WIN_IMPROPER_QUIT_BODY
-->Yes -->
Hij launched gewoon, maar op het moment dat de main menu zou moeten komen blijft het 1 seconde zwart en klapt ie eruit met de error :|| Error: Could not find zone #path#\zone\(null)code_post_gfx_mp.ff
-->No-->
Hij launched gewoon, maar op het moment dat de main menu zou moeten komen blijft het zwart en krijg ik dezelfde error op de achtergrond maar het beeld blijft hangen. Moet COD4 dan handmatig via de task manager afsluiten. En krijg dan dezelfde error te zien :|| Error: Could not find zone #path#\zone\(null)code_post_gfx_mp.ff
-->Cancel-->
Stoppe ermee.. gebeurt niks.
Ik heb het nagekeken en ik weet wat de IMPROPER betekent maar ze worden eigenlijk zonder exception catch gegeven door cod4 zelf. De IMPROPER staat voor hetzelfde bericht dat als je COD4 verkeerd afsluit je kan kiezen voor een safe of normal mode of uiteraard om te cancellen. De code_post_gfx heeft te maken met corrupte of vermiste bestanden in de zone map. Hij vind dus wel de main, hij launched... maar daarna zoekt hij de zone map op en gaat het dus mis.
De fixes die er zijn hebben geen nut en zijn in principe niet van toepassing voor mij, aangezien als ik cod4 zelf start er geen probleem bestaat. Maar zodra het vanuit mijn applicatie gebeurt zoekt (zoals ik zag in de cod2 console) het programma in de map van de applicatie waaruit de desbetreffende process word gestart en kan cod2 de benodigde .cfg files niet vinden. En dit is dus wat er alsnog waarschijnlijk gebeurt met cod4.... de zone map staat waarschijnlijk los van de fs_basepath command.
Nu is dus mijn vraag of hier iets aan te doen is..
Het is logisch dat de of een game het pad aanneemt van waaruit het gestart word, maar is dit te voorkomen door een soort snelkoppeling ipv een directe start aangezien de argument niet werkt?
Of is er misschien een andere workaround voor?
Wellicht een kleine kopie na de launch in de game path die de game launched en zichzelf delete? of zijn er makkelijkere manieren?
Ik hoop dat iemand mij wat verder kan helpen.
Bij voorbaat dank!
Kevin