I can give you a partial answer. As you probably know this is the index file into the icon sheet. The first 4 lines are:
16 = icon height (in pixels)
16 = icon width (in pixels)
8 = icons per column
8 = icons per row
After that is a list of internal filenames used for each icon. The first entry is for index 0, next line is index 1, etc. The encoding is in simplified chinese if it looks ugly to you.
The icons are arranged in normal reading order as you'd expect, index 0 top left, index 1 is to the right of that... left to right top to bottom.
Here's some sample code I have which decodes these:
Code:
def saveIcons(icons):
icon_sheet = pygame.image.load('iconlist.bmp')
current_icon_index = 0
icon_map = {}
icon_sheet_index = open('iconlist.txt')
icon_height = int(icon_sheet_index.readline())
icon_width = int(icon_sheet_index.readline())
icon_sheet_height = int(icon_sheet_index.readline())
icon_sheet_width = int(icon_sheet_index.readline())
line = icon_sheet_index.readline()
while line:
icon_map[line.strip().lower()] = current_icon_index
current_icon_index += 1
line = icon_sheet_index.readline()
icon_surface = pygame.Surface((icon_width,icon_height))
for icon in icons:
if icon[1].lower() not in icon_map:
continue
location = icon_map[icon[1].lower()]
y,x = divmod(location, icon_sheet_width)
icon_surface.blit(icon_sheet, (x*-icon_width, y*-icon_width))
pygame.image.save(icon_surface, "output\\"+str(icon[0])+".bmp")
A lot of these internal icon names can be found in elements.data which is relatively easy to parse with those sELedit configs. Unfortunately I'm pretty sure the list of skills is in elementskill.dll which is harder to decode. I have had some success though in opening that file in a hexeditor and searching for the table I want with the filename strings and extracting the table manually but it can get messy.
It's definitely in there though: