Jump to content

Calls that we wish existed


Kelandon

Recommended Posts

Quote:
Originally written by Octavo:
Just think of the greatness of plot possible if it'd run like FF6, or even FF5 (which used the same 4 for most of the game after the initial meeting-period, save at one point trading one character for his daughter).
I agree that this point of view is much better (easier) to tell a story. But that's not the type of game that are occidental (or PC) RPG like BoA, but more japanese (or console) RPG. I see only one example, Warcraft 3 but it isn't a lot RPG.

Anyway, there's a nice article about this problem, Player vs Party (http://www.avernum.com/blades/workshop/articles/8_pvparty.txt).

It's a way to manage that. For now I skip this approach to focus on NPC use that join or follow the party. In fact 3 to join the party would be enough for me if I can also have one (or more) that follow it. Ha well, I could probably do with 2 only and one following the party but I'll have problem to manage/translate some parts.
Link to comment
Share on other sites

Not really a call but :

 

Having dlg files not only for towns but also outdoor. And perhaps even scenario based, well mainly to manage scenario user preferences.

 

I know you can build sort of dialog with calls but dialog template is cool and powerful anyway.

Link to comment
Share on other sites

Quote:
Originally written by Boots:
Crazy. VoDT is probably the more reliable test, but I've made a sample scenario with two towns, and I can't combine wands between them. I can however combine a wand with another that I pick up after leaving and re-entering the same town in which I acquired the first. Meanwhile, the inability to combine across scenarios seems pretty hard and fast. That all seems eccentric enough to need repairing in one direction or another.
When reading the editor doc I felt upon this :

Quote:
When a party leaves a scenario,...In addition, items that have special classes will have those classes be set to 0 .
When items with charges are transferred from another scenario, they will not combine properly with items from the new scenario (so apples from Scenario 1 will not combine with apples from Scenario 2). The exception to this is all of the constant item types listed at the beginning of the chapter. These will always combine properly.
And for these constant item types :
Quote:

Food – Items 4 to 12 and 397 to 400.
Javelins, Arrows, Bolts - Items 84 to 88 and 99 to 108.
Alchemy Ingredients, Basic Potions, Scrolls - Items 214 to 263.
All the Tools - Items 171 to 178.
Crystals and Dust - Items 326 to 329 and 435 to 439.
So well, a documented bug is just a feature and there's perhaps no bug even if it's a bit complicate.
Link to comment
Share on other sites

I'll try to explain it, Vent. For various reasons, designers often need to "loop" through the party, doing something to/for each member of the group. The only way this is possible is because we're guaranteed, by Jeff's implementation, that the party will always be characters 0 through 5. Character 0 is the first party member, 1 is the second, 2 is the third, 3 is the fourth.

 

If you add an NPC to the party, even though that NPC already has his own char number, you can ALSO refer to that char as Character 4. If you add a second, it's Character 5.

 

Now, say I've designed a town and the very first NPC I placed in it was a giant spider. The moment I place it, the editor assigns it character number 6. I can refer to that spider in all sorts of calls simply by specifying character 6.

 

Now, let's say Jeff decides you're right and he needs to add capability for another NPC to join the party. The party is currently referred to by numbers 0 through 5, so this new one will obviously need to be referred to by 6 (to keep from breaking the code people are alredy using to loop through all the party members in a while loop). But then, my giant spider in my first town would be treated as a party member by those loops, because he's character 6.

 

There are ways to get around it, of course; but none that wouldn't require everyone to go back and change code to keep it working the way it's supposed to.

Link to comment
Share on other sites

Ok you was refering to NPC number NOT in party I hadn't saw this point sorry.

 

That compatibility can't be keep, I disagree (ok I could be wrong, only the author can really say).

 

Ok, changing this value through a call could break all scripts in the scenario. Plus this has an influence on the editor.

 

I see a solution anyway :

1 - There is a default value of 2 for the max number of chars. This will preserve compatibility for older scenario and scenario that just keep the default.

 

2 - When you create a new scenario you have a new option to change the max number of npc that could join the party. The editor could know this value and compute npc numbers by using this value. The engine could also know this value and will use the default if none is set.

 

3 - There will be scenario file with this value set and other without this value set (at least older scenario. The editor itself could fix that by detecting this in a scenario it open. This will allow to fix users scenario and it could be used to fix bundled scenario. Another possibility is that the engine will be able to load a scenario file with this value set and scenario file without this value set then default value 2 is used.

 

4 - Finally when you cast, change the logging in order to remember to the player each couple key number/NPC name in the party.

 

Ok this means more change than I first thought. But everything seems doable. Yes, seems. smile

 

There's the creation dialog, check through engine and editor if this constant is hard coded (6 as first free npc number). Then change to use a value set in a variable. Then manage loading a scenario with this additional setting and keep ability to load scenario without it. Finally changing a logging.

 

Really too bad. I strongly think that it's a real potential to be able to add more than 2 npc in the party. For what I had in mind, perhaps "follow" will allow me do it anyway.

Link to comment
Share on other sites

I s'pose Jeff could just make the additional joining NPCs numbered above the numbers that are available now (so the third one would be 120), but there's no way in hell he will do this. I also think there are other things that are more desirable (although I admit that I kind of wish that we had the ability to add genuine PCs as was done in A1-3).

Link to comment
Share on other sites

I doubt there's the slightest chance of actualy getting this one, but you never know unless you ask. smile

 

I'd like a pair of calls to add/remove our own custom icon as a character status (like drunk, invulnerable, etc., now). I've got a custom status that's vitally important to my scenario, a custom item that grants it, and have gone to tons of trouble to script its effect. And I don't even have a convenient way to let the player know when it's in effect and when it wears off.

 

Right now, I'm using a sledgehammer to get the job done (a pair of message_dialog()s for start and end); but a simple status icon would be so much nicer. smile

Link to comment
Share on other sites

Can you call a scenario state that places little animations on the character every turn that the custom status is in effect? Meaning, can you access town animations through a scenario state? If you set it to not have any sound play, it might work. If the status needs to be in effect for a long period of time, this might not be such a good idea.

Link to comment
Share on other sites

As long as we're dreaming here... smile

 

I'd like to have a call that re-inits all floors/terrains to their default state (as set in the editor). I just made a town with a dam, and it's MUCH different depending on whether the floodgates are opened or closed (about 3 dozen squares change--coulda been much worse, I guess, if I hadn't planned so carefully wink ).

 

Going through all those squares and saying what they change to when the puzzle is solved was a pain, but understandably necessary. Going BACK through and saying, essentially, "now put it all back like it was when the party entered", in case they decide to undo what they did, seemed like more work than was really required. smile

Link to comment
Share on other sites

Quote:
Originally written by spyderbytes:
As long as we're dreaming here... smile

I'd like to have a call that re-inits all floors/terrains to their default state (as set in the editor). I just made a town with a dam, and it's MUCH different depending on whether the floodgates are opened or closed (about 3 dozen squares change--coulda been much worse, I guess, if I hadn't planned so carefully wink ).

Going through all those squares and saying what they change to when the puzzle is solved was a pain, but understandably necessary. Going BACK through and saying, essentially, "now put it all back like it was when the party entered", in case they decide to undo what they did, seemed like more work than was really required. smile
You could trying making some custom terrains/floors which you can just flip en masse when you need to. i dunno, would that work?
Link to comment
Share on other sites

I thought about that, but decided it would actually be more work to track who was dead/alive and what the party had already done in town (so the towns matched except one flooded and one dry) than swapping out some 3 dozen floors. smile

 

EDIT: Yes, Daravon, that would work. In this case, however, I would have ended up with almost as many custom floors (considering the edges of the water change significantly) as just a string of set_floor() calls. smile

Link to comment
Share on other sites

Quote:
Originally posted by spyderbytes:
more work to track who was dead/alive
That wouldn't be a problem: just give each NPC with the basicnpc script the same flags in both the towns. I just realized, however, that if the player drops or gets any items in the original town, that wouldn't be reflected in the changed one. Oh well.
Link to comment
Share on other sites

This isn't a call, but this seemed the best place to add it. smile When editing a NPC in the Editor, I'd like the dialog to have "next/previous" buttons, to cycle through all the placed characters in town.

 

I made a change that required a new memory cell to be correctly set for all the inhabitants of a particular (populous) town. Scrolling through the town and clicking each inhabitant, then "edit this character" is a hassle, when all of them have to be changed.

Link to comment
Share on other sites

Nutter thing that isn't a call, but something I really, really, really wish Jeff would change. smile

 

Please, please, PLEASE, make it so that special encounters load every time the party enters a town, instead of only the very first time. It's getting to be a pain to go back to a really old save just because there's a spot that needs a special encounter I didn't think of when I was first designing the town.

 

I'd like to extend that to placing items, but I have an idea there's a more valid reason for only doing that the very first time the town is entered. So I'll compromise and not bellyache too much about the items if I can have special encounters that load each time. laugh

 

EDIT: DOH! I don't know why I didn't think of this before, but one can save SOME trouble, at least, by putting a "dummy" terrain script somewhere outside the town that, when stepped into, calls set_town_status(some_town, 0). That forces the town to be completely reset (including placed items and special encounter locations) the next time you enter it.

 

That's not as good as just having that stuff re-init on every town entry, but at least I can use a save file a BIT more recent since I thought of that. smile

Link to comment
Share on other sites

I don't think the item thing could be done without significant reworking of the engine. After all, how is it supposed to tell the difference between an item that's not on the floor in the savefile because it's already been picked up by the party and one that's not on the floor in the savefile because it didn't exist in the version of the scenario in which the file was saved?

Link to comment
Share on other sites

Picky, picky, Thuryl! laugh Good point I hadn't really thought of (I'm still thinking in designer mode, not player mode smile ). I was thinking more of the decision on what items to actually place and what are unnecessary junk (which can change significantly if you add a slew of new items, I suspect).

 

But the location of a special encounter rectangle (and which scenario state it calls) shouldn't cause any such problems if they're re-inited every time the town is entered. Or not in any way I can see offhand, at least.

Link to comment
Share on other sites

Well, unless the party is saved inside the boundaries of the new rectangle but outside the old one, in which case they'd have to leave and re-enter the rectangle to activate it, or vice versa, in which case stepping into the new rectangle could activate it a second time when it really shouldn't. Doesn't seem a serious enough problem to prevent it from being done at all, though -- just something to keep in mind when testing.

Link to comment
Share on other sites

Well, there's also adding and removing special encounter rectangles to be accounted for; but again, that's nothing that would ever affect the player. This would be completely for the designer's convenience.

 

EDIT: See this post for more on this subject. After that discovery, I felt the topic deserved its own thread.

Link to comment
Share on other sites

This is another thing I'll probably only see in my dreams, but it would be really nice to have a predefined END_TALK state for NPCs, called whenever dialog is exited (whether by "The conversation ends", "That's all for now" or ESC/the Done button).

 

I've run into several situations where it would be beneficial to have an NPC react in some way to the player ending the conversation with them.

 

EDIT: Just figured out a way to "kinda sorta" fake this reliably. Just have the character set a flag when the conversation starts (in a code block attached to the INTRO), then have the START_STATE of the character's script check for that flag being set. The character won't do anything from it's START_STATE until the conversation is over.

 

A predefined state to catch it would still be much nicer, if for no other reason that it would (presumably) catch the conversation end in the current turn, instead of waiting for the next one. It would also be much cleaner...

Link to comment
Share on other sites

Wait-

Didn't someone (I forgot who, sorry for not giving credit where it is due) figure out how to add sounds? It isn't any harder than adding custom graphics, from what I remember. The only problem is that Windows users are out of luck, but for the Mac half (and of course it is more than half at the moment), it's doable.

 

Edit: Kennedy discovered the method .

Link to comment
Share on other sites

My bad, I thought he did it by hacking the data files. Then I wish that this was supported, which I know it is not.

 

And since PC users constitute roughly 50-60% of the Spiderweb-user population, a scenario feature that doesn't work for PCs is useless. I suppose I could just *do* it and figure out how to get it to work for PCs later, but the concept frightens me.

 

I stand by my request, inasmuch as this method doesn't necessarily work.

Link to comment
Share on other sites

Quote:
a scenario feature that doesn't work for PCs is useless.
But it does work. I did it. If you use the above link and read on, you'll see how. I thought at first that a program might be useful that added custom sound files, when a scenario is started, and deleted them, when it is finished. But that's not really necessary. A folder with custom sounds that come with the scenario will work just fine.
Link to comment
Share on other sites

I'm reading through this (for the third time now) and not seeing any resolution to the original issues. Adding custom sounds for a Mac: just add them to the .cmg file that has the custom graphics in it. Sure. That's easy. Adding custom sounds for a PC:

 

...

 

Oh, okay. I think I get it now. No one ever spelled it out, though. Does it work like this: depending on whether Jeff sticks with the Geneforge system of storing sounds or the Avernum Trilogy system for Win-BoA, one can add sounds by sticking in either extra .wav files into a folder called "100" or extra folders with the .wav files inside into that folder?

 

It seems like this would almost be modifying core data files (because these are going right next to the regular data files, not beside your scenario data), and for every scenario with different custom sounds, you would have to take them out and put in the new ones.

 

Which means that we can probably do this in two or three years, when Spiderweb doesn't care about BoA anymore, but we can't do it now.

 

EDIT: On top of which, I'm not entirely sure how I'd do this. SW ports the graphics over to PC format for us Mac users, and vice-versa. I don't have a PC, nor do I have any way of making .wav files that I know of. I could do the Mac equivalent with ResEdit really easily.

 

EDIT 2: After some thought, I decided I'd just e-mail Jeff and see if he would ban a scenario with custom sounds. If not, then I'll just do it. If so... we'll see.

Link to comment
Share on other sites

You won't have to take the original ones out, just add your own new ones to the already existing number of files. Jeff Vogel's own files will not have to be touched or altered in any way.

 

Creating .wav-files: a sound you record is a .wav-file usually (on PCs, that is). Or from MP3s, using an encode-decode program.

Link to comment
Share on other sites

Quote:
You won't have to take the original ones out, just add your own new ones to the already existing number of files.
Now it's my turn: read what I wrote, ef. Every time you play a scenario with custom sounds, you will have to take out the old custom sounds. (Because the new ones and the old ones would be numbered the same...)

Basically, what concerns me is the concept of having to do more than simply move a folder into the Blades of Avernum Scenarios folder. But I'm just going to see what Jeff says.

EDIT: Gah, or are you saying that one could just put the .wav files into the scenario's folder and they would work? Please, just write out your method of adding custom sounds to a BoA scenario for a PC, and you'll save both of us a lot of confusion.

From your statement "I did it," I gather that you have a method for this specifically, not for adding custom sounds just to, say, Geneforge, which was what it sounded like in the other thread.
Link to comment
Share on other sites

I don't have BoA, I'm on a PC, but I checked all other games. The sound files are always part of the .exe-directory. What I tried out with various games is adding files to the already existing ones. Let's say Jeff's files cover numbers 1 - 150. I then added 151, 152 etc. I linked those new (empty) files to my corresponding sound files, which I saved in a different folder and a different directory someplace else on my harddesk. Then ran sound tests from within the .exe-directory to see if the sounds would be played. It worked.

 

That's why I think that it should be relatively easy to add custom sounds to a scenario. You can save them in a sound folder that comes with the scenario and link them to the .exe. If you remove the folder, all that remains are a couple of empty files within the .exe-directory. Jeff's own files are not touched or altered in any way.

Link to comment
Share on other sites

Given that it won't be me doing this but rather some helpful PC user, I don't know why I'm even asking, but how do you "link" the files to the .exe?

 

Oh, okay, this is why I'm asking: the issue is the effort required to switch between scenarios with one set of custom sounds and scenarios with another set. If it requires something complicated in each individual sound file, then this method is questionable. If it's easy, then this sounds good.

Link to comment
Share on other sites

Switching between scenarios can be smooth and easy, if the designers agree to name their sound folder 'sound' and ask to place it, say, within the data folder. The individual sound files should just have numbers: 151, 152, etc.

 

A player who wants to listen to custom sounds would have to create a couple of empty files within the .exe-directory, using a program like reshack, which is freeware. That program also creates the links. Once that is done, the only further effort required is copying the scenario's sound folder into the data folder. You'll have to delete it when you finish the game and replace it with your next scenario's sound folder and so on.

 

File 151 can then be a banging door in scenario 1, the sound of rain in scenario 2, a short tune in scenario 3, etc.

Link to comment
Share on other sites

Quote:
So it's probably a Bad Thing™
Hey, what are you trying to say about TM?

This is what we have so far, grouped roughly by degree of possibility:

Calls:
short get_energy(short which_char)

void deduct_char_ap(short which_char, short amount)

void set_year(short year)

void crumble_terrain(short loc_x, short loc_y)

void put_missile_animation(short source_x,short source_y,short dest_x,short dest_y)

short approach_location(short which_char_or_group, short loc_x, short loc_y, short within_dist)

void equip_item_in_slot(short which_char, short

which_item, short which_slot)

short has_item_of_variety(short which_variety, short take_item)

short item_uses_in_slot(short which_char, short which_slot)

void alter_item_uses_in_slot(short which_char, short which_slot, short amount)

void cast_spell(short target_char,short mage_or_priest,short which_spell)

short path_ok(short start_loc_x, short start_loc_y, short end_loc_x, short end_loc_y)

short request_number() -- to get a numeric input

void block_entry_special(short blocked_to_which_char_or_group, short do_blockage)

void fade_to_black()

void fade_from_black()

void identify_item -- not sure how to set up the parameters for this one

reset_floors(short do_reset)

reset_terrains(short do reset)

short get_pressed_key()

Non-call things:
"next/previous" buttons for creatures that cycle through all the placed creatures in town

a predefined END_TALK state for NPCs

customizable scenario icons

custom character status icons

support for custom sounds
Link to comment
Share on other sites

I would like the ability to give an item with a set number of charges, or see how many charges the curent item has if it uses a script. This was how I was planning to implement soul crystals.

 

for example my_charges would return how many charges the item that called the script has.

set_charges would change that number.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...