Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
Caster of Magic II Bug Reports!

(August 4th, 2024, 12:44)WhiteMage Wrote:
(August 3rd, 2024, 16:26)Seravy Wrote:
(August 3rd, 2024, 12:27)WhiteMage Wrote:
(July 27th, 2024, 12:52)Seravy Wrote: Ok, if you insist, I'll check the unrest calculation with debug just in case.
The race unrest table in memory contains +1 for [8,8].
The script variable Raceun is set to +1 in memory.

The only line that uses this value in the unrest script is this one :

UNPERC=UNPERC+(RACEUN*10)

which adds 10% for each +1 in the variable.

I believe that's enough proof of there being no such bugs.
If you don't believe it, add some Debuglog lines to your unrest script and check directly.

Did you change your EcoUnrest.CAS file? That's the only possible reason I can think of why your result is different.

Edit : Also looked at the city data just in case. The pop 5 starting city with 0 garrison units has 0 rebels at 19% total unrest (10 from race and 9 from taxes), raising the tax rate by one (28% total) creates one rebel. Raising it to 2 gold for a total of 46% unrest generates 2 rebels.
All of these data match the base unrest value of 10%.

I did not change EcoUnrest.CAS file.

Other than spells and the given pair of races (leader, current town), what can impact unrest in a town? Tax rate, Shrine, Parthenon, Cathedral, Colosseum, Oracle, Nightshade, 2 units in town. Anything else? Maybe Famous pick? Guardian pick? Etc.

Everything else you see in EcoUnrest.Cas. Armageddon, Doomsday, Just Cause, etc.

I see no hardcoded modifiers in the source so if there is a problem it should be in the script.

