|ZRP - A joint effort in fixing S.T.A.L.K.E.R.
« Previous 10 events | 1 ... 10 11 12 13 14 15 16 17 18 ... 368 | Next 10 events »
||Do YOU want an unofficial patch?|
| 10:16:48 26 September 2018
On forum: 03/21/2010
I also included what I think you meant by the font change; if it is still not what you mean, please send me the file fixed the way you want.
Nah, that's exactly how I implemented it. Compared it to my own file and they were exact matches.
As for the tips_bun_komand sr_tip to show a PDA message in bun_deactivate_radar.ltx, we need to discuss this, as that text corresponds to the same message the military uses in X18, but the actual spoken message in X19 starts with "Irregular situation..." and ends with "... Eliminate the trespassers. Suppress the intrusion." Yes, it mentions "first floor, second floor, main hall", but we might need two messages, or at least an update to the text on the X19 message. Meanwhile, the setup works okay as an intercepted message each time without a PDA update, at least for now.
I actually added a new string to handle both messages separately.
The new message (for the Dark Valley raid) I load this way:
function end_x18_dream(actor, npc)
news_manager.send_tip(db.actor, "tips_patrol_prikaz", nil, "military", nil)
I use this method because there was no script I could hook the new PDA message to.
Placed this new string in string_table_tips_darkvalley.xml
<text>Teams one and two - check the first floor, team three - the main hall, teams four and five - second floor.</text>
The tips_bun_komand ("Irregular situation..." I can call directly via bun_deactivate_radar.ltx
snd = characters_voice\scenario\sarcofag\monolith_call_1
;stereo = true
on_signal = sound_end| sr_sound_act@monolith_orders %=enable_ui%
snd = characters_voice\scenario\bun\patrol_prikaz
delay = 3000
on_signal = sound_end | nil
on_timer = 3000 | sr_tip1
name = tips_bun_komand
sender = monolith
type = tips
single = true
on_signal = tip_sended | nil
This is the reworked text in string_table_tips_radar.xml
<text>Irregular situation, secure immediately. First floor, second floor, main hall. Eliminate the trespassers, suppress the intrusion.</text>
My S.T.A.L.K.E.R files:
| 06:23:48 26 September 2018
On forum: 06/15/2007
Message edited by:
Note to seckino: Try the ZRP 1.09 XR3 version for a relatively-easy way to add the cut mutants to your game. Read the MonoMartyr.cfg's Config Notes by clicking the button in the Modifier while the MonoMartyr.cfg entry is selected. Enable the MonoMartyr spawning on the first entry's page, then deselect the MonoMartyrs on the Spawn Types 1 page and click Apply. Then enable the one(s) you want to see in a game. Click Apply after finishing your changes on each page. I've weakened the mutants a lot, so some of the tooltip comments for the choices are not as applicable.|
MrSeyker, I used your esc_flash_task suggestion to fix easy peasy's missing initial quest completion credit. This has more benefit than just avoiding a crash with existing games, as it works to give the player the credit even with localizations that don't support it -- the quest statistics will show esc_flash_task without any crash. When localization is added, the task will automatically show the correct text in existing games.
That applies to other PDA text fixes as well. Tolik's PDA is now Nimble's flash, etc. There are probably a few tasks that are not currently added to the quest completion statistics, like "Get to the railroad embankment" (which is not that critical anyway).
I also included what I think you meant by the font change; if it is still not what you mean, please send me the file fixed the way you want. As for the tips_bun_komand sr_tip to show a PDA message in bun_deactivate_radar.ltx, we need to discuss this, as that text corresponds to the same message the military uses in X18, but the actual spoken message in X19 starts with "Irregular situation..." and ends with "... Eliminate the trespassers. Suppress the intrusion." Yes, it mentions "first floor, second floor, main hall", but we might need two messages, or at least an update to the text on the X19 message. Meanwhile, the setup works okay as an intercepted message each time without a PDA update, at least for now.
Edit: Somehow I didn't get your fix for the sr_tip missing icons per zZz1 into the release. I'll look at rectifying the situation soon.
As mentioned, exostalker, the code changes to use less memory and run faster will have a big impact on mods that are not made with ZRP 1.09 specifically in mind. One of the biggest changes that impacts mods is the reduction in parameter passing in commonly-used function calls. Lesser impacts include the elimination of some functions and the optimization of others, both of which won't support complex mods unless the ZRP is used as a base.
The ZRP 1.09 release has some compatibility. I kept the call to update the weather (useless in ZRP; the engine handles it), which should permit weather mods to function properly without additional effort beyond installing them, and of course graphics mods should work as before. I plan to resume fixing the rest of the AI addon mini-mods shortly, and look at some popular mods with an eye to getting them to work with the updated ZRP.
>> (1) How did you ascertain that db.actor:id() is always 0?
Decane, I didn't "make certain" (the archaic definition of ascertain), although I'm considering running Ollydbg to verify/find/fix a few things like this when I get the time. I have played this game enough to ascertain by experience and examination (the modern definition) that the id for actor is always zero. Should it ever prove otherwise, the game would break in obvious ways. The fact that the actor's id is 0 even after other objects are created by the game first is a strong indicator that the id is "hard-wired".
(2) How did you work out the game's script load sequence? E.g. in xr_logic.script, you have a file-scope local reference to utils.w_CTime defined. I think that's safe only if utils.script is loaded before xr_logic.script. Can we be sure that's always going to be the case?
It's in the nature of Lua. I'd inserted debug statements in the files to see which scripts had loaded first.* While working on the ShoC_Treatment effort, I discovered that the very act of checking for the existence of a script object in memory (to see if a script had been loaded) would automatically load and parse that script to provide the object for my test, showing its existence in memory to be true every time (if the script was valid).
During the development of ZRP 1.09 XR3 the loading and initializing of scripts became fast enough that loading the autosave for the Agroprom Underground revealed a new problem: the death_manager's create_release_item() function was being invoked for the permabody below the entrance near Mole, before the bind_stalker.script had a chance to run the actor_binder:net_spawn() function which in turn initialized the tables that create_release_item() needed.
In XR3 the death_manager now self-initializes. When a script's function or variable is accessed from another script or engine function, the script is loaded, parsed, and initialized (including running file-scope code and variable assignments). It doesn't matter if that access is due to xr_motivator processing a permabody or the actor object being initialized, the first access creates the script object and the script's variable is then fetched or the function is executed.
One has to be careful to avoid conflicts. If script A uses script B at file-scope, a file-scope element of B cannot access A directly or indirectly (e.g., using C which uses A). Any use by A of B requires B to be completely valid to satisfy A's requirement, so B cannot access the incomplete A object at B's file scope. (Yet again, this is quite possibly only important to me. Eh.)
tl;dr: The very act of accessing a valid script will result in a valid script object, so no sweat here.
* That's how I found out that smart_terrains and associated gulags are initialized twice on each level change and on each reload of a save. See my last post (the one for the release of ZRP 1.07 R4) on page 284 of this thread:
| 06:18:51 26 September 2018
On forum: 06/15/2007
The links to the current Zone Reclamation Project (ZRP) download site are in my first post on the previous page (as of this post).|
Please note the information there about an issue some are experiencing when downloading from the site.
Some notes on the new release of ZRP, version 1.09 XR3:
I finished a game with the second half of the game using 50 objects_per_update in alife.ltx (vanilla uses 10). No discernible differences, even in the Bar level, other than AI seems smarter and NPCs would notice me much more often from afar.
The event loop is now really fast. I'll say again: the game is no longer CPU-bound. I'm often seeing a pseudo-frames-per-second value of 1000 (1 millisecond between invocations of the bind_stalker:update() function). You can test this yourself with debug enabled and "Show Update Ticks" enabled (Modifier > _ZRP.cfg > Debug Options): In-game, press Esc followed by D then D again (Esc D D) to enable (and disable) the HUD display of debug info.
Your graphics card will be rendering a complex scene most of the time. But if you look at the ground (thus reducing the impact of the GPU), you might see a very high framerate when only a simple texture is rendered, showing that the CPU is updating the game state very quickly. Note that despite the visual culling of hidden textures, the game still renders them, so looking toward the Bar from the Bar's level changers will have a much lower framerate than looking away from the Bar.
I increased the NPC hit_probability_novice (which affects all difficulty levels as we now know) from 0.20 to 0.25, and played with a hit_probability_max_dist of 50. Wow, the game was a lot harder to play! But reloading the last save only took a couple seconds (it helps to have an SSD), so the game was actually much more enjoyable.
There is a fast initial load, but subsequent loads are much quicker. There is a bit of hitching initially, and each time the game loads a model for the first time in a game since it was started (e.g., coming within switch distance of the military for the first time) -- and then the game is very smooth even if you have to reload. And reloads might take 0 msec during the synchronizing phase; see the console log. Once the game's resources are cached, the response delays are no longer distracting.
I might mention that to achieve the minimum memory load and fastest speed while playing, some additional tweaking might help:
I strongly suggest installing a version-compatible actor.ltx and system.ltx of your choice (Modifier > Actor.cfg > *Install Actor.ltx*). The ZRP vanilla version does not change the parameters for the actor, but all the ZRP versions of system.ltx will no longer load unused resources for multiplayer and test levels and the like. You likely want the 1.0005/1.0006 files for Steam and GOG versions of the game.
Use "-noprefetch" as a command line parameter for starting the game. This will avoid a long start-up delay that is mostly useless anyway, since the game will both cache unused resources, and then throw out usable resources anyway to load others that weren't on the prefetch list.
Run the game with a 64-bit operating system, one in which you are not running unnecessary tasks in the background. Run with enough RAM that your swapfile is unused while playing the game.
Gameplay lag reduction: Empty stashes as soon as possible to eliminate that lag that occurs when you come within switch_distance of the stash. You can store unneeded stash contents in permabodies (these don't disappear from the game). Bodies don't seem to force the game engine to process their inventory in a lag-inducing way, unlike lockers, chests, toolboxes and other non-body storage locations.
Speaking of bodies: Revisiting Pripyat a few game hours after you enter free play with XR3 is amazing: Loners rushing north like the Freedomers and the Dutyers, snorks inside Monolith HQ, and pseudodogs on a tear south of the stadium main entrance. And when the battlefield is strewn with carcasses, your framerate will be just as high as when it was empty.
| 05:11:21 23 September 2018
On forum: 06/15/2007
ZRP 1.09 XR3 is available on the website's downloads page:|
It's still experimental, as noted by the XR in the version.
What's new in this version:
Changes in 1.09 XR3 over ZRP 1.09 XR2
ZRP 1.09 XR3 changes (NatVac and others as noted):
Bug Fixes and Tweaks:
* Removed the gaps of silence when looped sounds repeat. (uds0)
* Fixed some helicopter state persistence across saves. (castl)
* Made r_str() default a string instead of number. (castl)
* Fixed xr_zones.script's save()/load() functions in case mods
ever need them for anything (vanilla doesn't use them). (castl)
* Removed duplicate chimera critical_wound_* vars. (Storm Shadow)
* Changed Tolik's PDA/diary entry to reference Nimble, the
actual source of the flash drive information. (easy peasy)
* Added task entry to permit the first task from Sidorovich to
be logged as completed in the PDA quest statistics.
(MrSeyker per easy peasy) [\config\misc\task_manager.ltx,
* Tweaked doctor_meet entry; was being used by Doctor task and
Guide task. Repurposed unused doctor_meet_2 for Guide task.
* Corrected English a tiny bit more.
* Commented out custom_data assignment for stalkers; it created
a useless ini based on an empty stalker_custom_data.ltx file.
* Reduced memory usage and improved processing speed for
more scripts. Commented out more unused vars/functions.
* Deployed test hack to keep stalkers out of certain anomaly
fields when SANB is enabled. The hack works by increasing the
effective radius of a central anomaly to include other
anomalies as a workaround for the inability of SANB to process
more than one anomaly at a time. Only a couple of fields are
on the exclusion list currently; if this works more will be
added later. [se_zones.script]
* Reverted SANB's get_nearest_anomaly() function to consider all
anomalies on a level, not just those within 20 meters.
* Modified XML character supplies' ammo assignments so that all
NPCs get a single bullet instead of a full box. This might be
a cause of an occasional loss of the original ammo, which in
turn contributed to a rare crash. The majority of instances
had boxes for their pistols. [character_desc_agroprom.xml,
* Reworked xr_kamp.script action_go_position to use msec ticks
instead of software timer. When a stalled NPC is detected and
resetJob() invoked, the remainder of the go_pos:execute() is
canceled to fix a race condition that arose on faster PCs that
left NPCs stalled (again). [xr_kamp.script]
* Updated Fox's logic to work with revised xr_kamp.script.
* Re-enabled harmonica support in xr_kamp.script. Needs external
support like MrSeyker's Harmonica Mod. [xr_kamp.script]
* Integrated xStream's camp cleanup, removed optional versions.
[xr_kamp.script; obsolete optional\*\xr_kamp.script removed]
* Replaced neutral outfit/icon with monolith ones for one of the
MonoMartyrs per MrSeyker.
* Adapted the custom spawning code to permit the random spawns
of mutants/npcs. [_custom_ext_zrp_mm.script]
* Reduced damage delivered by some cut mutants (please help;
this needs refinement). Fixed fracture's damage model which
made them invulnerable to bullets; camel-case name didn't
work. Support for their body parts is currently non-existent.
[in config\creatures\: m_burer.ltx, m_cat.ltx, m_chimera.ltx,
* Implemented a different approach to fixing the missing rain
sound on level changes. [bind_stalker.script]
* Commented out the contents of the weather manager's update()
function, a useless call in vanilla/ZRP. Optimized the weather
manager code. It's okay to replace level_weathers.script with
one in a weather mod. [level_weathers.script]
* Streamlined the event loop. [bind_stalker.script]
* Guaranteed death manager's drop settings are initialized
before create_release_item() needs them. [bind_stalker.script,
* Replaced level abbreviations on secrets with localized level
names. Fixed npc:alive() test in send_tip().
* The (optional, not default) smart_heal() function now checks
your stamina level if your health is 100%, and for stamina
levels 0.5 or lower will consume an energy drink if one is
* If enabled, the antirad pseudo-hotkey will result in the
consumption of an energy drink (if available) when player's
stamina level is low, in addition to any needed antirad
* Removed useless cam_inert assignments from optional headbob
* Added another font option: a smaller vanilla font size.
(MrSeyker) See the Modifier section.
Modifier configuration changes (NatVac):
* Added Fonts entry option to support a vanilla font with a
smaller text size. [modcfg\_ZRP.cfg, modcfg\Vanilla.cfg]
* xStream's camp cleanup support re-implemented.
* Various configurations adapted to more accurately support
actual engine behavior: immunities_sect controlled by engine,
not config setting; the only hit_probability affecting NPCs
is hit_probability_gd_novice in defines.ltx (again, player IS
NOT affected by hit_probability); hit probability drops from
1.0 at point-blank range to hit_probability_gd_novice at
hit_probability_max_dist and remains at that value thereafter.
* Documentation correspondingly changed. [modcfg\*.cfg.txt]
* Added an immersive weather scheme that modifies the weather
on some maps as you accomplish certain tasks in your progress
through the game. [modcfg\Experimental.cfg/.cfg.txt]
* Removed obsolete Weather Sound Fix.
* Changed secret level abbreviations to localized names.
* Supplied additional options to select/deselect the possible
spawning of MonoMartyrs and various mutants that were cut
from the original game. [modcfg\MonoMartyr.cfg/.cfg.txt]
Debug changes (NatVac):
* move_body_to_nearest_lc() now puts bodies at level changer
reject points (where you Esc J fast-travel to). this_guy()
now takes a boolean parameter, alive (nil is the same as
false -- that is, don't care if alive). [optional\z.script]
* Added some smart positioning for debug jumps to populated
stashes and inventory boxes. See Debug changes for XR2
* Esc D R now records the currently-visited position when
returning to the starting point. Use Esc D V to re-visit.
The all.spawn file did not change in this release.
Notes, instructions and changes in ZRP 1.09 XR2 since 1.07 R5RC are given on this thread's page 342:
Please follow new posts in this thread for any notes that might affect/improve your enjoyment of this release.
>> new ZRP versions won't be as easy to merge with other mods?
True, exostalker. I'll be discussing this more in upcoming posts.
| 05:54:53 28 August 2018
On forum: 06/15/2007
I noticed that on 1.09 XR2 some of the options from modifier are gone, especially for AI packs - were they causing more problems than was worth?
No, exostalker, they are incompatible with the ZRP 1.09 optimizations and need to be adapted first, a lower priority for the ZRP bug-fix mod. I also need to look at a crash caused by the Rulix weapon manager; a weapon can be deleted before the inventory_box managing it is finished processing it, so you get an e_parent-related crash.
The Grenadier mod (xStream with ZaGaR tweaks) is in there; I highly recommend it for spicing up gameplay. I'll be including a version of xr_kamp.script that incorporates xStream's camp cleanup code and support for harmonicas. There will be only one xr_kamp.script in the mod for the foreseeable future, with flag switches to enable/disable these features.
MrSeyker, thanks for checking out the weather mods. There will be a bit of work to make the Harmonica mod work with the new xr_kamp.script file, but it should be a simple change. Once the website's woes are resolved, I'm thinking of hosting the mod and other mods to work with the new ZRP.
I meant the task of returning the flash card to Sidorovich, it does not go to the statistics of the completed tasks.
Ah, yes, you're right, easy peasy; once the flash drive (obtained from Nimble at the auto park) is returned to Sidorovich, this completes the task to get information from the scout. But the task is not added to the list of quests completed on the PDA's Statistics page. This should be easy to fix.
>> And here there is no correction of phantom garages in Pripyat?
There is a correction of the phantom garages in Pripyat. The fix is not included in the ZRP yet. The ZRP is small right now, and the Pripyat level file is 4.3 MB. It should be part of the ZRP eventually, along with much more language support.
If you can't wait: The fix involves changing only sixteen bytes in the level file. You can use the SoCPUP utility to create the fix, and it is only one-tenth the size to download. SoCPUP even comes with a _PripyatLevelFix.bat batch file for doing just that. It's available at the ZRP downloads page.
>> Also in the player PDA in the rescue Nimble loads info PDA Tolik.
Very nice find. I don't know why it is a PDA instead of a general note, and it should not be the PDA of a living person as those are not given by the NPCs -- you have to get the PDAs from their bodies. But it does contain the information that Sidorovich needs to be able to send you to Agroprom.
If I can't find or determine an alternative fix here, I'll just change "Tolik" to "Nimble" in the two places it appears, so that it is Nimble's PDA (or PDA info) and Nimble's diary entry.
>> Monoliths near the fires sometimes tell jokes, it`s strange.
Yes, that is not what one would expect from the Monolith followers. I'll look into it.
Thanks for contributing to the improvement of the game!
« Previous 10 events | 1 ... 10 11 12 13 14 15 16 17 18 ... 368 | Next 10 events »
| » » |
All short dates are in Month-Day-Year format.