ProjectsWhat's NewDownloadsCommunitySupportCompany
Forum Index » S.T.A.L.K.E.R.: Shadow of Chernobyl Forum » Mod discussion
ZRP - A joint effort in fixing S.T.A.L.K.E.R.

« Previous 10 events | 1 ... 353 354 355 356 357 358 359 360 361 ... 375 | Next 10 events »
Question Do YOU want an unofficial patch?
Yes, I'm desperate!
Yeh, why not...
I don't care either way.
Could easily do without it...
Decane, stop spamming the forums with your dumb ideas! NO!
Posted by/on
Question/AnswerMake Oldest Up Sort by Ascending
  20:01:40  14 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 08/13/2007
Messages: 952
ZRP does not work with 1.0005

After I installed the 1.0005 patch and tried on clean vanilla Stalker from the start (a new game), I found the patch is very disappointing with increased (yes, increased) stutter alongside some other problems which need to be the subject of another section. Therefore, as I had tried and got impressed by its results, I wanted to install ZRP hoping that ZRP could help. But the the game started CTD at any attemp of loading a save game made on vanilla Stalker patched 1.0005. It barely reached to "Synchronizing" part of loading process.

Then, I gave up trying to load a saved game (1.0005 patched) now ZRP modded game and decided to start a new game.
The game started alright, but when I said -rather clicked- on sedorovic dialog in order to accept the first mission, the game crashed (CTD) just after I heard that the door was unlocked.
Several tries, the same result. This patch is disappointing. It did not bring any major improvements and made at least some of the mods unuseable.
I use Vista ultimate 32 bit.

there is a very small error line on the x-ray log:

[error][ 259] : No more data is available.

So, after I've written this post, I will uninstall the game and reinstall it with 1.0004 patch -what an unnecessary trouble.
Then, I'll put ZRP and try to forget it has ever happened.
  14:21:32  14 November 2007
profilee-mailreply Message URLTo the Top
Don Reba
Bishop and Councilor of War


On forum: 12/04/2002
Messages: 11692
Thanks. Copied your posts into a new thread.
  10:12:00  14 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 06/15/2007

Message edited by:
11/14/2007 10:51:48
Messages: 4288
Nothing in that set of files is incompatible with 1.0005 except possibly the current_server_entity_version value of 6; it's 7 in 1.0005. But you say that 6 works? Interesting. Probably not for multiplayer, though.

The changes to the game engine are unknown right now (at least to me), except those that are shown by what is changed in the scripts that call game engine functions. Other than the multiplayer changes, the only difference is the change in the GPhraseDialog function AddPhrase() API* call.

In version 1.0004, the parameters passed by this call were a string followed by three numbers. In 1.0005, the parameters are three strings followed by a number.

Every place that you use dlg:AddPhrase() to get a CPhraseScript object in your custom code will have to be changed.

In many cases this will be just a simple change. For example, the 1.0004 line:

    dlg:AddPhrase("tm_reward_complete", 0, 1, -10000)

becomes this in 1.0005:

    dlg:AddPhrase("tm_reward_complete", "0", "1", -10000)

You can convert numeric variables via tostring(), as shown when you compare task_manager.script in the two versions.

The problem with this is the need to then support two independent versions of your code, or tell everyone you are abandoning 1.0004 (or not supporting 1.0005, if you choose not to do this).

I propose an alternative: use a fa├žade, a routine that checks the version of the engine and then makes the correct call, in your 1.0004 script:

function dlg_AddPhrase(name, phrase_id, phr_id_2, offset)
    if self.script_version == 6 then
        return dlg:AddPhrase(name, phrase_id, phr_id_2, offset)
    elseif self.script_version >= 7 then
        local phr2string;
        if phr_id_2 == -1 then
            phr2string = ""
            phr2string = tostring(phr_id_2)
        return dlg:AddPhrase(name, tostring(phrase_id), phr2string, offset)

Then change all your dlg:AddPhrase() calls to dlg_AddPhrase() calls. More is needed; you'll need to set the script_version based on the engine if it is not available (or correct).

I plan to release an update to the ZRP in a couple of days that should work with either 1.0004 or 1.0005, if testing goes well.

*Application Programming Interface - a set of function calls in a module (like a DLL) that are made available to other modules. Here, the game engine has a set of published interface calls given in lua_help.script -- which is not a real script, just a help file that is automatically generated. The problem is that the file no longer matches the reality of the new engine code's API.

Edit: Typos. Sigh.
  05:53:44  14 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 05/21/2005
Messages: 1089
^ I wish I could understand a word of that as it's possible that the answer to my trouble lies within.

At any rate, I've managed to get this very simple mod working on v1.0005. Essentially, it shows that the large majority of the dialog files in any mod with custom dialog, that the actual addressing system is unaffected - so if you're like me and you were terrified as the prospect of having to re-number (related to the string, number, string thing?) a heap of dialog entires, it looks as if it won't be needed.

Feel free to try this out: Start a new game, talk to Sidorovich, pay 50RU for a sausage and an encyclopedia entry about hunger.;9038855;/fileinfo.html

I'm yet to add custom script calls from dialog or new .ltx calls from dialog so that may be where things have changed.

Right now, the new patch doesn't seem as if it'll be as problematic as I initially first thoughts are almost always wrong so I'm not sure why I allow myself to have them.
  20:31:15  13 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 06/15/2007
Messages: 4288
It's my quick guess that the Bes dialog fix is not really affected.

The problem there might have been that the number was too large in 1.0004 new engine code. Instead of fixing the engine to work as it did in 1.0003, they changed both the engine code and the script code to use strings instead of numbers.

The primary change is to the signature of dlg:AddPhrase():

What is in 1.0004 lua_help.script (not updated by 1.0005):

class CPhraseDialog {
function AddPhrase(string, number, number, number);

What's used by dialog_manager.script and task_manager.script via dlg:AddPhrase() calls:

function AddPhrase(string, string, string, number);

Essentially, the former arguments passed as numbers are now passed as strings: 0 => "0", 1 => "1", etc. The only exception to this I've seen so far is that -1 is now passed as an empty string: "" in a couple of places.

While 1.0004 saved games can be read by 1.0005, it won't work the other way; 1.0005 introduces a change to the save game format.

It's either have two versions of the corresponding scripts or have a smart script set that works with both.
  12:29:58  13 November 2007
profilee-mailreply Message URLTo the Top
The Wrinkled One


On forum: 08/01/2007
Messages: 2298
Thanks for the research NatVac and Darius6! Some very thorough and informative work there! Looks like the main files I will have to deal with are these:


So hopefully it won't be too bad.... I do wonder if this will mess up our fix for the looping dialog with Bes. I think what I will do is convert the mod I have been working on to 1.0005 and see what happens. I have been putting a lot of the ZRP fixes in it on-the-fly. It is a strange, buggy little mod at best.... so nothing lost if it pukes at 1.0005. But it should give us a little warning about possible conflicts.

I do want to back-up a bit and apologize for sounding so negative in my post earlier. It is a very good thing that the devs are making these patches. That shows they care about their product. And probably the vast majority of the folks that are playing this game are not using mods. So this really helps them out. My main irritation about it is for personal reasons. I really enjoy modding and this gives me some new projects to do.... (kinda like giving a junkie a shot of dope)... my main problem is that I am not fully up to it just yet healthwise. Shoot... it took me over 5 minutes to type this post! Oh well... time to break out the high-octane coffee and my super strong home-made cigarettes! (Only tobacco, folks.... don't get excited!) Although......
  12:13:27  13 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 05/02/2007

Message edited by:
11/13/2007 12:17:55
Messages: 580


task_manager.script - optimized, uses different number/strings conversions*

*No, they didn't fix the reputation bug. Again.


They really do need AT LEAST one person working full time on thorough testing of the game AND COLLECTING INFO from internet sources and REPORTING DIRECTLY to team that develop patches. This bug is known from god forsaken times and requires like 2 minutes to fix it and they still managed to not fix it when they edited the file. Charming.
  07:21:16  13 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 05/21/2005
Messages: 1089
Thanks Darius6 and NatVac. I'd come to post something similar, though likely not as thorough.

Silverpower: As far as I can tell, the changes that will require some adjusting on our end all relate to dialogs (dialog_manager.script). Obviously, this is a fairly huge deal as there are a couple thousand lines of new dialog entries in Extreme and replacing the new file with the dialog_manager.script from v1.0004 causes a CTD with a reference to game.dll.

Because of this, I'm far from happy right now. The script changes are alien to me but they clearly compliment game.dll and therefore, must be present - so (again) Extreme is temporarily screwed. I'll see what can be done, though I've just seriously lost my newfound motivation.
  06:07:12  13 November 2007
profilee-mailreply Message URLTo the Top
Senior Resident

On forum: 06/15/2007

Message edited by:
11/13/2007 6:17:40
Messages: 4288
Files Changed from 1.0004 to 1.0005

This is for the US version:

The large file size is due to the inclusion of the 1.0004 gamedata.dbb (unchanged) and mods\mp_military_2.xdb0.

The bin directory is essentially replaced, including the OpenAL stuff.

The only new file in the STALKER installation directory is gamedata.dbc, dated 2007/10/24. The all.spawn is not changed, nor is game.graph.

Changed files:

wrap_oal.dll - old, but will replace any update
OpenAL32.dll - new date, will replace any update


system.ltx - current_server_entity_version is now 7 instead of 6

gamedata.dbc\config\ui\ - all multiplayer fixes

dialog_manager.script - optimized, uses different number/strings conversions
task_manager.script - optimized, uses different number/strings conversions*
xr_motivator.script - minor version change support for the dialog manager

*No, they didn't fix the reputation bug. Again.


Edit: Some clarification. Sorry for any duplication of Darius6's efforts. I started before there were any posts after Don Reba's, but real life has a way of interrupting...
  05:44:43  13 November 2007
profilee-mailreply Message URLTo the Top
short-haired anarchist hippy scum


On forum: 08/26/2007
Messages: 790
Is there a new game.graph or all.spawn, though? That's the key to finding out what new stuff is going to bite us in the ass or not.
Each word should be at least 3 characters long.
Search conditions:    - spaces as AND    - spaces as OR   
Forum Index » S.T.A.L.K.E.R.: Shadow of Chernobyl Forum » Mod discussion

All short dates are in Month-Day-Year format.


Copyright © 1995-2021 GSC Game World. All rights reserved.
This site is best viewed in Internet Explorer 4.xx and up and Javascript enabled. Webmaster.
Opera Software products are not supported.
If any problem concerning the site functioning under Opera Software appears apply
to Opera Software technical support service.