1a.
EcoUnrest.Cas has this line:
IF ISBUILT(CITYID,BAlchemistGuild) THEN { REL=REL+%I((OREINRANGE(CITYID,OreNightshade)/2));

How does this work exactly?

1b. In the game nothing is written on the Alchemist's Guild building that it can somehow reduce unrest.

2.
Instead, it is written on the Cathedral building that it further reduces unrest by 1 if there is Nightshade, but does not mention Alchemist's Guild, nor ore.

As far as I remember, you need the Alchemist Guild to unlock the existence of the resource, which gives you the ability to counter city curses. If it's unlocked then a Cathedral provides additional economy effects. So you need both for the unret reduction. I vaguely remember the wording in the text was something like "for each active Nightshade" where active refers to having the Alchemist Guild to use the resource.
Reply

(August 4th, 2024, 12:57)Seravy Wrote:
(August 4th, 2024, 12:44)WhiteMage Wrote:
(August 3rd, 2024, 16:26)Seravy Wrote:
(August 3rd, 2024, 12:27)WhiteMage Wrote:
(July 27th, 2024, 12:52)Seravy Wrote: Ok, if you insist, I'll check the unrest calculation with debug just in case.
The race unrest table in memory contains +1 for [8,8].
The script variable Raceun is set to +1 in memory.

The only line that uses this value in the unrest script is this one :

UNPERC=UNPERC+(RACEUN*10)

which adds 10% for each +1 in the variable.

I believe that's enough proof of there being no such bugs.
If you don't believe it, add some Debuglog lines to your unrest script and check directly.

Did you change your EcoUnrest.CAS file? That's the only possible reason I can think of why your result is different.

Edit : Also looked at the city data just in case. The pop 5 starting city with 0 garrison units has 0 rebels at 19% total unrest (10 from race and 9 from taxes), raising the tax rate by one (28% total) creates one rebel. Raising it to 2 gold for a total of 46% unrest generates 2 rebels.
All of these data match the base unrest value of 10%.

I did not change EcoUnrest.CAS file.

Other than spells and the given pair of races (leader, current town), what can impact unrest in a town? Tax rate, Shrine, Parthenon, Cathedral, Colosseum, Oracle, Nightshade, 2 units in town. Anything else? Maybe Famous pick? Guardian pick? Etc.

Everything else you see in EcoUnrest.Cas. Armageddon, Doomsday, Just Cause, etc.

I see no hardcoded modifiers in the source so if there is a problem it should be in the script.

1a.
EcoUnrest.Cas has this line:
IF ISBUILT(CITYID,BAlchemistGuild) THEN { REL=REL+%I((OREINRANGE(CITYID,OreNightshade)/2));

How does this work exactly?

1b. In the game nothing is written on the Alchemist's Guild building that it can somehow reduce unrest.

2.
Instead, it is written on the Cathedral building that it further reduces unrest by 1 if there is Nightshade, but does not mention Alchemist's Guild, nor ore.

As far as I remember, you need the Alchemist Guild to unlock the existence of the resource, which gives you the ability to counter city curses. If it's unlocked then a Cathedral provides additional economy effects. So you need both for the unret reduction. I vaguely remember the wording in the text was something like "for each active Nightshade" where active refers to having the Alchemist Guild to use the resource.

Ok. The text on Alchemist Guild once built is better than on Alchemist Guild that is to be built. It would be good to copy over the text there too, to clarify what it does. The word "active" was not clear to me and probably to many other players.

How does this work:
%I((OREINRANGE(CITYID,OreNightshade)/2))

Seems floor of (number of Nightshades divided by 2). So for 1 Nightshade in range would evaluate to 0. Is this correct?

Also a pair of () seems to be extra and not needed.
Reply

Quote:Seems floor of (number of Nightshades divided by 2). So for 1 Nightshade in range would evaluate to 0. Is this correct?

Is that function missing in scripts.txt? If so, let me know and I'll add it.

It returns the number of "tile halves" that have the ore. So 1 for a shared Nightshade, 2 for a full Nightshade, 4 for two Nightshades, etc
Reply

(August 4th, 2024, 15:04)Seravy Wrote:
Quote:Seems floor of (number of Nightshades divided by 2). So for 1 Nightshade in range would evaluate to 0. Is this correct?

Is that function missing in scripts.txt? If so, let me know and I'll add it.

It returns the number of "tile halves" that have the ore. So 1 for a shared Nightshade, 2 for a full Nightshade, 4 for two Nightshades, etc
In Scripts.txt I found OREINRANGE(C,O), but not OreNightshade.
Reply

OreNightshade is a constant number that refers to the ID of the resource. It's not a function.
Reply

(August 4th, 2024, 19:52)Seravy Wrote: OreNightshade is a constant number that refers to the ID of the resource. It's not a function.

Just to add, Resource (and most Script variable) references can be found in Master.CAS in the Data Folder. Refer to the image below.

   
Reply

I found these in 1.5.4 and 1.5.5. I am glad to see frequent new patches so I decided to post my list since there is a chance to get them fixed:

1. Is Poison 3 of Naga applied per figure? It would be good to spell it out on the unit's icon.
 
2. Does Death Immunity protect against Death Gaze? It is not written, but it seems to protect. If so, then please add to the text.
 
3. Add to Immolation text on unit that it cannot be frozen. It already works that way. Efreet seems to be immune to be frozen. 

3b. Also, maybe fire gains should not be allowed to become frozen since they are made of fire? And water elementals should be immune to web?
 
4. Engineers built road immediately and still had their full move available. Reproduce on Myrror from EngineersBuildRoad.sav
 
5. Item gives Water Walking. But there is no icon displaying on the hero that he has that skill and since hero is Dwarf it shows Mountaineer icon for movement, not water. And if he has Wraith Form spell then it displays that and still does not display the Water Walking. Reproduce from EngineersBuildRoad.sav.
 
6. When Veteran HE Magicians offer to join it incorrectly displays that they have 24mp. After hiring them it displays 22mp.
 
7. Animist’s Guild text incorrectly shows that it increases each farmer’s food production by 1. It increases by 2.
 
8. After I moved my engineers and they used up all their moves, I can click them and give them build order to start. This should not be allowed. They should end their turn after moving like other units.
 
9. My 3 golems fought and won a battle. Then in same turn I gave them order to move. It displays G letter and red arrow. Now I cannot remove the G even if I click the same tile they are at. Reproduce from G.sav. They are on the North.
 
10. When I threaten AI Wizard and it pays gold it does not subtract gold from its reserve. Reproduce from Threaten.sav. Threaten Orange AI Rjak.
 
11. When I threaten AI and it pays for peace I can repeat it immediately and gives same amount of gold again. AI should block diplomacy after it pays once. Reproduce from Threaten.sav. Threaten Orange AI Rjak twice.
 
12. Raise Dead raises a fallen unit from the dead regardless how they died? Including stoned, syphon life, and cracks call? AI raised them after they died from stoning. They started combat with 2 out of 6 figures then I stoned them. Also only 2 figures started the battle, but it raised 3, since 6 was the maximum. Intended feature? Or since the other 4 were stoned in their previous battle, those are now considered just dead and can be Raised from the dead, but not in the same battle they were stoned? Either way the rule should be written clearly on the spell.
 
13. UI bug: I reported this years ago. One out of several units selected on tower and not allowed to move alone. About 5% chance it comes up. Not sure how to reproduce, but stack changing plane somehow still keeps some of them bound to the original plane and not allowed to move on the new plane. When it comes up I need to repeat try to click them and change planes several times and eventually allowed to move. See screenshot.

14. When Final War began even the dead wizards declared war on me. Better if they don’t do that since they don’t exist. Reproduce from FinalWarBefore.sav, FinalWarAfter.sav. It even shows in graphics that I am at war with the dead players both in the text message at the beginning of the turn and at the Wizard screen with crossed swords. Better to remove that. It does not make sense and it makes the display too busy. See screenshots.


Attached Files
.zip   2024Aug12a.zip (Size: 1.36 MB / Downloads: 1)
Reply

Crash: Reproduce by attacking the lair next to the Northmost unit (Gnoll spearmen) on Arcanus.


Attached Files
.zip   Crash2024Aug12b.zip (Size: 260.3 KB / Downloads: 1)
Reply

Save from Warlord mod version 1.5.6.0b crash right after attack chaos node at the center of screen when loading save. In this zip file contain both save and log report right before crash. Content of the crash might related to update of caster.exe in version 1.5.6 as both version of 1.5.6 (official one and optimized one) crash at the same place while caster.exe version 1.5.4 does not crash (I test it upon version that code as closest as possible with only difference is Corrosive Blast spell moving from slot 236 in version 1.5.4 to slot 285 of version 1.5.6's spells.ini).


For mod that using for testing in caster.exe version 1.5.6 is here.
https://www.mediafire.com/file/njmbda5vr...0b.7z/file


Attached Files
.zip   bug in battle against Chaos node.zip (Size: 386.23 KB / Downloads: 1)
Reply

(August 12th, 2024, 21:25)WhiteMage Wrote: Crash: Reproduce by attacking the lair next to the Northmost unit (Gnoll spearmen) on Arcanus.

Confirmed, my mistake. The AI for the Breakthrough spell didn't check for the caster being a neutral player.

I've reuploaded 1.5.6 with the fixed exe file.

Quote:Save from Warlord mod version 1.5.6.0b crash right after attack chaos node at the center of screen when loading save.

This is 99% the same bug as above, please try the reuploaded 1.5.6 version.
Reply



Forum Jump: