Page 1 of 1

Help me fix "Table range not found for ID" errors.

Posted: Thu Jul 21, 2011 11:22 pm
by rock5
If you get a "Table range not found for ID" error, are familiar with using Cheat Engine and would like to help me fix the cause of that error message, here are some instructions for you to follow.

Step 1. Check the table ranges for the id.
  • Open the "itemtables" cache file. It can be found in the "rom/cache" folder. It is made up of about 27 tables and each table is made up of a number of ranges.
  • Try to find which table the id should belong to. For example if the id is 101515 and the "NPCObjectDB" only goes from 100001 to 100811 then that's the table with the problem. For comparison, here are the tables and their start and end values that I show. If any of your "EndId" values are different then that's probably the table with the problem.

Code: Select all

StartId = 570000, EndId = 588455, Name = "ImageObjectDB"
StartId = 510000, EndId = 513527, Name = "AddPowerObjectDB"
StartId = 220001, EndId = 229752, Name = "ArmorObjectDB"
StartId = 2000, EndId = 2394, Name = "BodyObjectDB"
StartId = 710000, EndId = 710004, Name = "CampObjectDB"
StartId = 760000, EndId = 760015, Name = "CreateRoleObjectDB"
StartId = 770000, EndId = 771138, Name = "CardObjectDB"
StartId = 740000, EndId = 745840, Name = "EqRefineAbilityObjectDB"
StartId = 780000, EndId = 780986, Name = "FlagObjectDB"
StartId = 200000, EndId = 240635, Name = "ItemObjectDB"
StartId = 540000, EndId = 545487, Name = "KeyItemObjectDB"
StartId = 590000, EndId = 590019, Name = "LearnMagicExDB"
StartId = 500000, EndId = 620700, Name = "MagicObjectDB"
StartId = 490000, EndId = 498152, Name = "MagicCollectObjectDB"
StartId = 560000, EndId = 560082, Name = "MineObjectDB"
StartId = 100001, EndId = 106101, Name = "NPCObjectDB"
StartId = 1000, EndId = 1010, Name = "PlayerObjectDB"
StartId = 420025, EndId = 424425, Name = "QuestDetailObjectDB"
StartId = 110000, EndId = 118945, Name = "QuestNPCObjectDB"
StartId = 550000, EndId = 551736, Name = "RecipeObjectDB"
StartId = 520000, EndId = 521490, Name = "RuneObjectDB"
StartId = 600000, EndId = 600352, Name = "ShopObjectDB"
StartId = 610000, EndId = 610410, Name = "SuitObjectDB"
StartId = 530000, EndId = 530752, Name = "TitleObjectDB"
StartId = 720000, EndId = 725776, Name = "TreasureObjectDB"
StartId = 210001, EndId = 213451, Name = "WeaponObjectDB"
StartId = 750000, EndId = 750461, Name = "ZoneObjectDB"
Step 2. Find the last address.
  • Now that we've found the problem table, have a look at the last range. To continue the example above it might look like this.

Code: Select all

	{StartId = 100001, EndId = 100811, Name = "NPCObjectDB", Ranges = {
		{Start = 100001, End = 100803, StartAddress = 0x100D6540},
		{Start = 100805, End = 100805, StartAddress = 0x100D00E0},
		{Start = 100804, End = 100804, StartAddress = 0x100D00C0},
		{Start = 100806, End = 100811, StartAddress = 0x100D00A0},
	}},
  • Now take note of the last address of the highest id, in this case it's "100D00A0"
Step 3. Take a picture of that memory region.
  • Now start up Cheat Engine, attach to the game client and go to the "Memory View".
  • Right click the bottom half of the display and select "Display Type/4 Byte hex" to change the display to show groups of 4 bytes.
  • Right click it again and select "Goto address" and enter the address we found above.
  • Now scroll upwards until you see the end of the range. It should look something like this.
memorypic.jpg
  • When you have the display looking something like that, then take a snapshot of it and post it here and I'll have a look at it.
Step 4. If you want to take it a step further.
  • Most likely the problem will be in the snapshot above. It should include the address where the range continues. If it looks ok and the address is there then I might need you to go to the address where the range continues and take a snapshot there as well. The address to go to can be in either the second or third column and usually stands out. In the example above the address to go to is "1184FFE0". "1184FFC0" also stands out and would work also.
  • If you can identify the addess then right click the display and select "Goto address" and enter that address.
  • You should be at the bottom end of the range so scroll up a bit until you have a display like this. If you are not at the bottom of the range but part way through it then scroll down until you reach the end.
memorypic2.jpg
  • Take a snapshot and include it in your post.

Re: Help me fix "Table range not found for ID" errors.

Posted: Tue Jul 26, 2011 5:19 pm
by Mushroomstamp
I'm getting table range errors for the buff Briar Shield, (ID: 4), and debuff Poison, (ID: 1581190400), along with many others. Is there a temp fix we can do when we know what's causing the individual errors?

Re: Help me fix "Table range not found for ID" errors.

Posted: Wed Jul 27, 2011 2:26 am
by rock5
Mushroomstamp wrote:I'm getting table range errors for the buff Briar Shield, (ID: 4), and debuff Poison, (ID: 1581190400), along with many others. Is there a temp fix we can do when we know what's causing the individual errors?
At the moment it doesn't count because of the patch. I just committed revision 625 that should fix everything. Try that.

Re: Help me fix "Table range not found for ID" errors.

Posted: Wed Jul 27, 2011 8:44 am
by botje
perhaps its a good idea to use the new logfolder?

let bot generate log on table range errors?

then we can post that :)

Botje