diff options
Diffstat (limited to 'npc/annuals/xmas/config.txt')
-rwxr-xr-x | npc/annuals/xmas/config.txt | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/npc/annuals/xmas/config.txt b/npc/annuals/xmas/config.txt new file mode 100755 index 00000000..807b3b9f --- /dev/null +++ b/npc/annuals/xmas/config.txt @@ -0,0 +1,252 @@ + + +- script #XmasConfig NPC32767,{ + end; + +OnCommandRestartQuest: + goto L_Main; + +OnInit: + goto L_Main; + +L_Main: + // Xmas Key Identifier Set through Botcheck Debug + if(!($XMAS_TIME_KEY) || (getarraysize($XMAS_TIME_KEY) != 6)) + setarray $XMAS_TIME_KEY, 12,12,1,25,6,gettime(7); + if(($XMAS_TIME_KEY[0] == 0) || ($XMAS_TIME_KEY[0] > 12)) + goto L_XmasError; + if(($XMAS_TIME_KEY[1] == 0) || ($XMAS_TIME_KEY[1] > 12)) + goto L_XmasError; + if(($XMAS_TIME_KEY[2] == 0) || ($XMAS_TIME_KEY[2] > 12)) + goto L_XmasError; + if(($XMAS_TIME_KEY[3] == 0) || ($XMAS_TIME_KEY[3] > 31)) + goto L_XmasError; + if(($XMAS_TIME_KEY[4] == 0) || ($XMAS_TIME_KEY[4] > 31)) + goto L_XmasError; + if($XMAS_TIME_KEY[5] == 0) + goto L_XmasError; + + // Event Runs until Reward Period. + // Month Start/End + $@xmas_start_month = $XMAS_TIME_KEY[0]; + $@xmas_reward_start_month = $XMAS_TIME_KEY[1]; + $@xmas_end_month = $XMAS_TIME_KEY[2]; + + // Reward Day Start/End + $@xmas_reward_start_day = $XMAS_TIME_KEY[3]; + $@xmas_reward_end_day = $XMAS_TIME_KEY[4]; + + // Time Settings + $@xmas_no_event_time = 0; + $@xmas_event_time = 1; + $@xmas_reward_time = 2; + + // Main Quest Settings + // Bit used to Set Which one of the 2 quests you are on + $@xmas_side_bit = (1 << 31); + $@xmas_base_bonus_xp = 4; + $@xmas_karma_bonus = 1; + $@xmas_reward_max_karma = 15; + $@xmas_reward_hero_boss = 15; + $@xmas_reward_all_lists = 10; + $@xmas_reward_all_helpers = 10; + $@xmas_reward_tally_rare = 80; + $@xmas_reward_tally_common = 40; + // Guidance System + $@xmas_route_bit = (1 << 23); + // Basement Passage way + $@xmas_basement_passage = (1 << 24); + // Thrown Out + $@xmas_thrown_out_bit = (1 << 25); + // Quest Start (@xmas_state) + $@xmas_list_path2_state = 1; + $@xmas_list_path1_state = 2; + $@xmas_list_both_state = 3; + $@xmas_list_complete_state = 4; + $@xmas_list_deliver_state = 5; + // Helper SubQuest + $@xmas_helpers_start_state = 6; + $@xmas_helpers_done_state = 7; + // Reagents + $@xmas_reagents_start = 8; + $@xmas_reagents_done = 9; + // Boss Door State + $@xmas_boss_door_open_state = 10; + // Reward State + $@xmas_reward_start = 11; + $@xmas_reward1_done = 12; + $@xmas_reward2_done = 13; + $@xmas_reward_done = 14; + + // Boss Fight Required Level for Hard Mode + $@BossHardLevel = 70; + $@xmas_boss_start_bit = (1 << 26); + $@xmas_boss_hero_bit = (1 << 27); + $@xmas_boss_start_shift = 26; + $@xmas_boss_hero_shift = 27; + setarray $@xmas_boss_req$, "IronPotion", "DarkCrystal"; + setarray $@xmas_boss_amount, 15, 10; + if(getarraysize($@xmas_boss_amount) != getarraysize($@xmas_boss_req$)) + goto L_XmasError; + // Santas Helper quest rewards + setarray $@SantasHelper_Annual_Reward$, + "RedTurtleneck", + "YellowTurtleneck", + "LightBlueTurtleneck", + "PinkTurtleneck", + "OrangeTurtleneck", + "PurpleTurtleneck", + "KnitCap", + "KnitCap"; + + // Main Quest rewards + setarray $@xmas_present_from$, "Santa", "Orum"; + setarray $@xmas_rare_reward$, "FunkyChristmasSweater", "DarkChristmasSweater"; + setarray $@xmas_uncommon_reward$, "NutcrackerHat", "AmberChristmasSweater", "RedStockings", "PinkChristmasSweater", "BlueChristmasSweater"; + // Quest Side 0 Settings + setarray $@xmas_zero_reagents$, "ShockSweet", "EmptyBottle", "EmeraldPowder"; + setarray $@xmas_zero_reagents_names$, "Shock Sweet", "Empty Bottles", "Emerald Powders"; + setarray $@xmas_zero_reagents_amounts, 1, 4, 10; + if(getarraysize($@xmas_zero_reagents_amounts) != getarraysize($@xmas_zero_reagents$)) + goto L_XmasError; + + // Quest Side 1 Settings + setarray $@xmas_one_reagents$, "DarkCrystal", "IronPotion", "EmeraldPowder"; + setarray $@xmas_one_reagents_names$, "Dark Crystal", "Iron Potions", "Emerald Powders"; + setarray $@xmas_one_reagents_amounts, 1, 4, 10; + if(getarraysize($@xmas_one_reagents_amounts) != getarraysize($@xmas_one_reagents$)) + goto L_XmasError; + + // List Bits + $@xmas_all_lists_bit = (1 << 29); + setarray $@xmas_child_list, (1 << 8), (1 << 9), (1 << 10), (1 << 11), (1 << 12), (1 << 13), (1 << 14), (1 << 15); + setarray $@xmas_child_list_name$, "Ayasha", "Latif", "Charda", "Faris", "Rasin", "Ghada", "Rossy", "Kadiya"; + if(getarraysize($@xmas_child_list) != getarraysize($@xmas_child_list_name$)) + goto L_XmasError; + + $@xmas_perfect_list_count = getarraysize($@xmas_child_list); + $@xmas_required_list_count = (getarraysize($@xmas_child_list) / 2); + + // Santa's Helper + $@xmas_sh_bit = (1 << 22); + $@xmas_sh_purple_amount = 25; + $@xmas_sh_blue_amount = 20; + $@xmas_sh_green_amount = 5; + + // Main Helper Bit + $@xmas_helper_bit = (1 << 30); + $@xmas_all_helpers_bit = (1 << 28); + + // Acorns + $@xmas_helper_bit_acorns = (1 << 21); + $@xmas_acorn_amount = 10; + $@xmas_iron_potion_amount = 1; + + // Bedding + $@xmas_helper_bit_bed_starts = (1 << 16); + $@xmas_helper_bit_bed_ends = (1 << 17); + $@xmas_bedding_amount = 10; + + // Boxes + $@xmas_log_amount = 2; + + // Wrap + $@xmas_reed_amount = 2; + $@xmas_water_amount = 1; + $@xmas_wrap_reward = 1; + + // Wrap Dye Amounts + $@xmas_poa_amount = 2; + $@xmas_wrap_yellow_amount = 2; + $@xmas_wrap_ltblue_amount = 2; + $@xmas_wrap_purple_amount = 2; + $@xmas_wrap_green_amount = 2; + + // Present Return + $@xmas_present_amount = 5; + + // Shipping + $@xmas_wrap_amount = 1; + $@xmas_empty_box_amount = 1; + $@xmas_ship_present_amount = 1; + + // Glitter + $@xmas_helper_bit_glitter_starts = (1 << 18); + $@xmas_helper_bit_glitter_ends = (1 << 19); + $@xmas_red_amount = 5; + $@xmas_yellow_amount = 5; + + // Storage (Daily Xmas) + $@xmas_helper_bit_storage = (1 << 20); + // Good Daily Ammounts + $@xmas_good_level = 30; + $@xmas_good_cost = 12; + $@xmas_good_count = 3; + $@xmas_good_name$ = "Candy"; + $@xmas_good_friendly_name$ = "Candies"; + $@xmas_good_money = 500; + $@xmas_good_exp = 200; + + // Bad Daily Ammounts + $@xmas_bad_level = 30; + $@xmas_bad_cost = 12; + $@xmas_bad_count = 3; + + $@xmas_bad_name$ = "RedApple"; + $@xmas_bad_friendly_name$ = "Red Apples"; + $@xmas_bad_money = 500; + $@xmas_bad_exp = 200; + + //Boss Fight Reward + $@xmas_boss_bp = 50; + + // Helpers Flags needed to set $@xmas_all_helpers_bit + setarray $@xmas_helper_list, $@xmas_helper_bit_bed_ends, $@xmas_helper_bit_glitter_ends, $@xmas_helper_bit_storage, $@xmas_helper_bit_acorns, $@xmas_sh_bit; + $@xmas_perfect_helpers_count = getarraysize($@xmas_helper_list); + $@xmas_required_helpers_count = (getarraysize($@xmas_helper_list) / 2); + + // MobManager + setarray $@xmas_mob_names$, "Santa Slime", "Candied Slime", "Candied Slime"; + setarray $@xmas_mob_spawns, "1015", "1111", "1111"; + setarray $@xmas_mob_counts, 10, 5, 5; + setarray $@xmas_map_spawns$, "019-1", "019-3", "030-3"; + if(getarraysize($@xmas_mob_spawns) != getarraysize($@xmas_map_spawns$)) + goto L_XmasError; + if(getarraysize($@xmas_mob_names$) != getarraysize($@xmas_map_spawns$)) + goto L_XmasError; + if(getarraysize($@xmas_mob_counts) != getarraysize($@xmas_map_spawns$)) + goto L_XmasError; + + $@xmas_spawn_x1 = 54; + $@xmas_spawn_y1 = 48; + $@xmas_spawn_x2 = 79; + $@xmas_spawn_y2 = 89; + $@xmas_respawn_count = 9; + + $@start_month = $@xmas_start_month; + $@end_month = $@xmas_end_month; + $@start_day = 1; + $@end_day = $@xmas_reward_end_day; + $@reward_start_month = $@xmas_reward_start_month; + $@reward_start_day = $@xmas_reward_start_day; + + callfunc "GetEventTime"; + $@xmas_time = $@event_time; + + if($@xmas_time == 0 && $XMAS_TIME_KEY[5] < gettime(7)) + setarray $XMAS_TIME_KEY, $XMAS_TIME_KEY[0],$XMAS_TIME_KEY[1],$XMAS_TIME_KEY[2],$XMAS_TIME_KEY[3],$XMAS_TIME_KEY[4],gettime(7); + goto L_Return; + +L_Return: + // technically this only needs to skip the npctimer in SpawnMobs, + // but this is a low-level debug setting so whatever. + if (debug >= 2) end; + callfunc "SpawnMobs"; + callfunc "PresentHandler"; + callfunc "ReplaceTrees"; + end; + +L_XmasError: + debugmes "Xmas is Dead Jim."; + mapexit; +} |