Ah, grasshoppah, one does not need info_portions. One needs understanding. To acquire understanding, one needs study and contemplation of same. To study, one needs patience.
Unfortunately, patience is not granted to all who matriculate at the school of hard knocks.Larry Wall has a saying about programmers: "Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris." While this works most of the time, impatience is not profitable in the long run when dealing with learning and research. (Dealing with incompetence is another matter.)
I don't think I'm capable of telling you how to do it.* I'll hazard guesses (because you didn't post any examples of what the errors were) as to what the possible problems might be.
First: I gave you no "technique". I answered your questions: one about how to give yourself info_portions and one on where to find the info_portions used by the game. I threw in a couple of caveats, and mentioned I'd done this in the ZRP.
You also posted to the GSC forum in the ZRP thread asking the same questions. I suggested reading the ZRP thread
starting with my October 23, 2007 post. Later posts mentioned the problems and solutions to the info_portion dilemma; cf. my post on November 3, 2007.
To
requote myself (and echo others):
"You really should get the ZRP and study it." The original quote was in reply to you,
Jamie1992 -- and the point of the associated (asterisked) joke about the daughter in college repeatedly requesting parental money may have gone over your head. The Zone Reclamation Project, version 1.05 Test R6 or later, has the most complete set of info_portions, with the engine to provide them in a game-compatible fashion.
But you want a "hack". I don't think a hack will suffice here. Maybe an alternate approach is better; see
"Let's elevate the question" below. Meanwhile, here are some considerations:
Problem #1: You can't give yourself the info_portions all at once in db.script's add_actor() or via dialog, as the game needs to digest and process the news of one info_portion before it can deal with subsequent one that is related. Case in point: The two info_portions given at the door to X18 in Dark Valley. Study _dev.script in the ZRP to see how this is done with a queued table that is processed as needed via the nv_need_update flag in bind_stalker.script's actor_binder:update() function.
Problem #2: As I mentioned in my first comment to you, some info_portions are "ungiven" after being given. But you can't "unget" in the same breath you used to "get". In the early version of the TZIO function of the ZRP, a crash resulted from a lack of Barkeep's dialog paths because the game engine didn't properly handle the needed removal of an info_portion -- it did nothing and the info_portion stuck. Again, see _dev.script.
Problem #3: The task_nn.script files are a starting point. Many info_portions are not actually used by the game, and some used ones are not in the files -- you find them out when some tasks don't complete the way you expect. You have to track down the associated info_portions in the dialog and gameplay XML files. Oh, wait -- the ZRP already has these.
And it helps you avoid Problem #3a: Some info_portions are for alternate paths or failures, like bar_rescue_research_corruped, bar_rescue_research_fail -- and yes, Nightwatch, you can get bar_rescue_research_done (good; it means you succeeded) and bar_rescue_research_fail (it can mean failure, or simply that you returned to the Bar after rescuing Kruglov before going to Yantar) in the same vanilla game.
Problem #4: There are some all.spawn and LTX file items that are dependent on these info_portions in ways you might not expect. A minor example: As you move along the road to the Scorcher in Red Forest, you pass Duty and Freedom's OK Corral gunfight at the south end of the road to Pripyat. Then you trigger the testosterone-laden dialog between their leaders as you move farther up the road toward the Scorcher. Why? Because you have the info_portion that says the Scorcher is off, in free play.
Feature-not-bug #5: The Law of Unintended Consequences: The free-play you can get with this will result in scripted behavior differences. For example, the robber loners that plague Yurik in vanilla will usually side with him guarding the Garbage hangar if you get the associated info_portions. The Freedom traitor Pavlik will be neutral initially, but he will suddenly turn on you.
¯¯¯¯¯¯¯¯¯¯
Let's elevate the question: Why do you need to have all the info_portions? If you are going to start a new game with free play enabled, why not just skip the storyline to start with and see what happens? The ZRP is meant to provide a means to insert yourself into the game at any point in the story -- and that just happens to include the end (e.g., free play) -- but you sounded like you just wanted to remove the story from the playing field.
In that case, this is what I'd look at: First, don't "start the action"; try not giving yourself
storyline_actor_start in
bind_stalker.script. Then remove all the conditionals from tasks, and the checks in space_restrictors and other places in the
all.spawn and
LTX files.
I wonder if that's what
XiaNi did... Anyway, whichever way you go, you will need a lot of patience. I recall that you wanted to "roll your own" instead of using
XiaNi's approach. In that case you need to stop hacking and start learning.
¯¯¯¯¯¯¯¯¯¯
EggChen,
Nightwatch: I didn't send any script; I just referenced the
task_nn.script files that accomplish the same task -- and I recommended studying the ZRP, the same way you guys did. As you can see, it's not the same problem as the variable storage issue
Russao encountered.
__________
*I've read that book; it's called "Nancy Drew and the Case of the Nagging Nymlit". Unfortunately I read it
after I became "a quivering, burbling mass of weepy protoplasm".
