I think its better not to using sprite subimage, because i want to animated the sprites. How about using another sprites than using sama sprites for skin
That would work too, you could use an array instead of a single sprite for battle sprites and then pick the slot of the array using the skin variable.
E.g. in the example I posted, you would read it with:
spr = global.monster_data[monid,mond_SPRITE_BATTLE][amp_SKIN]