A skill is a var (= float). Which means it consists of 4 byte. Each byte has 8 bit.

--> 4 Byte = 32 bit

If you want to set the last bit of a skill you have to do a OR operation with
1000 0000 0000 0000 0000 0000 0000 0000 (binary!).
--> As you see the 32. bit is 1
Because we can't write binary numbers in lite-c, we have to calculate the according hex or decimal number:
0x80000000 (hex)
2147483648 (Dec)

my.skill[1] = my.skill[1] | 0x80000000; //sets the 32. bit

For clearing a bit, you have to make an AND operation with 0111 1111 1111 1111 1111 1111 1111 1111 (binary) = 0x7FFFFFFF (hex)

my.skill[1] = my.skill[1] & 0x7FFFFFFF; //resets the 32. bit


This may sound complicated but if you look into binary operations (AND/OR) and how binary numbers and hexadecimal works it is pretty easy wink


ANet - A stable and secure network plugin with multi-zone, unlimited players, voip, server-list features,... (for A7/A8)!
get free version