Quest Variables
Description
This file should help to understand and manage bit-wise quest variables.
You can store up to 31 boolean value into a single variable.
Sample Variable: MISC_QUEST
| Quest # No |
Sample Quest |
| Description |
How to assign a bit-wise value and check it. |
| Assign Value |
MISC_QUEST = MISC_QUEST | X; |
| Check Value |
if (MISC_QUEST & X) { ... } |
- Where
X refer to the bit-wise value that could be used to represent the state/progress of a quest.
Example
| Quest # 1 |
Juice Maker Quest |
| Description |
How to make juices. This bit keeps final state of the quest. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 1; |
| Check Value |
if (MISC_QUEST & 1) { ... } |
| Quest # 2 |
Tempestra Quest |
| Description |
Determines if player has given a potion to Tempestra. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 2; |
| Check Value |
if (MISC_QUEST & 2) { ... } |
| Quest # 3 |
Morgenstein Quest |
| Description |
How to make Mixture & Counteragent. This bit keeps final state of the quest. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 4; |
| Check Value |
if (MISC_QUEST & 4) { ... } |
| Quest # 4 |
Prontera Culvert Quest |
| Description |
Determines if player can enter Prontera Culverts. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 8; |
| Check Value |
if (MISC_QUEST & 8) { ... } |
| Quest # 5 |
Edgar's Offer |
| Description |
Cheap ticket from Izlude to Alberta. This bit keeps final state of the quest. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 16; |
| Check Value |
if (MISC_QUEST & 16) { ... } |
| Quest # 6 |
Piano Quest |
| Description |
The only way from Niflheim to Umbala. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 32; |
| Check Value |
if (MISC_QUEST & 32) { ... } |
| Quest # 7 |
Bio Ethics Quest |
| Description |
Quest for homunculus skill for alchemists. This bit keeps final state of the quest. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 64; |
| Check Value |
if (MISC_QUEST & 64) { ... } |
| Quest # 8 |
DTS Warper |
| Description |
Determines if player has already voted. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 128; |
| Check Value |
if (MISC_QUEST & 128) { ... } |
| Quest # 9 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 256; |
| Check Value |
if (MISC_QUEST & 256) { ... } |
| Quest # 10 |
Cube Room |
| Description |
Lighthalzen Cube Room quest (to enter Bio-Lab) |
| Assign Value |
MISC_QUEST = MISC_QUEST | 512; |
| Check Value |
if (MISC_QUEST & 512) { ... } |
| Quest # 11 |
Reset Skills Event |
| Description |
Yuno, Hypnotist Teacher |
| Assign Value |
MISC_QUEST = MISC_QUEST | 1024; |
| Check Value |
if (MISC_QUEST & 1024) { ... } |
| Quest # 12 |
Slotted Arm Guard Quest |
| Description |
Ninja Job Room, Boshuu |
| Assign Value |
MISC_QUEST = MISC_QUEST | 2048; |
| Check Value |
if (MISC_QUEST & 2048) { ... } |
| Quest # 13 |
Improved Arm Guard Quest |
| Description |
Ninja Job Room, Basshu |
| Assign Value |
MISC_QUEST = MISC_QUEST | 4096; |
| Check Value |
if (MISC_QUEST & 4096) { ... } |
| Quest # 14 |
Rachel Sanctuary Quest |
| Description |
Determines if player can access Rachel Santuary. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 8192; |
| Check Value |
if (MISC_QUEST & 8192) { ... } |
| Quest # 15 |
Message Delivery Quest |
| Description |
Send a message to Elly, in Niflheim from Erious. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 16384; |
| Check Value |
if (MISC_QUEST & 16384) { ... } |
| Quest # 16 |
Umbala Domestic Dispute? |
| Description |
Reward: 1 Yggdrasil Leaf. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 32768; |
| Check Value |
if (MISC_QUEST & 32768) { ... } |
| Quest # 17 |
Access to the Turtle Island |
| Description |
Reward: ~1 Old Card Album , Old Violet Box, GB. |
| Assign Value |
MISC_QUEST = MISC_QUEST | 65536; |
| Check Value |
if (MISC_QUEST & 65536) { ... } |
| Quest # 18 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 131072; |
| Check Value |
if (MISC_QUEST & 131072) { ... } |
| Quest # 19 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 262144; |
| Check Value |
if (MISC_QUEST & 262144) { ... } |
| Quest # 20 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 524288; |
| Check Value |
if (MISC_QUEST & 524288) { ... } |
| Quest # 21 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 1048576; |
| Check Value |
if (MISC_QUEST & 1048576) { ... } |
| Quest # 22 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 2097152; |
| Check Value |
if (MISC_QUEST & 2097152) { ... } |
| Quest # 23 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 4194304; |
| Check Value |
if (MISC_QUEST & 4194304) { ... } |
| Quest # 24 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 8388608; |
| Check Value |
if (MISC_QUEST & 8388608) { ... } |
| Quest # 25 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 16777216; |
| Check Value |
if (MISC_QUEST & 16777216) { ... } |
| Quest # 26 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 33554432; |
| Check Value |
if (MISC_QUEST & 33554432) { ... } |
| Quest # 27 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 67108864; |
| Check Value |
if (MISC_QUEST & 67108864) { ... } |
| Quest # 28 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 134217728; |
| Check Value |
if (MISC_QUEST & 134217728) { ... } |
| Quest # 29 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 268435456; |
| Check Value |
if (MISC_QUEST & 268435456) { ... } |
| Quest # 30 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 536870912; |
| Check Value |
if (MISC_QUEST & 536870912) { ... } |
| Quest # 31 |
- |
| Description |
- |
| Assign Value |
MISC_QUEST = MISC_QUEST | 1073741824; |
| Check Value |
if (MISC_QUEST & 1073741824) { ... } |
Quest#32 and onwards
You had to use a new variable to store it.
The existing variable MISC_QUEST's value may overflow as it already reaching the max value.
Basically the cycle repeat every 32th quests, unless the limit has been lifted in the future.
| No |
Formulae |
Bits Value |
Accumulate |
| 1 |
2 ^ 0 |
1 |
1 |
| 2 |
2 ^ 1 |
2 |
3 |
| 3 |
2 ^ 2 |
4 |
7 |
| 4 |
2 ^ 3 |
8 |
15 |
| 5 |
2 ^ 4 |
16 |
31 |
| 6 |
2 ^ 5 |
32 |
63 |
| 7 |
2 ^ 6 |
64 |
127 |
| 8 |
2 ^ 7 |
128 |
255 |
| 9 |
2 ^ 8 |
256 |
511 |
| 10 |
2 ^ 9 |
512 |
1023 |
| 11 |
2 ^ 10 |
1024 |
2047 |
| 12 |
2 ^ 11 |
2048 |
4095 |
| 13 |
2 ^ 12 |
4096 |
8191 |
| 14 |
2 ^ 13 |
8192 |
16383 |
| 15 |
2 ^ 14 |
16384 |
32767 |
| 16 |
2 ^ 15 |
32768 |
65535 |
| 17 |
2 ^ 16 |
65536 |
131071 |
| 18 |
2 ^ 17 |
131072 |
262143 |
| 19 |
2 ^ 18 |
262144 |
524287 |
| 20 |
2 ^ 19 |
524288 |
1048575 |
| 21 |
2 ^ 20 |
1048576 |
2097151 |
| 22 |
2 ^ 21 |
2097152 |
4194303 |
| 23 |
2 ^ 22 |
4194304 |
8388607 |
| 24 |
2 ^ 23 |
8388608 |
16777215 |
| 25 |
2 ^ 24 |
16777216 |
33554431 |
| 26 |
2 ^ 25 |
33554432 |
67108863 |
| 27 |
2 ^ 26 |
67108864 |
134217727 |
| 28 |
2 ^ 27 |
134217728 |
268435455 |
| 29 |
2 ^ 28 |
268435456 |
536870911 |
| 30 |
2 ^ 29 |
536870912 |
1073741823 |
| 31 |
2 ^ 30 |
1073741824 |
2147483647 |