Jump to content

Rest on long trips


Recommended Posts

The way long trips (say, 68 hours, multiple days in general) are handled bothers me a little. No a deal breaker, more a paper-cut.

You reach a map transition area, chose a destination, say 48 hours away and when you arrive,

  • the characters start to complain and ask to rest
  • if they used spells before the trip, they are in the same state, same for per-day abilities and per-day items abilities

On the other hand, when some character has some slow (CON) regeneration, they gain some HPs back.

So... They death marched for two days straight with no sleep, no rest?

What I would (probably) expect, not knowing if anything is possible at all:

  • if a trip was more than, say, 16 hours long, the party has rested at least once (spells, abilities, items, fatigue)
  • maybe they needed to use spells along? Well in this case probably "you've been waylaid..." happened

If you want to be more precise, maybe you can divide the duration by 24 and compute a fatigue value from the division rest, but that's probably not the hardest anyway...

 

So.. I'm not sure if anything like that is possible. I'm no modder (and maybe this could be a way "in" :p), so I'm not familiar with the kind of things amodder can do.

I kind of hoped there would be a travel "hook" (onTravel(origin, destination, duration);) ) but there doesn't seem to be anything of the sort.

The nearest I saw was that areas contained a "region" with a script (but then, iesdp doesn't explain what those regions are not when this script is called. On enter maybe? Or on use?) and that the area itself has an area script (same level of precision. On enter?)

I didn't even get to try changing that as I didn't find anything to access the "in-game" time counter, only ways to set timers.

I'm kind of stuck with no idea how to go forward or, more importantly, if there is a way at all.

Link to comment

I never had the sense that map travel was moddable. I always just make trips in short hops, one map to another closer map. (Admittedly, the Beamdog map is sometimes annoyingly inaccurate about what areas are close to each other.)

If some mod adds an area that is more than 24 hours' march from any other ones... why? Bad mod. (Looking at you, Breagar.)

Link to comment

Total travel times may be long, yes - but there isn't a single link on the BGEE world map that's more than 24 hours. Travel times of more than that always come from taking multiple such links in succession. The only events in that game that time warp you more than 24 hours ahead are going from Larswood to the bandit camp with Raiken (29 hours) and taking the boat between Ulgoth's Beard and the Isle of Balduran (that one rests you).

The only map that has individual links of more than 24 hours is the SOD map, for travel with the army to the next section of that campaign. And those travels are scripted to rest you on arrival.

Link to comment
29 minutes ago, jmerry said:

Total travel times may be long, yes - but there isn't a single link on the BGEE world map that's more than 24 hours.

Well it's the total travel time you experiment (and the party suffers), that's the one that counts.

 

EDIT: after looking at https://gibberlings3.github.io/iesdp/file_formats/ie_formats/wmap_v1.htm I think I understand what you mean. The games walk the "links" (probably with a path searching algorithm) and adds durations.

Then (probably) when you trigger the travel if walks the path again and for each one computes an encounter (or not) and adds time.

Edited by mickabouille
Link to comment
2 hours ago, mickabouille said:

Not sure, From Ulgoth's Beard, Nashkel and Durlag are 56 hours and Ormyrr's Peak (spelling?) is 88 hours.

Yeah but you can go to Baldur’s Gate, rest, go to FAI, rest, go to Beregost, rest? go to Nashkel. 

Or even go from Ulgoth’s Beard to Trade Way South, be extrenely tired but rest there, then go to Nashkel. You can get anywhere with less than 24 hours waking time, as long as you make one stop in between. 

Would it be nice if the game was more reasonable and factored in assumed rests? 100%. I’m with you. But how many hours might it take for a modder to come up with a reliable way to implement that, for the purpose of circumventing the need for one short rest stop? If the answer is more than ~2, then IMHO it’s not worth the effort. 

Link to comment

Incidentally, travel time is displayed next to the area's name (from the world map file) when you pull up the map interface to travel. If there's no name, as is the case for a lot of areas in the BG1 campaign, then no travel time is displayed. I've included a component in v3.0 of my tweak mod to alleviate this and add names (either the names the community has settled on over the years or some names I came up with on the spot that don't spoil the area's encounters). Though ... I coded it for BGEE only. EET has map mods you can use that would include the names anyway, but you don't have to use them... looks like something to update in 3.1.

The BG1 campaign map is basically a grid, with area codes numbered from left to right and top to bottom, in the same order that reading English (or any other Latin-alphabet language) uses. With the exception of the ToTSC main areas, which just grabbed the first unused x00 numbers they could get without any real regard for fitting them to the grid. Travel links mainly follow the grid - most of them are just the direct north/east/south/west links there. Visual placement on the actual BGEE world map takes the grid as a suggestion and moves things around for a more "natural" feel.

Link to comment
20 hours ago, mickabouille said:

I was less interested in whether is was a problem, or if it was worth the pain to do something about it, and more about how it would be possible to work around.

Say as an intellectual exercise.

If I was going to tackle it? Hmm. Something like:

If 
  CheckStatLT(Player1,Fatigue,8**)
  Global("[this_area]_rest","GLOBAL",0)
Then
  SetGlobal("[this_area]_rest","GLOBAL",1)
END

If 
  CheckStatGT(Player1,Fatigue,7**)
  Global("[this_area]_rest","GLOBAL",0)
Then
  SetGlobal("[this_area]_rest","GLOBAL",1)
  ApplySpellRES(Player1,[spell to apply magical rest])
  ApplySpellRES(Player2,[spell to apply magical rest])
  ApplySpellRES(Player3,[spell to apply magical rest])
  ApplySpellRES(Player4,[spell to apply magical rest])
  ApplySpellRES(Player5,[spell to apply magical rest])
  ApplySpellRES(Player6,[spell to apply magical rest])
  SetGlobal("[other_area]_rest","GLOBAL",0) ***
END

** or whatever value is 'fatigued'

*** do this for every other exterior area in the whole game

Append that to every exterior area script. The *** part would be the annoying bit. EDIT - though, maybe not that annoying? Can be more than ~20 or so areas. Maybe 50ish in an EET game? Wouldn't be that hard to collect them all and insert them into the scripts...

Heck, that might actually work.

Edited by subtledoctor
Link to comment

Reset it, something like

// pseudo

IF
  GlobalTimerExpired("mytimer", "GLOBAL")
THEN
  RESPONSE #1
    SetGlobalTimer("mytimer", "GLOBAL", 24h)
    // full rest
END
IF 
  True()
THEN
  RESPONSE #1
    SetGlobalTimer("mytimer", "GLOBAL", 24h)
	Continue()
END

 

Edited by Magus
Link to comment
On 2/18/2023 at 9:28 AM, jmerry said:

Total travel times may be long, yes - but there isn't a single link on the BGEE world map that's more than 24 hours.

I imagine something like this would be way more useful for something like IWD. From Kuldahar, the Kuldahar Pass and Vale of Shadows are a reasonable eight hours away, but after that you've got the Temple of the Forgotten God (40 hours), Dragon's Eye (72), Severed Hand or Dorn's Deep (80), or Wyrm's Tooth (a mere 384 hours or 16 in-game days).

(For what it's worth, I'm pretty sure the Kuldahar-Wyrm's Tooth time is supposed to be 96 hours, but even with the correction it's still four days of travel for a single link.)

edit: in case anyone's wondering, no, you don't actually see the 396 travel time in game since the engine routes you through an existing area (either Dorn's Deep or Severed Hand) to get a slightly more reasonable 112 hour travel time.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...