Jump to content

Timing the fair


Recommended Posts

As a bonus part of a big abilities mod for bards (to be my last mod here), I'm making a long-overdue update for the Nashkel fair. There will be new encounters, a few quests and new music - and probably one merchant fewer, the one that impossibly sells duplicates of the unique items in the game. What I would also like to do is limit the fair in time. It should not go on forever, although the autumn in the game does. I'm thinking that a few tendays is a reasonable duration for that carnival, and that it has been going on for some time down in Nashkel when Charname set out from Candlekeep. I can set a timer in the carnival's area script that will apply a custom spell to make everyone at the fair disappear when it runs out. Even easier is putting that spell OnCreation() for the main area and all of the tents, where the creature-removing effect will use the Permanent after duration timing. One second is 15 ticks, I would just need to decide what duration of a day to take: 7200 seconds or 8640. There are two parallel systems of measurements in the games, you know. If a round is 6 seconds long, then, multiplying by turns and hours, 24 hours is 8640 seconds, but actually the engine uses 5-second rounds and 7200-second long intervals (well, 1/3 of those) when the Rest button is used, and that's hard-coded.

Well, I can write in the readme which system I choose there, but either way I would like to let players know for how long the carnival will still be on. For that I can make additions to Nashkel's rumor table so that it displays a text that says that the carnival will go on for five more days, or ten more days, or just one day. The party can drink it up at the inn or the Belching Dragon when they come and find out. My question here is how to do these timers work when used in triggers? Do their values use ticks or seconds? What should I write in "Global("FAIR-LASTS","GLOBAL",...)" before the rumors?

Link to comment

I don't have an area to replace it with. It would be nice, but I'm not up to the task of redrawing the space occupied by the tents in a way that looks natural. All of the NPC will simply be gone (except three cows :) ). And the music will revert to the usual. AND if I can make the spinning wheels stop, by Gond, I shall!

Link to comment

"OnCreation" for those pre-placed NPCs will trigger when the area is first visited. Which is fairly reasonable, but it would probably be better to set a global timer when either the main Nashkel area or the carnival is visited, and use that for all of your NPC vanishing scripts.

As for time ... six seconds is a round, five seconds is a minute. One day is 7200 seconds. You can look up all those time constants in GTIMES.IDS, from ONE_MINUTE to FIFTY_DAYS. And probably use one of them directly.

Another thought - how about having some of those NPCs set up in central Baldur's Gate after the timer is over? That area has the carnival tents, but it's kind of bare except for the diviner.

Link to comment

But a minute is a round in this system, or it's supposed to be. I'm talking about spell durations here. A spell that lasts 1 round has a 6-second duration, 2 rounds - 12 seconds and so on, 1 turn is 60 seconds, all well and good, but when it is supposed to last 1 hour (6 turns), the duration is as often as not 300 seconds instead of 360. And from there you get multiples going up to 7200. It just doesn't make sense. It's two parallel systems, one for timers and the other for spells. Well, Bioware wasn't bothered by this, and nobody notices this except myself, apparently, but if you have to decide by exactly how long to delay some far-away effects, then this becomes a problem. Which is a nice illustration that a problem only exists on a certain level of complexity. If you don't have mechanics with these long delays, you never know or pay mind to this difference.

OnCreation() for the tents would only apply an area-wide spell with the Perm. after duration. If the time is already past, the NPC will vanish immediately. I don't need scripts for them, and there are too many different CRE files there. I can copy some of the visitors and gamesmen over as custom creatures to give them a new look, but I don't want to change the basic gamesman files. The permanent amusements in central BG, other places with roulette - I can't change them all. Remember, I'm just one man. But I can make the Nashkel fair special. However, I will edit the roulette and big-wheel dialogues to allow bigger bets and different bet types, to make gambling worth the effort, and those dialogues will be used by gamesmen throughout, why not? Some time ago, in my third-trimester-aborted update to "Adventurer's Miscellany," where I made all the nameless inns in the city unique, I made it so that in one of them the tables were rigged. It was impossible to win. But a pissed employee downstairs was eager to blow the whistle on this and everything else. :D

Edited by temnix
Link to comment

you could patch the relevant AREs to apply a spell after a timer/event.

spell = cast on everyone except [PC], could probably just use a graphic-less Imprisonment

timer = either X days after first visit, or something event-based like the bandit camp getting revealed

Link to comment

That would still have to be done through a script. Or an area-wide projectile. I have never tried adding projectiles to areas. It might work, but there probably won't be much visible difference between doing it with an OnCreation(). And the idea is exactly not to time the end of the carnival to the group's first visit there but to the beginning of the game.

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...