Originally Posted by
DragonsLover
Yeah, I know that problem and yeah, it's fixable. Here are the explanations:
For every creature, the game sets three different "Anger IDs": one when the creature is unhappy, one when the creature is angry and one when the creature has left the dungeon. Each ID points to a series of strings that specifies the way he becomes annoyed. Here's an example with the Goblin:
ID 657: A Goblin has become unhappy because he has no Lair
ID 658: A Goblin has become unhappy because he has no food
ID 659: A Goblin has become unhappy because he hasn't been paid
ID 660: A Goblin has become unhappy because he has no work to do
ID 661: A Goblin has become unhappy because he has been slapped
ID 662: A Goblin has become unhappy because he has remained in the Hand of Evil for too long
ID 663: A Goblin has become unhappy because he has been left alone in the Combat Pit
ID 664: A Goblin has become unhappy because he is in the company of creatures he hates
ID 665: A Goblin has become unhappy because he has been tortured
ID 927: A Goblin has become angry because he has no Lair
ID 928: A Goblin has become angry because he has no food
ID 929: A Goblin has become angry because he hasn't been paid
ID 930: A Goblin has become angry because he has no work to do
ID 931: A Goblin has become angry because he has been slapped
ID 932: A Goblin has become angry because he has remained in the Hand of Evil for too long
ID 933: A Goblin has become angry because he has been left alone in the Combat Pit
ID 934: A Goblin has become angry because he is in the company of creatures he hates
ID 935: A Goblin has become angry because he has been tortured
ID 1125: A Goblin has left your dungeon
(Notices that those that tells that the creature is annoyed because he has been left alone in the Combat Pit seem to be unused)
Here, the three IDs that the game use are marked in yellow (gotten with the Level Editor Pro), followed by other strings that show how the Goblin becomes annoyed.
When the Goblin becomes unhappy or angry, the game uses the ID 657 or ID 927 and increases that value to get access precisely on the correct string to use corresponding on the way the Goblin becomes annoyed. Here's when the Goblin becomes unhappy:
+0 (657+0=657) : No Lair
+1 (657+1=658) : No Food
+2 (657+2=659) : No Pay
+3 (660) : No Work
+4 (661) : Slapped
+5 (662) : Held
+6 (663) : Lonely (used?)
+7 (664) : Hatred
+8 (665) : Tortured
Well, it seems that it was planned to have ANOTHER string when a creature becomes annoyed when imprisoned which would add 9 to the corresponding IDs:
+9 (666) : Imprisoned
The problem is that, when the game adds 9 to the ID, it goes to the NEXT creature:
657 + 9 = 666 and 666 is:
ID 666 : A Salamander has become unhappy because it has no Lair
ID 667 : A Salamander has become unhappy because it has no food
ID 668 : A Salamander has become unhappy because it hasn't been paid
[...]
This is why we get the wrong creature in the message. My task here would be to add two strings for every creature that tells : "A creature has become unhappy because it is in prison" and "A creature has become angry because it is in prison". And to do that, I'd have to overwrite over some unused strings (is sulking + has no work to do), but I wasn't sure if those strings are already used or not, this is why I asked. I will also have to extract some speeches and bring some modifications so that the mentor says the sentences properly.