Ammo.dat, Armour.dat, and Weapons.dat

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Isendir
Posts: 6
Joined: Thu May 14, 2020 1:34 pm

Ammo.dat, Armour.dat, and Weapons.dat

Post by Isendir »

I've noticed that weapon damage and armor protection (?) don't seem to be as they were in the original. If I use a halberd, for instance, it takes like 200 hits to take something down; whereas if I use a simple sword, enemies are perhaps 5-10. Two-handed swords seem to deal out the most damage, but maybe this is how it was in the original (been awhile since the original). Perhaps the info for both of these are in the armour.dat and weapons.dat files.

Also, rings of regeneration and invisibility seem to have unlimited charges, as do wands, I believe. Not that this is a big deal - you just have to limit the usage of the invisibility rings yourself, otherwise the game would be too easy. Perhaps this info is contained in the ammo.dat file.

It's been a lot of fun replaying through this classic, though.
eric.w

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by eric.w »

I'm no expert, but i'm pretty sure the file format of weapons.dat and armour.dat is still a mystery, which is why the damage and armour values aren't quite right.
Isendir
Posts: 6
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by Isendir »

Also, has any research been done into how a hit is scored? What I mean is what the exact formula the game uses to define how you hit an enemy.

For example, does it calculate your Dex + Combat skill to determine a hit, or what?

-Isendir
Neutronium Dragon

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by Neutronium Dragon »

It was also apparent that Int caused changes in combat behavior. You can see this clearly in Serpent Isle in the original: Go and train your party with Shazanna and choose a halberd as your weapon. Anyone with a high Int (Iolo) will (usually) adopt a routine of backing up as she swings her sword (and thus being safely out of range), swinging with their halberd as she closes the gap (hitting her), and doing so again until either she's down or they get backed up against a wall. Characters with lower Int (Dupre and Shamino, among others) won't do this; they just stand blithely in place while swinging.

Neutronium Dragon
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by drcode »

I'm pretty sure we've figured out the weapon.dat and armour.dat values, and you can check them in ExultStudio. It's quite possible that our combat calculations don't match the originals, though, and that's why you're seeing a difference.

As for wands, we only started keeping track of charges after the 1.2 release. Rings don't have limits; but I think that when you sleep, the usecode script will randomly cause you to lose rings that you're wearing.

The combat calculation for Exult is in the 'actors.cc' file. I'm pretty sure that 'combat' skill determines the chance of a hit, and 'strength' determines the amount of hit points. 'Intelligence' helps you avoid magical attacks, and 'dexterity' determines how long you have to wait before doing the next attack.
Isendir
Posts: 6
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by Isendir »

Thanks for clearing things up, DrCode. Great work overall with the Exult project.

For some reason though, I clearly remember losing rings in the original U7. Like after regenerating a random amount of hit points with a ring of regeneration, it would just disappear. Same thing with rings of invisibility, though they would disappear after a random time limit when wearing them.

Keep up the great work!

-Isendir
PanSola

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by PanSola »

maybe... ring-disappearing was a bug in the original as opposed to a feature? d-:

but yeah I remember it happening as well
Belial
Posts: 36
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by Belial »

i always thought the rings had a charge that would run out after some time and dissapear. although they could turn into normal rings if this were so. not that they do.
-Belial
Colourless
Site Admin
Posts: 731
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by Colourless »

It is a feature in Exult that they stay
dag

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by dag »

> It is a feature in Exult that they stay

Beating the game with magical rings that only
disappear when you are asleep (which can be
easiliy avoided by taking off all rings before
counting sheep) is like cheating.
So this may be a feature that still has to be
implemented.
i remember me cursing my 486, because i
thought there was some kind of data loss. but
it's not a bug. it's a feature!
At least, it should be a kind of flag, that has its
default in "certain rings are vanished from time
to time (randomly)". But cheaters may set it to
"my rings are indestructible".
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by drcode »

I vaguely remember removing rings in the original U7 before sleeping because I thought that's when they disappeared. But maybe I was dreaming.
MkM

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by MkM »

Ring of Regeneration and Invisibility are supposed to disappear as they do in every ultima.
By the way, when you are invisible you can see the illusionary walls in dungeons. This is terrible chating.
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Ammo.dat, Armour.dat, and Weapons.dat

Post by drcode »

What I found: The ring of regeneration's disappearance is controlled by usecode, so it should disappear in Exult. It can only occur when your HP's need regenerating, and then the chance is only 1 in 64.

I think the invisibility ring's disappearance is hard-coded in U7, so that won't happen in Exult.
Locked