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 ... 15 16 17 18 19 20 21 22 23 ... 339 | Next 10 events »
Question Do YOU want an unofficial patch?
Answers
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 Newest Up Sort by Descending
  12:29:58  13 November 2007
profilee-mailreply Message URLTo the Top
fatrap
The Wrinkled One
(Resident)

 

 
On forum: 08/01/2007
Messages: 2279
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:

dialog_manager.script
task_manager.script
xr_motivator.script

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......
  20:31:15  13 November 2007
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
Messages: 4163
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.
  05:53:44  14 November 2007
profilee-mailreply Message URLTo the Top
Victim
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.

http://files.filefront.com/v10005+Hunger+testrar/;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 thought...my first thoughts are almost always wrong so I'm not sure why I allow myself to have them.
  10:12:00  14 November 2007
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
 

Message edited by:
NatVac
11/14/2007 10:51:48
Messages: 4163
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 = ""
        else
            phr2string = tostring(phr_id_2)
        end
        return dlg:AddPhrase(name, tostring(phrase_id), phr2string, offset)
    end
end


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.
  14:21:32  14 November 2007
profilee-mailreply Message URLTo the Top
Don Reba
Bishop and Councilor of War
(Moderator)

 

 
On forum: 12/04/2002
Messages: 11537
Thanks. Copied your posts into a new thread.
  20:01:40  14 November 2007
profilee-mailreply Message URLTo the Top
Nightwatch
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.
  01:17:44  15 November 2007
profilee-mailreply Message URLTo the Top
fatrap
The Wrinkled One
(Resident)

 

 
On forum: 08/01/2007
Messages: 2279
Nightwatch, this is not very good news! Sounds like a lot of dialogs are going to have to be re-written for existing mods to work with 1.0005...... I sure hope that I am wrong!
  04:14:59  15 November 2007
profilee-mailreply Message URLTo the Top
Victim
Senior Resident
 

 
On forum: 05/21/2005
 

Message edited by:
Victim
11/15/2007 4:26:18
Messages: 1089

---QUOTATION---
But you say that 6 works?
---END QUOTATION---



It's right there for you to try. I installed v1.0005 on top of v1.0004, installed that mod and it worked fine. I'll change the 6 to a 7 in system.ltx and see what happens.

Were you expecting that it'd crash if "6" was used?

@ Fatrap: You and me both bro.

EDIT/ 7 also works.

EDIT2/ Just adding that the UI mod I'm working on for your ZRP also works fine under v1.0005.
  10:46:22  15 November 2007
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
Messages: 4163
Yes, Nightwatch, ZRP 1.04 is not compatible with 1.0005 as is. The task_manager.script and xr_motivator.script files need to be changed in the ZRP, and other mods based on it might need the dialog_manager.script file changed as well.

The good news is that the dialogs and text do not need to be rewritten, fatrap and Victim.

Well, there's a bit more than just the simple conversion, but I pretty much have a 1.0004 task_manager.script running under 1.0005.

You can marshal the data so that the 1.0004 engine is happy, and the 1.0005 engine is happy. But the callbacks also need to be managed, because the newer engine returns strings instead of numbers.

The same solution should work for the dialog_manager.script as well.

I still have to fix one crash in first trying to talk with Lukash (from an autosave, but not from a save after that). I also have a possible gotcha to solve: the versioning is currently based on the API call script_server_object_version(). But modders like to supply custom versions of system.ltx, which has that value (see "[script]") set to 7 in version 1.0005 and 6 in version 1.0004. That means I can't trust it. Anyone know a specific engine version reference?

If you are going to supply different versions of system.ltx for compatibility, then it would be easier to supply different versions of the changed script files as well...

Once I get these resolved, I'll update the ZRP archive (compatibility update only), but it will likely be another day or so.

Let me say that I am not happy about 1.0005 either, fatrap, and for more reasons than just the extra work it makes for modders. My primary complaint is that I'm experiencing very frequent irregular hitches playing the game on my PC (no, it's not the ZRP stuff), and I didn't have that problem with 1.0004.

Can anyone tell me what value the new patch brings to single-player besides the Bes dialog fix? The change notes say very little.

I agree with yellow helicopter: It would have taken them two minutes to fix the task manager reputation bug while they were changing the file anyway.

I'm glad to hear the screens work, Victim. There's a bright spot.
  13:56:09  15 November 2007
profilee-mailreply Message URLTo the Top
fatrap
The Wrinkled One
(Resident)

 

 
On forum: 08/01/2007
 

Message edited by:
fatrap
11/15/2007 14:21:49
Messages: 2279
Hey NatVac..... I converted the mod I am working on to 1.0005 specs and got it to fire up. I do have a "show reward" function built into it and it did not work. There also is a "repair weapons / armor" function in it but I did not have a chance to look at that. I am assuming that the show_reward.script file will have to be re-written or modified because this is the line in the task_manager script file that fires it up and I don't see anything wrong with it:

show_reward.add_reward_display(phr)

This "show reward" function is a nice little addition to any mod. So is the "repair" functions. I will go check on the repair function and see if it is working. (Was too pooped last night to do it)

I did notice that the screens Victim made appeared to be working fine and it appeared that all my custom items and settings were OK. My initial guess is that everything will work as long as they have no dialog connections.


EDIT: Update... the Repair Mod portion of my mod works fine with 1.0005. Interesting side note.... there are usually 5 "cut-out zombies" at the particular place I went to... under the new patch there were only 2. I am putting these zombies in with a se_respawn.script.... guess I better have a peek at it too!
 
Each word should be at least 3 characters long.
Search:    
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-2007 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.