Rappelz Primary and Secondary Type Statistics
In the game Rappelz, character statistics are represented using bit flags. Bit flags allow efficient management of multiple states using a single numeric variable. This guide explains what bit flags are, how to calculate them, and provides tables representing these flags in numeric form.
Bit Flags
Bit flags are used to represent multiple states using a single integer. Each bit in the number can represent a different state. In the case of statistics in Rappelz, each statistic is assigned to a different bit position.
Primary Type Statistics
Table of Primary Type Statistics
| Flag Name | Numerical Value | Decimal Representation |
|---|---|---|
| STR | (1 << 0) | 1 |
| VIT | (1 << 1) | 2 |
| AGI | (1 << 2) | 4 |
| DEX | (1 << 3) | 8 |
| INT | (1 << 4) | 16 |
| WIS | (1 << 5) | 32 |
| LUK | (1 << 6) | 64 |
| ATTACK_POINT | (1 << 7) | 128 |
| MAGIC_POINT | (1 << 8) | 256 |
| DEFENCE | (1 << 9) | 512 |
| MAGIC_DEFENCE | (1 << 10) | 1024 |
| ATTACK_SPEED | (1 << 11) | 2048 |
| CAST_SPEED | (1 << 12) | 4096 |
| MOVE_SPEED | (1 << 13) | 8192 |
| ACCURACY | (1 << 14) | 16384 |
| MAGIC_ACCURACY | (1 << 15) | 32768 |
| CRITICAL | (1 << 16) | 65536 |
| BLOCK | (1 << 17) | 131072 |
| BLOCK_DEFENCE | (1 << 18) | 262144 |
| AVOID | (1 << 19) | 524288 |
| MAGIC_RESISTANCE | (1 << 20) | 1048576 |
| MAX_HP | (1 << 21) | 2097152 |
| MAX_MP | (1 << 22) | 4194304 |
| MAX_SP | (1 << 23) | 8388608 |
| HP_REGEN_ADD | (1 << 24) | 16777216 |
| MP_REGEN_ADD | (1 << 25) | 33554432 |
| SP_REGEN_ADD | (1 << 26) | 67108864 |
| HP_REGEN_RATIO | (1 << 27) | 134217728 |
| MP_REGEN_RATIO | (1 << 28) | 268435456 |
| MAX_WEIGHT | (1 << 30) | 1073741824 |
Secondary Type Statistics
Table of Secondary Type Statistics
| Flag Name | Numerical Value | Decimal Representation |
|---|---|---|
| ET_NONE_RESIST | (1 << 0) | 1 |
| ET_FIRE_RESIST | (1 << 1) | 2 |
| ET_WATER_RESIST | (1 << 2) | 4 |
| ET_WIND_RESIST | (1 << 3) | 8 |
| ET_EARTH_RESIST | (1 << 4) | 16 |
| ET_LIGHT_RESIST | (1 << 5) | 32 |
| ET_DARK_RESIST | (1 << 6) | 64 |
| ET_ATTACK_RANGE | (1 << 8) | 256 |
| ET_PERFECT_BLOCK | (1 << 9) | 512 |
| ET_IGNORE_PHYSICAL_DEFENCE | (1 << 10) | 1024 |
| ET_IGNORE_MAGICAL_DEFENCE | (1 << 11) | 2048 |
| ET_PHYSICAL_PENETRATION | (1 << 12) | 4096 |
| ET_MAGICAL_PENETRATION | (1 << 13) | 8192 |
| ET_NONE_DAMAGE | (1 << 14) | 16384 |
| ET_FIRE_DAMAGE | (1 << 15) | 32768 |
| ET_WATER_DAMAGE | (1 << 16) | 65536 |
| ET_WIND_DAMAGE | (1 << 17) | 131072 |
| ET_EARTH_DAMAGE | (1 << 18) | 262144 |
| ET_LIGHT_DAMAGE | (1 << 19) | 524288 |
| ET_DARK_DAMAGE | (1 << 20) | 1048576 |
| ET_NONE_ADDITIONAL_DAMAGE | (1 << 21) | 2097152 |
| ET_FIRE_ADDITIONAL_DAMAGE | (1 << 22) | 4194304 |
| ET_WATER_ADDITIONAL_DAMAGE | (1 << 23) | 8388608 |
| ET_WIND_ADDITIONAL_DAMAGE | (1 << 24) | 16777216 |
| ET_EARTH_ADDITIONAL_DAMAGE | (1 << 25) | 33554432 |
| ET_LIGHT_ADDITIONAL_DAMAGE | (1 << 26) | 67108864 |
| ET_DARK_ADDITIONAL_DAMAGE | (1 << 27) | 134217728 |
| CRITICAL_DAMAGE | (1 << 28) | 268435456 |
| HP_REGEN_STOP | (1 << 29) | 536870912 |
| MP_REGEN_STOP | (1 << 30) | 1073741824 |
Simple Calculation Code in Python
Here is a simple code snippet in Python that allows users to calculate the numeric value of combined bit flags. This code can be tested in any online Python interpreter.
class PrimaryTypeFlags: FLAG_STR = (1 << 0) FLAG_VIT = (1 << 1) FLAG_AGI = (1 << 2) FLAG_DEX = (1 << 3) FLAG_INT = (1 << 4) FLAG_WIS = (1 << 5) FLAG_LUK = (1 << 6) FLAG_ATTACK_POINT = (1 << 7) FLAG_MAGIC_POINT = (1 << 8) FLAG_DEFENCE = (1 << 9) FLAG_MAGIC_DEFENCE = (1 << 10) FLAG_ATTACK_SPEED = (1 << 11) FLAG_CAST_SPEED = (1 << 12) FLAG_MOVE_SPEED = (1 << 13) FLAG_ACCURACY = (1 << 14) FLAG_MAGIC_ACCURACY = (1 << 15) FLAG_CRITICAL = (1 << 16) FLAG_BLOCK = (1 << 17) FLAG_BLOCK_DEFENCE = (1 << 18) FLAG_AVOID = (1 << 19) FLAG_MAGIC_RESISTANCE = (1 << 20) FLAG_MAX_HP = (1 << 21) FLAG_MAX_MP = (1 << 22) FLAG_MAX_SP = (1 << 23) FLAG_HP_REGEN_ADD = (1 << 24) FLAG_MP_REGEN_ADD = (1 << 25) FLAG_SP_REGEN_ADD = (1 << 26) FLAG_HP_REGEN_RATIO = (1 << 27) FLAG_MP_REGEN_RATIO = (1 << 28) FLAG_MAX_WEIGHT = (1 << 30)
class SecondaryTypeFlags: FLAG_ET_NONE_RESIST = (1 << 0) FLAG_ET_FIRE_RESIST = (1 << 1) FLAG_ET_WATER_RESIST = (1 << 2) FLAG_ET_WIND_RESIST = (1 << 3) FLAG_ET_EARTH_RESIST = (1 << 4) FLAG_ET_LIGHT_RESIST = (1 << 5) FLAG_ET_DARK_RESIST = (1 << 6) FLAG_ET_ATTACK_RANGE = (1 << 8) FLAG_ET_PERFECT_BLOCK = (1 << 9) FLAG_ET_IGNORE_PHYSICAL_DEFENCE = (1 << 10) FLAG_ET_IGNORE_MAGICAL_DEFENCE = (1 << 11) FLAG_ET_PHYSICAL_PENETRATION = (1 << 12) FLAG_ET_MAGICAL_PENETRATION = (1 << 13) FLAG_ET_NONE_DAMAGE = (1 << 14) FLAG_ET_FIRE_DAMAGE = (1 << 15) FLAG_ET_WATER_DAMAGE = (1 << 16) FLAG_ET_WIND_DAMAGE = (1 << 17) FLAG_ET_EARTH_DAMAGE = (1 << 18) FLAG_ET_LIGHT_DAMAGE = (1 << 19) FLAG_ET_DARK_DAMAGE = (1 << 20) FLAG_ET_NONE_ADDITIONAL_DAMAGE = (1 << 21) FLAG_ET_FIRE_ADDITIONAL_DAMAGE = (1 << 22) FLAG_ET_WATER_ADDITIONAL_DAMAGE = (1 << 23) FLAG_ET_WIND_ADDITIONAL_DAMAGE = (1 << 24) FLAG_ET_EARTH_ADDITIONAL_DAMAGE = (1 << 25) FLAG_ET_LIGHT_ADDITIONAL_DAMAGE = (1 << 26) FLAG_ET_DARK_ADDITIONAL_DAMAGE = (1 << 27) FLAG_CRITICAL_DAMAGE = (1 << 28) FLAG_HP_REGEN_STOP = (1 << 29) FLAG_MP_REGEN_STOP = (1 << 30)
def main(): primary_type_combined = PrimaryTypeFlags.FLAG_STR | PrimaryTypeFlags.FLAG_VIT | PrimaryTypeFlags.FLAG_AGI secondary_type_combined = SecondaryTypeFlags.FLAG_ET_FIRE_RESIST | SecondaryTypeFlags.FLAG_ET_WATER_DAMAGE
print(f"Combined Primary Type Flags Value: {primary_type_combined}") print(f"Combined Secondary Type Flags Value: {secondary_type_combined}")
if __name__ == "__main__": main()This code combines multiple flags using bitwise OR operations and prints the resulting values. Users can modify the combinations to calculate other sets of flags as needed.