# 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