Okay, what your saying is kind of broad, but heres how to do some of the things:
I assume your making camoflauge a pickup item. The easiest thing to do is have the item send a message to the player on pickup. The message function creates or changes a data (say to 1 for snow, 2 two for sand, 3 for tree, etc.) :
Code:
data.add(name,value);
data.set(name,value);
Then have it call a function that contains this:
Code:
obj.model.fill.change(0,0);
The first integer is which bitmap on the model your changing, the second is which bitmap in the animator file its changed too (remember it starts with 0). If you still have a copy of the soldier model/script, its a good example.
Invisibility: invisibility on the screen is easy, just by changing the texture. The easiest way to make you "invisible" to enemies is change obj.setting.find=false. This makes the player object not findable in searches, and that works as thats how mostly you'll have AI's find you. HOWEVER this keeps all other objects from finding the player, which can be a problem. Heres another way:
This can also be used for the repelling enemies camo (what is it, camo with pictures of various world leaders in spandex?

).
When the enemy finds the player, it 'gets' that data variable mentioned above. If its zero (no camo) it continues into run toward, fire etc. functions. If its, say, one (invisible) the enemy ignores it and continues doing what it was. Or anything else.
Tree camo in a tree: eh. This is... harder. I really don't know. You could make ALL the trees and rocks and stuff you hide behind objects, and have them be constantly checking if the players nearby. Then some more stuff with messaging I can't think about right now. It would also be almost impossible to make some camo work better if you were standing on, say, snowy or grass ground, since I don't think objects can talk to map segments like that.
Wow that was long winded.