Merge pull request #29 from DeKaN/extract-world-sno

Extract World SNO ids into enum and replace int "magic constants"
This commit is contained in:
Mr. Pink 2022-08-23 09:07:16 +10:00 committed by GitHub
commit 197e61c442
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
48 changed files with 2545 additions and 2140 deletions

View File

@ -1,4 +1,4 @@
//Blizzless Project 2022
//Blizzless Project 2022
using System;
//Blizzless Project 2022
using System.Collections.Generic;
@ -8,6 +8,7 @@ using System.Linq;
using System.Text;
//Blizzless Project 2022
using System.Threading.Tasks;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.Core.MPQ
{
@ -88186,643 +88187,7 @@ namespace DiIiS_NA.Core.MPQ
}
public static Dictionary<string, int> LoadWorlds()
{
Dictionary<string, int> DictSNOWorlds = new Dictionary<string, int>();
#region Worlds
DictSNOWorlds.Add("a2c2dun_zolt_treasurehunter", 2812);
DictSNOWorlds.Add("trdun_leoric_level01", 2826);
DictSNOWorlds.Add("a1trdun_level01", 50579);
DictSNOWorlds.Add("a1trdun_level04", 50582);
DictSNOWorlds.Add("a1trdun_level06", 50584);
DictSNOWorlds.Add("a1trdun_level07", 50585);
DictSNOWorlds.Add("a2c1dun_swr_caldeum_01", 50588);
DictSNOWorlds.Add("a2c2dun_cave_random01", 50589);
DictSNOWorlds.Add("a2dun_zolt_sw_random01", 50594);
DictSNOWorlds.Add("a2dun_zolt_timed01_level01", 50596);
DictSNOWorlds.Add("a2dun_zolt_level01", 50610);
DictSNOWorlds.Add("a2dun_zolt_level02", 50611);
DictSNOWorlds.Add("a2dun_zolt_level03", 50612);
DictSNOWorlds.Add("a2dun_zolt_lobby", 50613);
DictSNOWorlds.Add("axe_bad_data", 50623);
DictSNOWorlds.Add("axe_flatworld", 50627);
DictSNOWorlds.Add("caout_interior_d", 50657);
DictSNOWorlds.Add("caout_mine_abandoned_cellara", 50658);
DictSNOWorlds.Add("pvp_map2", 50715);
DictSNOWorlds.Add("pvp_maze_arena_01", 50716);
DictSNOWorlds.Add("pvp_octagon_arena_01", 50717);
DictSNOWorlds.Add("pvp_pillar_01", 50718);
DictSNOWorlds.Add("pvp_stairs_arena_01", 50719);
DictSNOWorlds.Add("tod_loadscreen", 50814);
DictSNOWorlds.Add("caout_interior_f", 51270);
DictSNOWorlds.Add("a2c3dun_aqd_oasis_level01", 57491);
DictSNOWorlds.Add("a1c6_spidercave_01", 58231);
DictSNOWorlds.Add("a2dun_swr_adria_level01", 58493);
DictSNOWorlds.Add("trdun_leoric_level02", 58982);
DictSNOWorlds.Add("trdun_leoric_level03", 58983);
DictSNOWorlds.Add("a2dun_aqd_special_01", 59486);
DictSNOWorlds.Add("a2dun_zolt_bossfight_level04", 60193);
DictSNOWorlds.Add("trdun_cave_nephalem_01", 60393);
DictSNOWorlds.Add("trdun_cave_nephalem_02", 60394);
DictSNOWorlds.Add("trdun_cave_nephalem_03", 60395);
DictSNOWorlds.Add("caout_khamsin_mine", 60432);
DictSNOWorlds.Add("trdun_crypt_skeletonkingcrown_01", 60600);
DictSNOWorlds.Add("trdun_cain_intro", 60713);
DictSNOWorlds.Add("a2_belial_room_01", 60756);
DictSNOWorlds.Add("caout_interior_g_stranded2", 60838);
DictSNOWorlds.Add("a2dun_zolt_head_random01", 61631);
DictSNOWorlds.Add("a2trdun_cave_oasis_random01", 62568);
DictSNOWorlds.Add("a2trdun_cave_oasis_random02", 62569);
DictSNOWorlds.Add("trout_sub240_fields_cellara", 62706);
DictSNOWorlds.Add("trout_adriascellar", 62751);
DictSNOWorlds.Add("a2dun_aqd_special_a", 62776);
DictSNOWorlds.Add("a2dun_aqd_special_b", 62779);
DictSNOWorlds.Add("caout_town", 70885);
DictSNOWorlds.Add("trout_town", 71150);
DictSNOWorlds.Add("trdun_crypt_falsepassage_01", 72636);
DictSNOWorlds.Add("trdun_crypt_falsepassage_02", 72637);
DictSNOWorlds.Add("trout_townattack", 72882);
DictSNOWorlds.Add("a1trdun_king_level08", 73261);
DictSNOWorlds.Add("a1dun_leor_manor", 75049);
DictSNOWorlds.Add("a3dun_keep_level04", 75434);
DictSNOWorlds.Add("trdun_butcherslair_02", 78839);
DictSNOWorlds.Add("pvp_caout_arena_01", 79100);
DictSNOWorlds.Add("a3dun_crater_st_level01", 79401);
DictSNOWorlds.Add("a1trdun_cath_tower_of_power", 80057);
DictSNOWorlds.Add("a2dun_zolt_shadowrealm_level01", 80589);
DictSNOWorlds.Add("trout_oldtistram_cellar", 80730);
DictSNOWorlds.Add("a3dun_crater_st_level02", 80763);
DictSNOWorlds.Add("a3dun_rmpt_level01", 81019);
DictSNOWorlds.Add("a3dun_crater_level_01", 81049);
DictSNOWorlds.Add("a1_cave_fields_scavengerden_level01", 81163);
DictSNOWorlds.Add("a1_cave_fields_scavengerden_level02", 81164);
DictSNOWorlds.Add("a2_belial_room_intro", 81715);
DictSNOWorlds.Add("a3dun_crater_level_02", 81934);
DictSNOWorlds.Add("highlands_randomdrlg_westtower_level01", 82076);
DictSNOWorlds.Add("highlands_randomdrlg_westtower_level02", 82313);
DictSNOWorlds.Add("a1_cave_fields_minecavea_level01", 82370);
DictSNOWorlds.Add("a1_cave_fields_minecavea_level02", 82371);
DictSNOWorlds.Add("a1_cave_highlands_goatcavea_level01", 82502);
DictSNOWorlds.Add("a1_cave_highlands_goatcavea_level02", 82511);
DictSNOWorlds.Add("trout_oldtristram_treecave", 84518);
DictSNOWorlds.Add("a3dun_crater_st_level04", 85201);
DictSNOWorlds.Add("a2dun_cald", 86594);
DictSNOWorlds.Add("trout_tristram_leahsroom", 86856);
DictSNOWorlds.Add("trout_highlands_dunexteriora", 87707);
DictSNOWorlds.Add("trdun_crypt_skeletonkingcrown_02", 92126);
DictSNOWorlds.Add("a3dun_rmpt_level02", 93099);
DictSNOWorlds.Add("a3dun_keep_level03", 93104);
DictSNOWorlds.Add("trdun_jail_level01", 94676);
DictSNOWorlds.Add("a3_battlefields_02", 95804);
DictSNOWorlds.Add("pvp_butcher_arena_01", 102100);
DictSNOWorlds.Add("trdun_crypt_fields_flooded_memories_level01", 102299);
DictSNOWorlds.Add("gluttony_boss", 103209);
DictSNOWorlds.Add("a4dun_garden3_spireentrance", 103910);
DictSNOWorlds.Add("trout_vendor_tinker", 104446);
DictSNOWorlds.Add("a1trdun_level05_templar", 105406);
DictSNOWorlds.Add("trout_oldtistram_cellar_1", 106746);
DictSNOWorlds.Add("trout_oldtistram_cellar_2", 106752);
DictSNOWorlds.Add("trout_oldtistram_cellar_3", 107050);
DictSNOWorlds.Add("trout_fields_vendor_curios", 107445);
DictSNOWorlds.Add("a4dun_heaven_1000_monsters_fight", 109143);
DictSNOWorlds.Add("trout_tristram_inn", 109362);
DictSNOWorlds.Add("a4dun_garden_of_hope_01", 109513);
DictSNOWorlds.Add("a4dun_hell_portal_01", 109525);
DictSNOWorlds.Add("a4dun_hell_portal_02", 109530);
DictSNOWorlds.Add("a4dun_diablo_arena", 109561);
DictSNOWorlds.Add("a2dun_cald_uprising", 109894);
DictSNOWorlds.Add("a2dun_portalroulette_a", 111376);
DictSNOWorlds.Add("a2dun_boneyard_worm_cave_01", 111666);
DictSNOWorlds.Add("a2trdun_boneyard_spider_cave_01", 111670);
DictSNOWorlds.Add("pvp_cald_swr_ver2", 112864);
DictSNOWorlds.Add("a1trdun_tyrael_level09", 117405);
DictSNOWorlds.Add("a3dun_crater_level_03", 119290);
DictSNOWorlds.Add("a3dun_crater_st_level01b", 119641);
DictSNOWorlds.Add("a3dun_crater_st_level04b", 119650);
DictSNOWorlds.Add("fields_cave_swordofjustice_level01", 119888);
DictSNOWorlds.Add("a3dun_azmodan_arena", 121214);
DictSNOWorlds.Add("a4dun_spire_level_01", 121579);
DictSNOWorlds.Add("a2dun_zolt_blood02", 123183);
DictSNOWorlds.Add("pvp_neph_arena", 129123);
DictSNOWorlds.Add("a4dun_spire_level_02", 129305);
DictSNOWorlds.Add("a4dun_spire_level_03", 129306);
DictSNOWorlds.Add("trout_tristram_cainshouse", 130161);
DictSNOWorlds.Add("pvp_crypt_arena_01", 131908);
DictSNOWorlds.Add("a1_cave_highlands_vendorrescue", 132995);
DictSNOWorlds.Add("caout_oasis_cellar_d_refugeecellar", 134820);
DictSNOWorlds.Add("caout_oasis_cellar_c_zakarwamerchant", 134822);
DictSNOWorlds.Add("a1_cave_wilderness_den_level01", 135193);
DictSNOWorlds.Add("a1dun_labyrinth_01", 135713);
DictSNOWorlds.Add("caout_stingingwinds_randomcellar_1", 136058);
DictSNOWorlds.Add("caout_stingingwinds_randomcellar_2", 136116);
DictSNOWorlds.Add("caout_stingingwinds_randomcellar_3", 136136);
DictSNOWorlds.Add("a3dun_keep_level05", 136415);
DictSNOWorlds.Add("trout_oldtristram_cellar_f", 136441);
DictSNOWorlds.Add("caout_oasis_randomcellar_1", 136900);
DictSNOWorlds.Add("caout_oasis_randomcellar_2", 136932);
DictSNOWorlds.Add("caout_oasis_randomcellar_3", 136936);
DictSNOWorlds.Add("pvp_zolt_ruins_arena", 137439);
DictSNOWorlds.Add("a3dun_crater_st_level02b", 139272);
DictSNOWorlds.Add("pvp_crypt_arena_02", 139469);
DictSNOWorlds.Add("a4dun_sigil_a", 139965);
DictSNOWorlds.Add("a3dun_bridge_interior_random01", 140444);
DictSNOWorlds.Add("pvp_craterst_arena", 140638);
DictSNOWorlds.Add("a2_event_dyingman_mine", 140652);
DictSNOWorlds.Add("a4dun_sigil_b", 140709);
DictSNOWorlds.Add("a2dun_swr_swr_to_oasis_level01", 146619);
DictSNOWorlds.Add("battlenet_mainscreen", 148534);
DictSNOWorlds.Add("caout_alcarnus_randomcellar_1", 148899);
DictSNOWorlds.Add("caout_alcarnus_randomcellar_2", 148907);
DictSNOWorlds.Add("caout_alcarnus_randomcellar_3", 148908);
DictSNOWorlds.Add("limbo", 149898);
DictSNOWorlds.Add("a4dun_diablo_shadowrealm_01", 153670);
DictSNOWorlds.Add("trdun_crypt_skeletonkingcrown_00", 154587);
DictSNOWorlds.Add("a2dun_aqd_oasis_randomfacepuzzle_small", 157882);
DictSNOWorlds.Add("a2dun_aqd_oasis_randomfacepuzzle_large", 158593);
DictSNOWorlds.Add("a2trdun_cave_oasis_random02_level02", 161011);
DictSNOWorlds.Add("caout_refugeecamp", 161472);
DictSNOWorlds.Add("a1trdun_cave_old_ruins_random01", 161961);
DictSNOWorlds.Add("caout_oasis_randomcellar_4", 162790);
DictSNOWorlds.Add("trdun_crypt_fields_flooded_memories_level02", 165797);
DictSNOWorlds.Add("a4dun_libraryoffate", 166640);
DictSNOWorlds.Add("trout_townattack_chapelcellar_a", 167721);
DictSNOWorlds.Add("a2dun_zolt_timed01_level02", 168196);
DictSNOWorlds.Add("pvp_trainingground", 168230);
DictSNOWorlds.Add("a2dun_cave_mapdungeon_level01", 169477);
DictSNOWorlds.Add("pvp_traininginn", 170375);
DictSNOWorlds.Add("trout_highlands_servanthouse_cellar_vendor", 171189);
DictSNOWorlds.Add("a3dun_hub_keep", 172909);
DictSNOWorlds.Add("a2_swr_fcauseway_01", 174434);
DictSNOWorlds.Add("trout_tristram_cainshouse_event", 174449);
DictSNOWorlds.Add("a3dun_keep_random_01", 174516);
DictSNOWorlds.Add("caout_hub_inn", 174530);
DictSNOWorlds.Add("a3dun_keep_random_02", 174555);
DictSNOWorlds.Add("a3dun_keep_random_03", 174560);
DictSNOWorlds.Add("a3dun_keep_random_04", 174665);
DictSNOWorlds.Add("a4dun_heaven_hub_keep", 178152);
DictSNOWorlds.Add("a4dun_sigil_d", 180517);
DictSNOWorlds.Add("a1dun_spidercave_01", 180550);
DictSNOWorlds.Add("a4dun_sigil_c", 181644);
DictSNOWorlds.Add("a3dun_keep_hub_inn", 182875);
DictSNOWorlds.Add("a4dun_heaven_1000_monsters_fight_entrance", 182944);
DictSNOWorlds.Add("a1dun_spidercave_02", 182976);
DictSNOWorlds.Add("a4dun_heaven_keep_hub_inn", 183800);
DictSNOWorlds.Add("a3dun_keep_random_cellar_01", 185217);
DictSNOWorlds.Add("a3dun_keep_random_cellar_02", 185247);
DictSNOWorlds.Add("a3dun_hub_adria_tower", 186552);
DictSNOWorlds.Add("a3dun_icecaves_random_01", 189259);
DictSNOWorlds.Add("a3dun_icecaves_timed_01", 189910);
DictSNOWorlds.Add("battlenet_act2screen", 191376);
DictSNOWorlds.Add("battlenet_act3screen", 191389);
DictSNOWorlds.Add("battlenet_act4screen", 191390);
DictSNOWorlds.Add("a2dun_aqd_oasis_level01", 192640);
DictSNOWorlds.Add("a2dun_aqd_oasis_level00", 192687);
DictSNOWorlds.Add("a1_cave_wilderness_den_level02", 194231);
DictSNOWorlds.Add("a2dun_cave_mapdungeon_level02", 194238);
DictSNOWorlds.Add("a2trdun_cave_oasis_random01_level02", 194240);
DictSNOWorlds.Add("battlenet_pvpscreen", 194282);
DictSNOWorlds.Add("caout_cellar_alcarnus_main", 195200);
DictSNOWorlds.Add("a2_event_priceofmercy_cellar", 195997);
DictSNOWorlds.Add("a2dun_zolt_random_portalroulette_02", 196036);
DictSNOWorlds.Add("a2_rockworm_cellar_cave", 196222);
DictSNOWorlds.Add("a4dun_diablo_arena_phase3", 196292);
DictSNOWorlds.Add("a3dun_keep_random_cellar_03", 197622);
DictSNOWorlds.Add("a4dun_spire_level_00", 198281);
DictSNOWorlds.Add("trout_wilderness_corpsehouse", 199388);
DictSNOWorlds.Add("a2dun_cave_bloodvial_01", 204628);
DictSNOWorlds.Add("a2dun_cave_bloodvial_02", 204674);
DictSNOWorlds.Add("a3dun_hub_adria_tower_intro", 204707);
DictSNOWorlds.Add("a4dun_spire_diabloentrance", 205399);
DictSNOWorlds.Add("a3dun_bridge_interior_random02", 205422);
DictSNOWorlds.Add("a4dun_spire_level_04", 210725);
DictSNOWorlds.Add("a1dun_random_level01", 211471);
DictSNOWorlds.Add("a4dun_spire_exterior", 214956);
DictSNOWorlds.Add("a2trdun_boneyard_spider_cave_02", 218967);
DictSNOWorlds.Add("a2dun_boneyard_worm_cave_02", 218970);
DictSNOWorlds.Add("a4dun_garden_of_hope_random", 219659);
DictSNOWorlds.Add("a2c2dun_cave_random01_level02", 220804);
DictSNOWorlds.Add("a3dun_icecaves_random_01_level_02", 221688);
DictSNOWorlds.Add("a3dun_icecaves_timed_01_level_02", 221689);
DictSNOWorlds.Add("a3dun_keep_random_01_level_02", 221748);
DictSNOWorlds.Add("a3dun_keep_random_02_level_02", 221749);
DictSNOWorlds.Add("a3dun_keep_random_03_level_02", 221750);
DictSNOWorlds.Add("a3dun_keep_random_04_level_02", 221751);
DictSNOWorlds.Add("a2dun_zolt_sw_random01_level02", 222575);
DictSNOWorlds.Add("a1dun_crypt_dev_hell", 222591);
DictSNOWorlds.Add("utility_server_world", 223474);
DictSNOWorlds.Add("pvp_keep_arena", 225850);
DictSNOWorlds.Add("a3_battlefields_03", 226713);
DictSNOWorlds.Add("pvp_garden_arena", 227206);
DictSNOWorlds.Add("a1trdun_cave_qa_well", 230288);
DictSNOWorlds.Add("x1_bogcave_random01", 234962);
DictSNOWorlds.Add("pvp_leoricsgarden_arena", 235229);
DictSNOWorlds.Add("x1_bogcave_random02", 235882);
DictSNOWorlds.Add("pvp_zolt_small_arena", 236154);
DictSNOWorlds.Add("battlenet_act1screen", 238775);
DictSNOWorlds.Add("x1_pof_dungeonlayout_level_01", 245391);
DictSNOWorlds.Add("x1_pof_dungeonlayout_level_02", 245402);
DictSNOWorlds.Add("x1_test_challengetestworld", 245736);
DictSNOWorlds.Add("x1_westm_int_gen_c_miser", 246369);
DictSNOWorlds.Add("x1_pof_dungeonboss_01", 252144);
DictSNOWorlds.Add("qa_pvp_test_map", 252723);
DictSNOWorlds.Add("uber_bossworld1", 256111);
DictSNOWorlds.Add("uber_bossworld2", 256112);
DictSNOWorlds.Add("uber_bossworld3", 256607);
DictSNOWorlds.Add("uber_portalworld", 257117);
DictSNOWorlds.Add("pvp_regicide_prototype_small", 258624);
DictSNOWorlds.Add("x1_westm_zone_01", 261712);
DictSNOWorlds.Add("x1_westm_zone_03", 263494);
DictSNOWorlds.Add("flatworld_pvp_demo", 265834);
DictSNOWorlds.Add("x1_bog_01", 267412);
DictSNOWorlds.Add("x1_bog_bogpeople_cellar_c", 269874);
DictSNOWorlds.Add("x1_fortress_level_01", 271233);
DictSNOWorlds.Add("x1_fortress_level_02", 271235);
DictSNOWorlds.Add("x1_bog_bogpeople_cellar_d", 271533);
DictSNOWorlds.Add("x1_bog_bogpeople_cellar_a", 272172);
DictSNOWorlds.Add("pvp_duel_box", 273257);
DictSNOWorlds.Add("x1_fortress_temp_malthaelarena", 273433);
DictSNOWorlds.Add("pvp_field_test", 273769);
DictSNOWorlds.Add("pvp_z_lane_test", 274044);
DictSNOWorlds.Add("pvp_peanut_longlane", 274658);
DictSNOWorlds.Add("pvp_duel_small", 275192);
DictSNOWorlds.Add("x1_pand_ext_level_01", 275415);
DictSNOWorlds.Add("x1_lr_tileset_cath", 275921);
DictSNOWorlds.Add("x1_lr_tileset_corruptspire", 275926);
DictSNOWorlds.Add("x1_lr_tileset_leorics", 275930);
DictSNOWorlds.Add("x1_lr_tileset_rootcave", 275943);
DictSNOWorlds.Add("x1_lr_tileset_wormcaves", 275944);
DictSNOWorlds.Add("x1_lr_tileset_zoltarchives", 275945);
DictSNOWorlds.Add("x1_lr_tileset_crypt", 275946);
DictSNOWorlds.Add("x1_lr_tileset_floodedcave", 275947);
DictSNOWorlds.Add("x1_lr_tileset_icecave", 275960);
DictSNOWorlds.Add("x1_lr_hubworld", 276032);
DictSNOWorlds.Add("pvp_three_control", 276095);
DictSNOWorlds.Add("pvp_murderball_test_01", 277669);
DictSNOWorlds.Add("pvp_duel_small_multi", 279626);
DictSNOWorlds.Add("x1_bog_adriaritual", 282460);
DictSNOWorlds.Add("x1_catacombs_level01", 283552);
DictSNOWorlds.Add("x1_catacombs_level02", 283566);
DictSNOWorlds.Add("x1_westm_rescueinterior_01", 284491);
DictSNOWorlds.Add("x1_westm_rescueinterior_02", 284492);
DictSNOWorlds.Add("battlenet_act5screen", 288104);
DictSNOWorlds.Add("x1_lr_level_01", 288454);
DictSNOWorlds.Add("x1_lr_level_02", 288685);
DictSNOWorlds.Add("x1_lr_level_03", 288687);
DictSNOWorlds.Add("x1_lr_level_04", 288798);
DictSNOWorlds.Add("x1_lr_level_05", 288800);
DictSNOWorlds.Add("x1_lr_level_06", 288802);
DictSNOWorlds.Add("x1_lr_level_07", 288804);
DictSNOWorlds.Add("x1_lr_level_08", 288810);
DictSNOWorlds.Add("x1_lr_level_09", 288814);
DictSNOWorlds.Add("x1_lr_level_10", 288816);
DictSNOWorlds.Add("x1_lr_tileset_zoltruins", 288823);
DictSNOWorlds.Add("x1_lr_tileset_sewers", 288843);
DictSNOWorlds.Add("x1_westm_int_gen_a_01", 288972);
DictSNOWorlds.Add("x1_westm_custom_alley_01_rat", 289523);
DictSNOWorlds.Add("x1_pand_ext_gateoverlook", 291941);
DictSNOWorlds.Add("x1_pand_hexmaze", 294585);
DictSNOWorlds.Add("x1_westm_int_rescue_guards_01", 294633);
DictSNOWorlds.Add("x1_pand_batteringram", 295225);
DictSNOWorlds.Add("x1_adria_boss_arena_02", 297771);
DictSNOWorlds.Add("x1_pand_hexmaze_en_01", 302603);
DictSNOWorlds.Add("x1_westm_int_gen_b_01madman", 302733);
DictSNOWorlds.Add("x1_westm_int_gen_a_01zombiesorcerer", 302876);
DictSNOWorlds.Add("x1_westm_int_gen_b_02doomedwoman", 303058);
DictSNOWorlds.Add("x1_westm_int_gen_a02necromancer", 303361);
DictSNOWorlds.Add("x1_westm_scoundrelevent", 303430);
DictSNOWorlds.Add("x1_westmarch_hub", 304235);
DictSNOWorlds.Add("x1_westm_alley_rats", 304358);
DictSNOWorlds.Add("x1_westm_intro", 306549);
DictSNOWorlds.Add("x1_pand_hexmaze_2", 306747);
DictSNOWorlds.Add("x1_westm_int_rescue_guards_02", 306915);
DictSNOWorlds.Add("x1_urzael_arena", 308446);
DictSNOWorlds.Add("x1_westmarch_cath_int", 308549);
DictSNOWorlds.Add("x1_westmarch_overlook_d", 308705);
DictSNOWorlds.Add("x1_pand_hexmaze_en_02", 310706);
DictSNOWorlds.Add("x1_westm_reformedcultist", 310845);
DictSNOWorlds.Add("pvp_square_test_01", 315043);
DictSNOWorlds.Add("x1_westm_int_gen_a_01_captainstokely", 321968);
DictSNOWorlds.Add("x1_pand_ext_cellar_a", 322531);
DictSNOWorlds.Add("x1_lr_tileset_keep_war", 322661);
DictSNOWorlds.Add("x1_lr_tileset_keep_forge", 322662);
DictSNOWorlds.Add("x1_lr_tileset_keep_river", 322663);
DictSNOWorlds.Add("x1_lr_tileset_aqueducts", 322710);
DictSNOWorlds.Add("x1_lr_tileset_spidercaves", 322726);
DictSNOWorlds.Add("x1_lr_tileset_crater", 323565);
DictSNOWorlds.Add("x1_lr_tileset_cath_large", 324418);
DictSNOWorlds.Add("x1_lr_tileset_cath_small", 324425);
DictSNOWorlds.Add("x1_lr_tileset_leorics_small", 327401);
DictSNOWorlds.Add("x1_lr_tileset_crypt_small", 327768);
DictSNOWorlds.Add("x1_lr_tileset_zoltarchives_small", 327864);
DictSNOWorlds.Add("x1_lr_tileset_cath_extralarge", 328037);
DictSNOWorlds.Add("x1_westm_int_gen_c_01_skeleton_rush", 328325);
DictSNOWorlds.Add("x1_westm_int_gen_b_02_var_c_yard_rush", 328344);
DictSNOWorlds.Add("x1_malthael_boss_arena", 328484);
DictSNOWorlds.Add("x1_westm_int_gen_c_03_elements", 328933);
DictSNOWorlds.Add("x1_westm_int_gen_b_03_var_c_panic", 330207);
DictSNOWorlds.Add("x1_westm_templar_event", 330391);
DictSNOWorlds.Add("x1_lr_tileset_exterior_tristramfields", 330465);
DictSNOWorlds.Add("x1_westm_cellar_corpsefinder", 330761);
DictSNOWorlds.Add("x1_lr_tileset_westmarch", 331263);
DictSNOWorlds.Add("x1_lr_tileset_abattoir", 331384);
DictSNOWorlds.Add("x1_lr_tileset_bogcave", 331385);
DictSNOWorlds.Add("x1_lr_tileset_fortress", 331387);
DictSNOWorlds.Add("x1_lr_tileset_catacombs", 331388);
DictSNOWorlds.Add("x1_lr_tileset_hexmaze", 331389);
DictSNOWorlds.Add("x1_a5_challenge_westm_dreadghosts", 331944);
DictSNOWorlds.Add("x1_lr_tileset_exterior_bog", 332284);
DictSNOWorlds.Add("x1_tristram_adventure_mode_hub", 332336);
DictSNOWorlds.Add("x1_lr_tileset_aqueducts_small", 333443);
DictSNOWorlds.Add("x1_westm_int_gen_b_03_var_b_ghostchase", 335058);
DictSNOWorlds.Add("x1_lr_tileset_aqueducts_large", 335192);
DictSNOWorlds.Add("x1_lr_tileset_corruptspire_large", 335410);
DictSNOWorlds.Add("x1_lr_tileset_crypt_large", 335922);
DictSNOWorlds.Add("x1_lr_tileset_crater_small", 335992);
DictSNOWorlds.Add("x1_lr_tileset_floodedcave_large", 336064);
DictSNOWorlds.Add("x1_lr_tileset_icecave_large", 336068);
DictSNOWorlds.Add("x1_lr_tileset_keep_forge_large", 336073);
DictSNOWorlds.Add("x1_lr_tileset_keep_river_large", 336077);
DictSNOWorlds.Add("x1_lr_tileset_keep_war_large", 336078);
DictSNOWorlds.Add("x1_lr_tileset_leorics_large", 336083);
DictSNOWorlds.Add("x1_lr_tileset_rootcave_large", 336085);
DictSNOWorlds.Add("x1_lr_tileset_sewers_large", 336086);
DictSNOWorlds.Add("x1_lr_tileset_spidercaves_large", 336096);
DictSNOWorlds.Add("x1_lr_tileset_wormcaves_large", 336104);
DictSNOWorlds.Add("x1_lr_tileset_zoltarchives_large", 336137);
DictSNOWorlds.Add("x1_lr_tileset_zoltruins_large", 336139);
DictSNOWorlds.Add("x1_lr_tileset_corruptspire_small", 336143);
DictSNOWorlds.Add("x1_lr_tileset_floodedcave_small", 336148);
DictSNOWorlds.Add("x1_lr_tileset_icecave_small", 336149);
DictSNOWorlds.Add("x1_lr_tileset_keep_forge_small", 336234);
DictSNOWorlds.Add("x1_lr_tileset_keep_river_small", 336239);
DictSNOWorlds.Add("x1_lr_tileset_keep_war_small", 336240);
DictSNOWorlds.Add("x1_lr_tileset_rootcave_small", 336242);
DictSNOWorlds.Add("x1_lr_tileset_sewers_small", 336244);
DictSNOWorlds.Add("x1_lr_tileset_spidercaves_small", 336246);
DictSNOWorlds.Add("x1_bogcave_random01_b", 336572);
DictSNOWorlds.Add("x1_bogcave_random02_b", 336573);
DictSNOWorlds.Add("x1_westm_int_gen_a_03_kingevent01", 336844);
DictSNOWorlds.Add("x1_westm_int_gen_b_02_kingevent02", 336852);
DictSNOWorlds.Add("x1_westm_int_gen_a_04_kingevent03", 336902);
DictSNOWorlds.Add("x1_lr_tileset_wormcaves_small", 337001);
DictSNOWorlds.Add("x1_lr_tileset_zoltruins_small", 337003);
DictSNOWorlds.Add("x1_pand_ext_2_battlefields", 338600);
DictSNOWorlds.Add("x1_westm_deathorb_gideonscourt", 338891);
DictSNOWorlds.Add("x1_abattoir_random01", 338930);
DictSNOWorlds.Add("x1_westm_graveyard_deathorb", 338944);
DictSNOWorlds.Add("x1_abattoir_random01_b", 338968);
DictSNOWorlds.Add("x1_abattoir_random02", 338976);
DictSNOWorlds.Add("x1_abattoir_random02_b", 338977);
DictSNOWorlds.Add("x1_westm_deathorb_kerwinsrow", 339151);
DictSNOWorlds.Add("x1_heaven_pandemonium_portal", 339160);
DictSNOWorlds.Add("x1_pand_ext_batteringram_entrance_a", 339254);
DictSNOWorlds.Add("x1_westm_scoundrelevent_level02", 340624);
DictSNOWorlds.Add("x1_catacombs_fakeentrance_02", 341037);
DictSNOWorlds.Add("x1_catacombs_fakeentrance_03", 341038);
DictSNOWorlds.Add("x1_catacombs_fakeentrance_04", 341040);
DictSNOWorlds.Add("x1_catacombs_jeweler_1", 342109);
DictSNOWorlds.Add("x1_lr_tileset_pony", 343942);
DictSNOWorlds.Add("x1_lr_tileset_pony_large", 343943);
DictSNOWorlds.Add("x1_lr_tileset_pony_small", 343944);
DictSNOWorlds.Add("x1_fortress_malthael_entrance", 346410);
DictSNOWorlds.Add("x1_lr_tileset_exterior_wilderness", 346912);
DictSNOWorlds.Add("x1_lr_tileset_exterior_highlands", 347368);
DictSNOWorlds.Add("x1_lr_tileset_exterior_gardensofhope1", 347749);
DictSNOWorlds.Add("x1_lr_tileset_exterior_gardensofhope2", 347750);
DictSNOWorlds.Add("x1_lr_tileset_exterior_gardensofhope3", 347751);
DictSNOWorlds.Add("x1_lr_tileset_exterior_graveyard", 347861);
DictSNOWorlds.Add("x1_lr_tileset_exterior_pandext", 347903);
DictSNOWorlds.Add("x1_lr_tileset_breakup_wortham", 348606);
DictSNOWorlds.Add("x1_lr_tileset_exterior_boneyards", 349173);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers1_small", 350309);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers2_small", 350310);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers3_small", 350311);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers4_small", 350312);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers5_small", 350313);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers6_small", 350314);
DictSNOWorlds.Add("x1_lr_tileset_cratertowers7_small", 350315);
DictSNOWorlds.Add("x1_lr_tileset_exterior_ramparts1", 351261);
DictSNOWorlds.Add("x1_lr_tileset_exterior_ramparts2", 351269);
DictSNOWorlds.Add("x1_lr_tileset_exterior_ramparts3", 351270);
DictSNOWorlds.Add("x1_lr_tileset_exterior_rampartsdamaged1", 351271);
DictSNOWorlds.Add("x1_lr_tileset_exterior_rampartsdamaged2", 351272);
DictSNOWorlds.Add("x1_lr_tileset_exterior_rampartsdamaged3", 351273);
DictSNOWorlds.Add("x1_westm_cellar_kids", 351793);
DictSNOWorlds.Add("x1_westm_cellar_ruffians", 351794);
DictSNOWorlds.Add("x1_westm_int_gen_c_03_dogs", 357501);
DictSNOWorlds.Add("x1_westm_int_gen_c_03_deathmaiden", 357502);
DictSNOWorlds.Add("x1_pand_ext_cellar_b", 357650);
DictSNOWorlds.Add("x1_pand_ext_cellar_c", 357653);
DictSNOWorlds.Add("x1_pand_ext_cellar_d", 357656);
DictSNOWorlds.Add("x1_pand_ext_cellar_e", 357658);
DictSNOWorlds.Add("x1_catacombs_jeweler_2", 358554);
DictSNOWorlds.Add("x1_westm_int_gen_c_01_zombiefireplace", 358641);
DictSNOWorlds.Add("x1_bogcave_random_connector", 358955);
DictSNOWorlds.Add("x1_bog_bogpeople_cellar_b", 359862);
DictSNOWorlds.Add("x1_lr_tileset_hexmaze_large", 360736);
DictSNOWorlds.Add("x1_lr_tileset_hexmaze_small", 360737);
DictSNOWorlds.Add("x1_lr_tileset_catacombs_large", 360756);
DictSNOWorlds.Add("x1_lr_tileset_catacombs_small", 360757);
DictSNOWorlds.Add("x1_lr_tileset_bogcave_large", 360768);
DictSNOWorlds.Add("x1_lr_tileset_bogcave_small", 360769);
DictSNOWorlds.Add("x1_lr_tileset_fortress_small", 360796);
DictSNOWorlds.Add("x1_lr_tileset_fortress_large", 360797);
DictSNOWorlds.Add("x1_lr_tileset_abattoir_large", 360811);
DictSNOWorlds.Add("x1_lr_tileset_abattoir_small", 360812);
DictSNOWorlds.Add("x1_lr_tileset_westmarch_small", 360815);
DictSNOWorlds.Add("x1_lr_tileset_westmarch_large", 360816);
DictSNOWorlds.Add("x1_lr_tileset_westmarchfire", 360823);
DictSNOWorlds.Add("x1_lr_tileset_westmarchfire_small", 360835);
DictSNOWorlds.Add("x1_lr_tileset_westmarchfire_large", 360836);
DictSNOWorlds.Add("x1_lr_tileset_fortressislands", 362155);
DictSNOWorlds.Add("x1_lr_tileset_fortressislands_small", 362175);
DictSNOWorlds.Add("x1_lr_tileset_hellportala_small", 362178);
DictSNOWorlds.Add("x1_lr_tileset_hellportalb_small", 362187);
DictSNOWorlds.Add("x1_lr_tileset_exterior_graveyard_small", 363977);
DictSNOWorlds.Add("x1_lr_tileset_exterior_bog_small", 363998);
DictSNOWorlds.Add("x1_lr_tileset_exterior_pandext_small", 364270);
DictSNOWorlds.Add("x1_lr_tileset_exterior_pandext_large", 364271);
DictSNOWorlds.Add("x1_lr_tileset_exterior_graveyard_large", 364391);
DictSNOWorlds.Add("x1_lr_tileset_exterior_bog_large", 364392);
DictSNOWorlds.Add("x1_lr_tileset_exterior_boneyards_large", 364533);
DictSNOWorlds.Add("a4dun_uber_diablo_shadowrealm_01", 365973);
DictSNOWorlds.Add("x1_lr_tileset_event_crypt_udderchaos", 366326);
DictSNOWorlds.Add("x1_westm_int_blacksmith", 368426);
DictSNOWorlds.Add("x1_lr_tileset_crypt_small_udderchaos", 373812);
DictSNOWorlds.Add("x1_pand_hexmaze_bloone", 374758);
DictSNOWorlds.Add("x1_pand_hexmaze_borgoth", 374762);
DictSNOWorlds.Add("x1_pand_hexmaze_grotescor", 374766);
DictSNOWorlds.Add("x1_pand_hexmaze_haziael", 374770);
DictSNOWorlds.Add("x1_pand_hexmaze_magrethar", 374774);
DictSNOWorlds.Add("x1_pand_hexmaze_severag", 374778);
DictSNOWorlds.Add("x2_zpvp_cath_01", 378972);
DictSNOWorlds.Add("x1_lr_tileset_event_graveyard_devhell_02", 379922);
DictSNOWorlds.Add("x1_lr_tileset_event_graveyard_devhell_01", 379923);
DictSNOWorlds.Add("p1_tgoblin_realm", 379962);
DictSNOWorlds.Add("p1_tgoblin_realm_bossroom", 380753);
DictSNOWorlds.Add("p2_scoundrelevent", 384425);
DictSNOWorlds.Add("p1_lr_tileset_cesspools_small", 389322);
DictSNOWorlds.Add("p1_lr_tileset_cesspools_large", 389323);
DictSNOWorlds.Add("p2_datedungeon_01", 404654);
DictSNOWorlds.Add("p2_datedungeon_02", 405005);
DictSNOWorlds.Add("p1_tieredrift_challenge", 405684);
DictSNOWorlds.Add("x1_p4_forest_coast_01", 408254);
DictSNOWorlds.Add("a4dun_corruptspire_sidedungeon_a_level1", 409000);
DictSNOWorlds.Add("p1_a1dun_random_level_goblin", 409093);
DictSNOWorlds.Add("a4dun_corruptspire_sidedungeon_a_level2", 409374);
DictSNOWorlds.Add("a4dun_garden_of_hope_random_a", 409510);
DictSNOWorlds.Add("a4dun_garden_of_hope_random_b", 409511);
DictSNOWorlds.Add("px_lr_tileset_exterior_oasisdrlg", 409626);
DictSNOWorlds.Add("px_lr_tileset_exterior_oasisdrlg_small", 409777);
DictSNOWorlds.Add("px_lr_tileset_exterior_oasisdrlg_large", 409779);
DictSNOWorlds.Add("px_lr_tileset_exterior_leoricsjail", 409802);
DictSNOWorlds.Add("px_lr_tileset_exterior_leoricsjail_small", 409803);
DictSNOWorlds.Add("px_lr_tileset_exterior_leoricsjail_large", 409804);
DictSNOWorlds.Add("px_lr_tileset_exterior_tristramfieldsdrlg", 414834);
DictSNOWorlds.Add("px_lr_tileset_exterior_tristramfieldsdrlg_small", 414848);
DictSNOWorlds.Add("px_lr_tileset_exterior_tristramfieldsdrlg_large", 414849);
DictSNOWorlds.Add("px_lr_tileset_exterior_festeringwoodsdrlg_large", 414971);
DictSNOWorlds.Add("px_lr_tileset_exterior_desert", 415309);
DictSNOWorlds.Add("px_lr_tileset_exterior_desert_large", 415310);
DictSNOWorlds.Add("px_lr_tileset_exterior_desert_small", 415311);
DictSNOWorlds.Add("px_lr_tileset_exterior_festeringwoodsdrlg", 415352);
DictSNOWorlds.Add("px_lr_tileset_exterior_festeringwoodsdrlg_small", 415354);
DictSNOWorlds.Add("x1_p4_forest_coast_cellar_01", 424373);
DictSNOWorlds.Add("x1_p4_forest_coast_cellar_02", 424521);
DictSNOWorlds.Add("x1_p4_forest_coast_cellar_03", 424525);
DictSNOWorlds.Add("x1_p4_forest_coast_cellar_04", 424528);
DictSNOWorlds.Add("a3dun_ruins_frost_city_a_01", 428493);
DictSNOWorlds.Add("x1_lr_tileset_monster_prototypes", 429679);
DictSNOWorlds.Add("a3dun_ruins_frost_city_a_02", 430335);
DictSNOWorlds.Add("x1_p4_forest_coast_cave_level02", 432436);
DictSNOWorlds.Add("x1_p4_forest_coast_cave_level01", 432535);
DictSNOWorlds.Add("px_lr_tileset_exterior_battlefieldsdrlg", 432563);
DictSNOWorlds.Add("px_lr_tileset_exterior_battlefieldsdrlg_large", 432689);
DictSNOWorlds.Add("px_lr_tileset_exterior_battlefieldsdrlg_small", 432696);
DictSNOWorlds.Add("x1_westm_cesspools_randoma_level01", 432697);
DictSNOWorlds.Add("x1_westm_cesspools_randoma_level02", 432698);
DictSNOWorlds.Add("a2dun_aqd_special_a_level01", 432993);
DictSNOWorlds.Add("a2dun_aqd_special_b_level01", 432997);
DictSNOWorlds.Add("a2dun_aqd_special_a_level02", 432998);
DictSNOWorlds.Add("a2dun_aqd_special_b_level02", 433001);
DictSNOWorlds.Add("x1_p4_forest_ancient_city_crypt_03b", 433755);
DictSNOWorlds.Add("p2_totallynotacowlevel", 434649);
DictSNOWorlds.Add("a3dun_event_ruins_frost_kkg_dungeon", 436291);
DictSNOWorlds.Add("p4_ruins_frost_events", 436306);
DictSNOWorlds.Add("p4_lr_tileset_ruins_frost", 436403);
DictSNOWorlds.Add("p3_benchmark_challenge", 436494);
DictSNOWorlds.Add("x1_p4_forest_coast_tower_mid_lvl", 441322);
DictSNOWorlds.Add("x1_p4_forest_coast_tower_top", 441386);
DictSNOWorlds.Add("x1_p4_forest_coast_tower_mid_lvl_b", 441412);
DictSNOWorlds.Add("x1_p4_forest_coast_tower_top_winter", 442666);
DictSNOWorlds.Add("p4_lr_tileset_ruins_frost_small", 442934);
DictSNOWorlds.Add("p4_lr_tileset_ruins_frost_large", 442938);
DictSNOWorlds.Add("p4_lr_tileset_exterior_forest", 442959);
DictSNOWorlds.Add("x1_p4_leoric_estate", 443346);
DictSNOWorlds.Add("p4_lr_tileset_exterior_forest_large", 443550);
DictSNOWorlds.Add("p4_lr_tileset_exterior_forest_small", 443551);
DictSNOWorlds.Add("p4_bounty_grounds_keep", 443678);
DictSNOWorlds.Add("p4_bounty_grounds_swr", 443686);
DictSNOWorlds.Add("p4_bounty_grounds_zolt", 443705);
DictSNOWorlds.Add("p4_bounty_grounds_crypt", 443720);
DictSNOWorlds.Add("p4_bounty_grounds_leorics_garden", 443756);
DictSNOWorlds.Add("p4_setdung_wiz_opus", 443772);
DictSNOWorlds.Add("p4_bounty_grounds_neph", 443801);
DictSNOWorlds.Add("p4_lr_tileset_exterior_forest_snow", 443834);
DictSNOWorlds.Add("p4_lr_tileset_exterior_forest_snow_small", 443894);
DictSNOWorlds.Add("p4_lr_tileset_exterior_forest_snow_large", 443895);
DictSNOWorlds.Add("p4_lr_tileset_forest_coast_cave", 443996);
DictSNOWorlds.Add("p4_lr_tileset_forest_coast_cave_large", 443999);
DictSNOWorlds.Add("p4_lr_tileset_forest_coast_cave_small", 444000);
DictSNOWorlds.Add("p4_forest_snow_01", 444305);
DictSNOWorlds.Add("p4_setdung_wiz_firebird", 444482);
DictSNOWorlds.Add("p4_setdung_wiz_rasha", 444485);
DictSNOWorlds.Add("p4_setdung_cru_akkhan", 444616);
DictSNOWorlds.Add("p4_setdung_cru_roland", 444704);
DictSNOWorlds.Add("p4_setdung_barb_kings", 444755);
DictSNOWorlds.Add("p4_setdung_barb_wastes", 444818);
DictSNOWorlds.Add("p4_setdung_barb_raekor", 444860);
DictSNOWorlds.Add("p4_setdung_barb_might", 444908);
DictSNOWorlds.Add("p4_setdung_wiz_vyr", 444953);
DictSNOWorlds.Add("p4_setdung_dh_mar", 444977);
DictSNOWorlds.Add("p4_setdung_dh_nat", 444999);
DictSNOWorlds.Add("p4_setdung_dh_ess", 445019);
DictSNOWorlds.Add("p4_setdung_dh_shadow", 445038);
DictSNOWorlds.Add("p4_setdung_wd_tooth", 445065);
DictSNOWorlds.Add("p4_setdung_wd_haunt", 445084);
DictSNOWorlds.Add("p4_setdung_wd_spider", 445108);
DictSNOWorlds.Add("p4_setdung_wd_jade", 445141);
DictSNOWorlds.Add("p4_setdung_monk_innas", 445160);
DictSNOWorlds.Add("p4_setdung_monk_sunwuko", 445177);
DictSNOWorlds.Add("p4_setdung_monk_uliana", 445194);
DictSNOWorlds.Add("p4_setdung_monk_storms", 445211);
DictSNOWorlds.Add("p4_setdung_cru_thorns", 445235);
DictSNOWorlds.Add("p4_setdung_cru_seeker", 445259);
DictSNOWorlds.Add("p4_forest_snow_icecave_01", 445736);
DictSNOWorlds.Add("p4_forest_snow_cellar_a", 445896);
DictSNOWorlds.Add("p4_a5_bounty_grounds_zolt", 448366);
DictSNOWorlds.Add("p4_a5_bounty_grounds_swr", 448373);
DictSNOWorlds.Add("p4_a5_bounty_grounds_neph", 448381);
DictSNOWorlds.Add("p4_a5_bounty_grounds_leorics_garden", 448396);
DictSNOWorlds.Add("p4_a5_bounty_grounds_keep", 448402);
DictSNOWorlds.Add("p4_a5_bounty_grounds_crypt", 448409);
DictSNOWorlds.Add("p43_ad_cathedral_level_01", 452721);
DictSNOWorlds.Add("p43_ad_cathedral_level_02", 452922);
DictSNOWorlds.Add("p43_ad_cathedral_level_03", 452984);
DictSNOWorlds.Add("p43_ad_cathedral_level_04", 452985);
DictSNOWorlds.Add("p43_ad_catacombs_level_05", 452991);
DictSNOWorlds.Add("p43_ad_catacombs_level_06", 452996);
DictSNOWorlds.Add("p43_ad_catacombs_level_07", 452997);
DictSNOWorlds.Add("p43_ad_catacombs_level_08", 452998);
DictSNOWorlds.Add("p43_ad_caves_level_09", 452999);
DictSNOWorlds.Add("p43_ad_caves_level_12", 453002);
DictSNOWorlds.Add("p43_ad_caves_level_11", 453003);
DictSNOWorlds.Add("p43_ad_caves_level_10", 453004);
DictSNOWorlds.Add("p43_ad_hell_level_13", 453008);
DictSNOWorlds.Add("p43_ad_hell_level_14", 453014);
DictSNOWorlds.Add("p43_ad_hell_level_15", 453015);
DictSNOWorlds.Add("p43_ad_hell_level_16", 453016);
DictSNOWorlds.Add("p43_lr_tileset_interiorgrift_forest_snow", 453210);
DictSNOWorlds.Add("p43_lr_tileset_interiorgrift_desert", 453211);
DictSNOWorlds.Add("p43_lr_tileset_interiorgrift_pandext", 453212);
DictSNOWorlds.Add("p43_lr_tileset_interiorgrift_festeringwoodsdrlg", 453213);
DictSNOWorlds.Add("p43_lr_tileset_interiorgrift_forest_coast", 453214);
DictSNOWorlds.Add("p43_ad_level02_sidedungeon_darkpassage", 453440);
DictSNOWorlds.Add("p43_ad_level03_sidedungeon_leoricstomb", 453446);
DictSNOWorlds.Add("p43_ad_level06_sidedungeon_chamberofbone", 453582);
DictSNOWorlds.Add("p43_ad_level15_sidedungeon_unholyaltar", 454208);
DictSNOWorlds.Add("p43_ad_oldtristram", 455282);
DictSNOWorlds.Add("lost_souls_prototype_v2", 456029);
DictSNOWorlds.Add("p6_church_level_01", 456634);
DictSNOWorlds.Add("lost_souls_prototype_v3", 457461);
DictSNOWorlds.Add("p43_ad_abandonedfarmstead", 458255);
DictSNOWorlds.Add("px_lr_tileset_exterior_moors_small", 458829);
DictSNOWorlds.Add("lost_souls_prototype_v4", 458965);
DictSNOWorlds.Add("weekly_challenge_hub", 459976);
DictSNOWorlds.Add("p6_moor_01", 460372);
DictSNOWorlds.Add("lost_souls_prototype_v5", 460587);
DictSNOWorlds.Add("px_lr_tileset_church_small", 462861);
DictSNOWorlds.Add("px_lr_tileset_church", 462957);
DictSNOWorlds.Add("px_lr_tileset_exterior_moors", 462958);
DictSNOWorlds.Add("p6_church_level_02", 464096);
DictSNOWorlds.Add("p6_cave_moors_to_church_01", 464829);
DictSNOWorlds.Add("p6_lr_tileset_interiorgrift_moors", 465376);
DictSNOWorlds.Add("p6_moors_cave_well_01", 465884);
DictSNOWorlds.Add("p6_setdung_necro_blood", 468085);
DictSNOWorlds.Add("p6_setdung_necro_bone", 468086);
DictSNOWorlds.Add("p6_setdung_necro_saint", 468094);
DictSNOWorlds.Add("p6_setdung_necro_plague", 468095);
DictSNOWorlds.Add("p6_church_level_02_boss", 470238);
DictSNOWorlds.Add("mb313_pand", 478413);
DictSNOWorlds.Add("mb313_church", 478433);
DictSNOWorlds.Add("mb313_moors", 478434);
DictSNOWorlds.Add("mb313_cave", 478435);
DictSNOWorlds.Add("mb313_firerealm", 478437);
DictSNOWorlds.Add("mb313_cage", 478438);
DictSNOWorlds.Add("mb313_town", 478439);
DictSNOWorlds.Add("p1_tgoblin_realm_ancient", 483057);
DictSNOWorlds.Add("p1_tgoblin_realm_bossroom_ancient", 483086);
#endregion
return DictSNOWorlds;
return Enum.GetValues<WorldSno>().Where(x => x != WorldSno.__NONE).ToDictionary(x => x.ToString(), x => (int)x);
}
}

View File

@ -4,6 +4,7 @@ using DiIiS_NA.Core.Helpers.Math;
using DiIiS_NA.Core.MPQ;
//Blizzless Project 2022
using DiIiS_NA.Core.MPQ.FileFormats;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
@ -461,7 +462,7 @@ namespace DiIiS_NA.GameServer.CommandManager
if (!MPQStorage.Data.Assets[SNOGroup.Worlds].ContainsKey(worldId))
return "There exist no world with SNOId: " + worldId;
var world = invokerClient.InGameClient.Game.GetWorld(worldId);
var world = invokerClient.InGameClient.Game.GetWorld((WorldSno)worldId);
if (world == null)
return "Can't teleport you to world with snoId " + worldId;

View File

@ -0,0 +1,909 @@
using System;
using System.Linq;
namespace DiIiS_NA.D3_GameServer.Core.Types.SNO
{
public enum WorldSno: int
{
__NONE = -1,
a2c2dun_zolt_treasurehunter = 2812,
trdun_leoric_level01 = 2826,
a1trdun_level01 = 50579,
a1trdun_level04 = 50582,
a1trdun_level06 = 50584,
a1trdun_level07 = 50585,
a2c1dun_swr_caldeum_01 = 50588,
a2c2dun_cave_random01 = 50589,
a2dun_zolt_sw_random01 = 50594,
a2dun_zolt_timed01_level01 = 50596,
a2dun_zolt_level01 = 50610,
a2dun_zolt_level02 = 50611,
a2dun_zolt_level03 = 50612,
a2dun_zolt_lobby = 50613,
axe_bad_data = 50623,
axe_flatworld = 50627,
caout_interior_d = 50657,
caout_mine_abandoned_cellara = 50658,
pvp_map2 = 50715,
pvp_maze_arena_01 = 50716,
pvp_octagon_arena_01 = 50717,
pvp_pillar_01 = 50718,
pvp_stairs_arena_01 = 50719,
tod_loadscreen = 50814,
caout_interior_f = 51270,
a2c3dun_aqd_oasis_level01 = 57491,
a1c6_spidercave_01 = 58231,
a2dun_swr_adria_level01 = 58493,
trdun_leoric_level02 = 58982,
trdun_leoric_level03 = 58983,
a2dun_aqd_special_01 = 59486,
a2dun_zolt_bossfight_level04 = 60193,
trdun_cave_nephalem_01 = 60393,
trdun_cave_nephalem_02 = 60394,
trdun_cave_nephalem_03 = 60395,
caout_khamsin_mine = 60432,
trdun_crypt_skeletonkingcrown_01 = 60600,
trdun_cain_intro = 60713,
a2_belial_room_01 = 60756,
caout_interior_g_stranded2 = 60838,
a2dun_zolt_head_random01 = 61631,
a2trdun_cave_oasis_random01 = 62568,
a2trdun_cave_oasis_random02 = 62569,
trout_sub240_fields_cellara = 62706,
trout_adriascellar = 62751,
a2dun_aqd_special_a = 62776,
a2dun_aqd_special_b = 62779,
caout_town = 70885,
trout_town = 71150,
trdun_crypt_falsepassage_01 = 72636,
trdun_crypt_falsepassage_02 = 72637,
trout_townattack = 72882,
a1trdun_king_level08 = 73261,
a1dun_leor_manor = 75049,
a3dun_keep_level04 = 75434,
trdun_butcherslair_02 = 78839,
pvp_caout_arena_01 = 79100,
a3dun_crater_st_level01 = 79401,
a1trdun_cath_tower_of_power = 80057,
a2dun_zolt_shadowrealm_level01 = 80589,
trout_oldtistram_cellar = 80730,
a3dun_crater_st_level02 = 80763,
a3dun_rmpt_level01 = 81019,
a3dun_crater_level_01 = 81049,
a1_cave_fields_scavengerden_level01 = 81163,
a1_cave_fields_scavengerden_level02 = 81164,
a2_belial_room_intro = 81715,
a3dun_crater_level_02 = 81934,
highlands_randomdrlg_westtower_level01 = 82076,
highlands_randomdrlg_westtower_level02 = 82313,
a1_cave_fields_minecavea_level01 = 82370,
a1_cave_fields_minecavea_level02 = 82371,
a1_cave_highlands_goatcavea_level01 = 82502,
a1_cave_highlands_goatcavea_level02 = 82511,
trout_oldtristram_treecave = 84518,
a3dun_crater_st_level04 = 85201,
a2dun_cald = 86594,
trout_tristram_leahsroom = 86856,
trout_highlands_dunexteriora = 87707,
trdun_crypt_skeletonkingcrown_02 = 92126,
a3dun_rmpt_level02 = 93099,
a3dun_keep_level03 = 93104,
trdun_jail_level01 = 94676,
a3_battlefields_02 = 95804,
pvp_butcher_arena_01 = 102100,
trdun_crypt_fields_flooded_memories_level01 = 102299,
gluttony_boss = 103209,
a4dun_garden3_spireentrance = 103910,
trout_vendor_tinker = 104446,
a1trdun_level05_templar = 105406,
trout_oldtistram_cellar_1 = 106746,
trout_oldtistram_cellar_2 = 106752,
trout_oldtistram_cellar_3 = 107050,
trout_fields_vendor_curios = 107445,
a4dun_heaven_1000_monsters_fight = 109143,
trout_tristram_inn = 109362,
a4dun_garden_of_hope_01 = 109513,
a4dun_hell_portal_01 = 109525,
a4dun_hell_portal_02 = 109530,
a4dun_diablo_arena = 109561,
a2dun_cald_uprising = 109894,
a2dun_portalroulette_a = 111376,
a2dun_boneyard_worm_cave_01 = 111666,
a2trdun_boneyard_spider_cave_01 = 111670,
pvp_cald_swr_ver2 = 112864,
a1trdun_tyrael_level09 = 117405,
a3dun_crater_level_03 = 119290,
a3dun_crater_st_level01b = 119641,
a3dun_crater_st_level04b = 119650,
fields_cave_swordofjustice_level01 = 119888,
a3dun_azmodan_arena = 121214,
a4dun_spire_level_01 = 121579,
a2dun_zolt_blood02 = 123183,
pvp_neph_arena = 129123,
a4dun_spire_level_02 = 129305,
a4dun_spire_level_03 = 129306,
trout_tristram_cainshouse = 130161,
pvp_crypt_arena_01 = 131908,
a1_cave_highlands_vendorrescue = 132995,
caout_oasis_cellar_d_refugeecellar = 134820,
caout_oasis_cellar_c_zakarwamerchant = 134822,
a1_cave_wilderness_den_level01 = 135193,
a1dun_labyrinth_01 = 135713,
caout_stingingwinds_randomcellar_1 = 136058,
caout_stingingwinds_randomcellar_2 = 136116,
caout_stingingwinds_randomcellar_3 = 136136,
a3dun_keep_level05 = 136415,
trout_oldtristram_cellar_f = 136441,
caout_oasis_randomcellar_1 = 136900,
caout_oasis_randomcellar_2 = 136932,
caout_oasis_randomcellar_3 = 136936,
pvp_zolt_ruins_arena = 137439,
a3dun_crater_st_level02b = 139272,
pvp_crypt_arena_02 = 139469,
a4dun_sigil_a = 139965,
a3dun_bridge_interior_random01 = 140444,
pvp_craterst_arena = 140638,
a2_event_dyingman_mine = 140652,
a4dun_sigil_b = 140709,
a2dun_swr_swr_to_oasis_level01 = 146619,
battlenet_mainscreen = 148534,
caout_alcarnus_randomcellar_1 = 148899,
caout_alcarnus_randomcellar_2 = 148907,
caout_alcarnus_randomcellar_3 = 148908,
limbo = 149898,
a4dun_diablo_shadowrealm_01 = 153670,
trdun_crypt_skeletonkingcrown_00 = 154587,
a2dun_aqd_oasis_randomfacepuzzle_small = 157882,
a2dun_aqd_oasis_randomfacepuzzle_large = 158593,
a2trdun_cave_oasis_random02_level02 = 161011,
caout_refugeecamp = 161472,
a1trdun_cave_old_ruins_random01 = 161961,
caout_oasis_randomcellar_4 = 162790,
trdun_crypt_fields_flooded_memories_level02 = 165797,
a4dun_libraryoffate = 166640,
trout_townattack_chapelcellar_a = 167721,
a2dun_zolt_timed01_level02 = 168196,
pvp_trainingground = 168230,
a2dun_cave_mapdungeon_level01 = 169477,
pvp_traininginn = 170375,
trout_highlands_servanthouse_cellar_vendor = 171189,
a3dun_hub_keep = 172909,
a2_swr_fcauseway_01 = 174434,
trout_tristram_cainshouse_event = 174449,
a3dun_keep_random_01 = 174516,
caout_hub_inn = 174530,
a3dun_keep_random_02 = 174555,
a3dun_keep_random_03 = 174560,
a3dun_keep_random_04 = 174665,
a4dun_heaven_hub_keep = 178152,
a4dun_sigil_d = 180517,
a1dun_spidercave_01 = 180550,
a4dun_sigil_c = 181644,
a3dun_keep_hub_inn = 182875,
a4dun_heaven_1000_monsters_fight_entrance = 182944,
a1dun_spidercave_02 = 182976,
a4dun_heaven_keep_hub_inn = 183800,
a3dun_keep_random_cellar_01 = 185217,
a3dun_keep_random_cellar_02 = 185247,
a3dun_hub_adria_tower = 186552,
a3dun_icecaves_random_01 = 189259,
a3dun_icecaves_timed_01 = 189910,
battlenet_act2screen = 191376,
battlenet_act3screen = 191389,
battlenet_act4screen = 191390,
a2dun_aqd_oasis_level01 = 192640,
a2dun_aqd_oasis_level00 = 192687,
a1_cave_wilderness_den_level02 = 194231,
a2dun_cave_mapdungeon_level02 = 194238,
a2trdun_cave_oasis_random01_level02 = 194240,
battlenet_pvpscreen = 194282,
caout_cellar_alcarnus_main = 195200,
a2_event_priceofmercy_cellar = 195997,
a2dun_zolt_random_portalroulette_02 = 196036,
a2_rockworm_cellar_cave = 196222,
a4dun_diablo_arena_phase3 = 196292,
a3dun_keep_random_cellar_03 = 197622,
a4dun_spire_level_00 = 198281,
trout_wilderness_corpsehouse = 199388,
a2dun_cave_bloodvial_01 = 204628,
a2dun_cave_bloodvial_02 = 204674,
a3dun_hub_adria_tower_intro = 204707,
a4dun_spire_diabloentrance = 205399,
a3dun_bridge_interior_random02 = 205422,
a4dun_spire_level_04 = 210725,
a1dun_random_level01 = 211471,
a4dun_spire_exterior = 214956,
a2trdun_boneyard_spider_cave_02 = 218967,
a2dun_boneyard_worm_cave_02 = 218970,
a4dun_garden_of_hope_random = 219659,
a2c2dun_cave_random01_level02 = 220804,
a3dun_icecaves_random_01_level_02 = 221688,
a3dun_icecaves_timed_01_level_02 = 221689,
a3dun_keep_random_01_level_02 = 221748,
a3dun_keep_random_02_level_02 = 221749,
a3dun_keep_random_03_level_02 = 221750,
a3dun_keep_random_04_level_02 = 221751,
a2dun_zolt_sw_random01_level02 = 222575,
a1dun_crypt_dev_hell = 222591,
utility_server_world = 223474,
pvp_keep_arena = 225850,
a3_battlefields_03 = 226713,
pvp_garden_arena = 227206,
a1trdun_cave_qa_well = 230288,
x1_bogcave_random01 = 234962,
pvp_leoricsgarden_arena = 235229,
x1_bogcave_random02 = 235882,
pvp_zolt_small_arena = 236154,
battlenet_act1screen = 238775,
x1_pof_dungeonlayout_level_01 = 245391,
x1_pof_dungeonlayout_level_02 = 245402,
x1_test_challengetestworld = 245736,
x1_westm_int_gen_c_miser = 246369,
x1_pof_dungeonboss_01 = 252144,
qa_pvp_test_map = 252723,
uber_bossworld1 = 256111,
uber_bossworld2 = 256112,
uber_bossworld3 = 256607,
uber_portalworld = 257117,
pvp_regicide_prototype_small = 258624,
x1_westm_zone_01 = 261712,
x1_westm_zone_03 = 263494,
flatworld_pvp_demo = 265834,
x1_bog_01 = 267412,
x1_bog_bogpeople_cellar_c = 269874,
x1_fortress_level_01 = 271233,
x1_fortress_level_02 = 271235,
x1_bog_bogpeople_cellar_d = 271533,
x1_bog_bogpeople_cellar_a = 272172,
pvp_duel_box = 273257,
x1_fortress_temp_malthaelarena = 273433,
pvp_field_test = 273769,
pvp_z_lane_test = 274044,
pvp_peanut_longlane = 274658,
pvp_duel_small = 275192,
x1_pand_ext_level_01 = 275415,
x1_lr_tileset_cath = 275921,
x1_lr_tileset_corruptspire = 275926,
x1_lr_tileset_leorics = 275930,
x1_lr_tileset_rootcave = 275943,
x1_lr_tileset_wormcaves = 275944,
x1_lr_tileset_zoltarchives = 275945,
x1_lr_tileset_crypt = 275946,
x1_lr_tileset_floodedcave = 275947,
x1_lr_tileset_icecave = 275960,
x1_lr_hubworld = 276032,
pvp_three_control = 276095,
pvp_murderball_test_01 = 277669,
pvp_duel_small_multi = 279626,
x1_bog_adriaritual = 282460,
x1_catacombs_level01 = 283552,
x1_catacombs_level02 = 283566,
x1_westm_rescueinterior_01 = 284491,
x1_westm_rescueinterior_02 = 284492,
battlenet_act5screen = 288104,
x1_lr_level_01 = 288454,
x1_lr_level_02 = 288685,
x1_lr_level_03 = 288687,
x1_lr_level_04 = 288798,
x1_lr_level_05 = 288800,
x1_lr_level_06 = 288802,
x1_lr_level_07 = 288804,
x1_lr_level_08 = 288810,
x1_lr_level_09 = 288814,
x1_lr_level_10 = 288816,
x1_lr_tileset_zoltruins = 288823,
x1_lr_tileset_sewers = 288843,
x1_westm_int_gen_a_01 = 288972,
x1_westm_custom_alley_01_rat = 289523,
x1_pand_ext_gateoverlook = 291941,
x1_pand_hexmaze = 294585,
x1_westm_int_rescue_guards_01 = 294633,
x1_pand_batteringram = 295225,
x1_adria_boss_arena_02 = 297771,
x1_pand_hexmaze_en_01 = 302603,
x1_westm_int_gen_b_01madman = 302733,
x1_westm_int_gen_a_01zombiesorcerer = 302876,
x1_westm_int_gen_b_02doomedwoman = 303058,
x1_westm_int_gen_a02necromancer = 303361,
x1_westm_scoundrelevent = 303430,
x1_westmarch_hub = 304235,
x1_westm_alley_rats = 304358,
x1_westm_intro = 306549,
x1_pand_hexmaze_2 = 306747,
x1_westm_int_rescue_guards_02 = 306915,
x1_urzael_arena = 308446,
x1_westmarch_cath_int = 308549,
x1_westmarch_overlook_d = 308705,
x1_pand_hexmaze_en_02 = 310706,
x1_westm_reformedcultist = 310845,
pvp_square_test_01 = 315043,
x1_westm_int_gen_a_01_captainstokely = 321968,
x1_pand_ext_cellar_a = 322531,
x1_lr_tileset_keep_war = 322661,
x1_lr_tileset_keep_forge = 322662,
x1_lr_tileset_keep_river = 322663,
x1_lr_tileset_aqueducts = 322710,
x1_lr_tileset_spidercaves = 322726,
x1_lr_tileset_crater = 323565,
x1_lr_tileset_cath_large = 324418,
x1_lr_tileset_cath_small = 324425,
x1_lr_tileset_leorics_small = 327401,
x1_lr_tileset_crypt_small = 327768,
x1_lr_tileset_zoltarchives_small = 327864,
x1_lr_tileset_cath_extralarge = 328037,
x1_westm_int_gen_c_01_skeleton_rush = 328325,
x1_westm_int_gen_b_02_var_c_yard_rush = 328344,
x1_malthael_boss_arena = 328484,
x1_westm_int_gen_c_03_elements = 328933,
x1_westm_int_gen_b_03_var_c_panic = 330207,
x1_westm_templar_event = 330391,
x1_lr_tileset_exterior_tristramfields = 330465,
x1_westm_cellar_corpsefinder = 330761,
x1_lr_tileset_westmarch = 331263,
x1_lr_tileset_abattoir = 331384,
x1_lr_tileset_bogcave = 331385,
x1_lr_tileset_fortress = 331387,
x1_lr_tileset_catacombs = 331388,
x1_lr_tileset_hexmaze = 331389,
x1_a5_challenge_westm_dreadghosts = 331944,
x1_lr_tileset_exterior_bog = 332284,
x1_tristram_adventure_mode_hub = 332336,
x1_lr_tileset_aqueducts_small = 333443,
x1_westm_int_gen_b_03_var_b_ghostchase = 335058,
x1_lr_tileset_aqueducts_large = 335192,
x1_lr_tileset_corruptspire_large = 335410,
x1_lr_tileset_crypt_large = 335922,
x1_lr_tileset_crater_small = 335992,
x1_lr_tileset_floodedcave_large = 336064,
x1_lr_tileset_icecave_large = 336068,
x1_lr_tileset_keep_forge_large = 336073,
x1_lr_tileset_keep_river_large = 336077,
x1_lr_tileset_keep_war_large = 336078,
x1_lr_tileset_leorics_large = 336083,
x1_lr_tileset_rootcave_large = 336085,
x1_lr_tileset_sewers_large = 336086,
x1_lr_tileset_spidercaves_large = 336096,
x1_lr_tileset_wormcaves_large = 336104,
x1_lr_tileset_zoltarchives_large = 336137,
x1_lr_tileset_zoltruins_large = 336139,
x1_lr_tileset_corruptspire_small = 336143,
x1_lr_tileset_floodedcave_small = 336148,
x1_lr_tileset_icecave_small = 336149,
x1_lr_tileset_keep_forge_small = 336234,
x1_lr_tileset_keep_river_small = 336239,
x1_lr_tileset_keep_war_small = 336240,
x1_lr_tileset_rootcave_small = 336242,
x1_lr_tileset_sewers_small = 336244,
x1_lr_tileset_spidercaves_small = 336246,
x1_bogcave_random01_b = 336572,
x1_bogcave_random02_b = 336573,
x1_westm_int_gen_a_03_kingevent01 = 336844,
x1_westm_int_gen_b_02_kingevent02 = 336852,
x1_westm_int_gen_a_04_kingevent03 = 336902,
x1_lr_tileset_wormcaves_small = 337001,
x1_lr_tileset_zoltruins_small = 337003,
x1_pand_ext_2_battlefields = 338600,
x1_westm_deathorb_gideonscourt = 338891,
x1_abattoir_random01 = 338930,
x1_westm_graveyard_deathorb = 338944,
x1_abattoir_random01_b = 338968,
x1_abattoir_random02 = 338976,
x1_abattoir_random02_b = 338977,
x1_westm_deathorb_kerwinsrow = 339151,
x1_heaven_pandemonium_portal = 339160,
x1_pand_ext_batteringram_entrance_a = 339254,
x1_westm_scoundrelevent_level02 = 340624,
x1_catacombs_fakeentrance_02 = 341037,
x1_catacombs_fakeentrance_03 = 341038,
x1_catacombs_fakeentrance_04 = 341040,
x1_catacombs_jeweler_1 = 342109,
x1_lr_tileset_pony = 343942,
x1_lr_tileset_pony_large = 343943,
x1_lr_tileset_pony_small = 343944,
x1_fortress_malthael_entrance = 346410,
x1_lr_tileset_exterior_wilderness = 346912,
x1_lr_tileset_exterior_highlands = 347368,
x1_lr_tileset_exterior_gardensofhope1 = 347749,
x1_lr_tileset_exterior_gardensofhope2 = 347750,
x1_lr_tileset_exterior_gardensofhope3 = 347751,
x1_lr_tileset_exterior_graveyard = 347861,
x1_lr_tileset_exterior_pandext = 347903,
x1_lr_tileset_breakup_wortham = 348606,
x1_lr_tileset_exterior_boneyards = 349173,
x1_lr_tileset_cratertowers1_small = 350309,
x1_lr_tileset_cratertowers2_small = 350310,
x1_lr_tileset_cratertowers3_small = 350311,
x1_lr_tileset_cratertowers4_small = 350312,
x1_lr_tileset_cratertowers5_small = 350313,
x1_lr_tileset_cratertowers6_small = 350314,
x1_lr_tileset_cratertowers7_small = 350315,
x1_lr_tileset_exterior_ramparts1 = 351261,
x1_lr_tileset_exterior_ramparts2 = 351269,
x1_lr_tileset_exterior_ramparts3 = 351270,
x1_lr_tileset_exterior_rampartsdamaged1 = 351271,
x1_lr_tileset_exterior_rampartsdamaged2 = 351272,
x1_lr_tileset_exterior_rampartsdamaged3 = 351273,
x1_westm_cellar_kids = 351793,
x1_westm_cellar_ruffians = 351794,
x1_westm_int_gen_c_03_dogs = 357501,
x1_westm_int_gen_c_03_deathmaiden = 357502,
x1_pand_ext_cellar_b = 357650,
x1_pand_ext_cellar_c = 357653,
x1_pand_ext_cellar_d = 357656,
x1_pand_ext_cellar_e = 357658,
x1_catacombs_jeweler_2 = 358554,
x1_westm_int_gen_c_01_zombiefireplace = 358641,
x1_bogcave_random_connector = 358955,
x1_bog_bogpeople_cellar_b = 359862,
x1_lr_tileset_hexmaze_large = 360736,
x1_lr_tileset_hexmaze_small = 360737,
x1_lr_tileset_catacombs_large = 360756,
x1_lr_tileset_catacombs_small = 360757,
x1_lr_tileset_bogcave_large = 360768,
x1_lr_tileset_bogcave_small = 360769,
x1_lr_tileset_fortress_small = 360796,
x1_lr_tileset_fortress_large = 360797,
x1_lr_tileset_abattoir_large = 360811,
x1_lr_tileset_abattoir_small = 360812,
x1_lr_tileset_westmarch_small = 360815,
x1_lr_tileset_westmarch_large = 360816,
x1_lr_tileset_westmarchfire = 360823,
x1_lr_tileset_westmarchfire_small = 360835,
x1_lr_tileset_westmarchfire_large = 360836,
x1_lr_tileset_fortressislands = 362155,
x1_lr_tileset_fortressislands_small = 362175,
x1_lr_tileset_hellportala_small = 362178,
x1_lr_tileset_hellportalb_small = 362187,
x1_lr_tileset_exterior_graveyard_small = 363977,
x1_lr_tileset_exterior_bog_small = 363998,
x1_lr_tileset_exterior_pandext_small = 364270,
x1_lr_tileset_exterior_pandext_large = 364271,
x1_lr_tileset_exterior_graveyard_large = 364391,
x1_lr_tileset_exterior_bog_large = 364392,
x1_lr_tileset_exterior_boneyards_large = 364533,
a4dun_uber_diablo_shadowrealm_01 = 365973,
x1_lr_tileset_event_crypt_udderchaos = 366326,
x1_westm_int_blacksmith = 368426,
x1_lr_tileset_crypt_small_udderchaos = 373812,
x1_pand_hexmaze_bloone = 374758,
x1_pand_hexmaze_borgoth = 374762,
x1_pand_hexmaze_grotescor = 374766,
x1_pand_hexmaze_haziael = 374770,
x1_pand_hexmaze_magrethar = 374774,
x1_pand_hexmaze_severag = 374778,
x2_zpvp_cath_01 = 378972,
p1_tgoblin_realm = 379962,
p1_tgoblin_realm_bossroom = 380753,
p2_scoundrelevent = 384425,
p1_lr_tileset_cesspools_small = 389322,
p1_lr_tileset_cesspools_large = 389323,
p2_datedungeon_01 = 404654,
p2_datedungeon_02 = 405005,
p1_tieredrift_challenge = 405684,
x1_p4_forest_coast_01 = 408254,
a4dun_corruptspire_sidedungeon_a_level1 = 409000,
p1_a1dun_random_level_goblin = 409093,
a4dun_corruptspire_sidedungeon_a_level2 = 409374,
a4dun_garden_of_hope_random_a = 409510,
a4dun_garden_of_hope_random_b = 409511,
px_lr_tileset_exterior_oasisdrlg = 409626,
px_lr_tileset_exterior_oasisdrlg_small = 409777,
px_lr_tileset_exterior_oasisdrlg_large = 409779,
px_lr_tileset_exterior_leoricsjail = 409802,
px_lr_tileset_exterior_leoricsjail_small = 409803,
px_lr_tileset_exterior_leoricsjail_large = 409804,
px_lr_tileset_exterior_tristramfieldsdrlg = 414834,
px_lr_tileset_exterior_tristramfieldsdrlg_small = 414848,
px_lr_tileset_exterior_tristramfieldsdrlg_large = 414849,
px_lr_tileset_exterior_festeringwoodsdrlg_large = 414971,
px_lr_tileset_exterior_desert = 415309,
px_lr_tileset_exterior_desert_large = 415310,
px_lr_tileset_exterior_desert_small = 415311,
px_lr_tileset_exterior_festeringwoodsdrlg = 415352,
px_lr_tileset_exterior_festeringwoodsdrlg_small = 415354,
x1_p4_forest_coast_cellar_01 = 424373,
x1_p4_forest_coast_cellar_02 = 424521,
x1_p4_forest_coast_cellar_03 = 424525,
x1_p4_forest_coast_cellar_04 = 424528,
a3dun_ruins_frost_city_a_01 = 428493,
x1_lr_tileset_monster_prototypes = 429679,
a3dun_ruins_frost_city_a_02 = 430335,
x1_p4_forest_coast_cave_level02 = 432436,
x1_p4_forest_coast_cave_level01 = 432535,
px_lr_tileset_exterior_battlefieldsdrlg = 432563,
px_lr_tileset_exterior_battlefieldsdrlg_large = 432689,
px_lr_tileset_exterior_battlefieldsdrlg_small = 432696,
x1_westm_cesspools_randoma_level01 = 432697,
x1_westm_cesspools_randoma_level02 = 432698,
a2dun_aqd_special_a_level01 = 432993,
a2dun_aqd_special_b_level01 = 432997,
a2dun_aqd_special_a_level02 = 432998,
a2dun_aqd_special_b_level02 = 433001,
x1_p4_forest_ancient_city_crypt_03b = 433755,
p2_totallynotacowlevel = 434649,
a3dun_event_ruins_frost_kkg_dungeon = 436291,
p4_ruins_frost_events = 436306,
p4_lr_tileset_ruins_frost = 436403,
p3_benchmark_challenge = 436494,
x1_p4_forest_coast_tower_mid_lvl = 441322,
x1_p4_forest_coast_tower_top = 441386,
x1_p4_forest_coast_tower_mid_lvl_b = 441412,
x1_p4_forest_coast_tower_top_winter = 442666,
p4_lr_tileset_ruins_frost_small = 442934,
p4_lr_tileset_ruins_frost_large = 442938,
p4_lr_tileset_exterior_forest = 442959,
x1_p4_leoric_estate = 443346,
p4_lr_tileset_exterior_forest_large = 443550,
p4_lr_tileset_exterior_forest_small = 443551,
p4_bounty_grounds_keep = 443678,
p4_bounty_grounds_swr = 443686,
p4_bounty_grounds_zolt = 443705,
p4_bounty_grounds_crypt = 443720,
p4_bounty_grounds_leorics_garden = 443756,
p4_setdung_wiz_opus = 443772,
p4_bounty_grounds_neph = 443801,
p4_lr_tileset_exterior_forest_snow = 443834,
p4_lr_tileset_exterior_forest_snow_small = 443894,
p4_lr_tileset_exterior_forest_snow_large = 443895,
p4_lr_tileset_forest_coast_cave = 443996,
p4_lr_tileset_forest_coast_cave_large = 443999,
p4_lr_tileset_forest_coast_cave_small = 444000,
p4_forest_snow_01 = 444305,
p4_setdung_wiz_firebird = 444482,
p4_setdung_wiz_rasha = 444485,
p4_setdung_cru_akkhan = 444616,
p4_setdung_cru_roland = 444704,
p4_setdung_barb_kings = 444755,
p4_setdung_barb_wastes = 444818,
p4_setdung_barb_raekor = 444860,
p4_setdung_barb_might = 444908,
p4_setdung_wiz_vyr = 444953,
p4_setdung_dh_mar = 444977,
p4_setdung_dh_nat = 444999,
p4_setdung_dh_ess = 445019,
p4_setdung_dh_shadow = 445038,
p4_setdung_wd_tooth = 445065,
p4_setdung_wd_haunt = 445084,
p4_setdung_wd_spider = 445108,
p4_setdung_wd_jade = 445141,
p4_setdung_monk_innas = 445160,
p4_setdung_monk_sunwuko = 445177,
p4_setdung_monk_uliana = 445194,
p4_setdung_monk_storms = 445211,
p4_setdung_cru_thorns = 445235,
p4_setdung_cru_seeker = 445259,
p4_forest_snow_icecave_01 = 445736,
p4_forest_snow_cellar_a = 445896,
p4_a5_bounty_grounds_zolt = 448366,
p4_a5_bounty_grounds_swr = 448373,
p4_a5_bounty_grounds_neph = 448381,
p4_a5_bounty_grounds_leorics_garden = 448396,
p4_a5_bounty_grounds_keep = 448402,
p4_a5_bounty_grounds_crypt = 448409,
p43_ad_cathedral_level_01 = 452721,
p43_ad_cathedral_level_02 = 452922,
p43_ad_cathedral_level_03 = 452984,
p43_ad_cathedral_level_04 = 452985,
p43_ad_catacombs_level_05 = 452991,
p43_ad_catacombs_level_06 = 452996,
p43_ad_catacombs_level_07 = 452997,
p43_ad_catacombs_level_08 = 452998,
p43_ad_caves_level_09 = 452999,
p43_ad_caves_level_12 = 453002,
p43_ad_caves_level_11 = 453003,
p43_ad_caves_level_10 = 453004,
p43_ad_hell_level_13 = 453008,
p43_ad_hell_level_14 = 453014,
p43_ad_hell_level_15 = 453015,
p43_ad_hell_level_16 = 453016,
p43_lr_tileset_interiorgrift_forest_snow = 453210,
p43_lr_tileset_interiorgrift_desert = 453211,
p43_lr_tileset_interiorgrift_pandext = 453212,
p43_lr_tileset_interiorgrift_festeringwoodsdrlg = 453213,
p43_lr_tileset_interiorgrift_forest_coast = 453214,
p43_ad_level02_sidedungeon_darkpassage = 453440,
p43_ad_level03_sidedungeon_leoricstomb = 453446,
p43_ad_level06_sidedungeon_chamberofbone = 453582,
p43_ad_level15_sidedungeon_unholyaltar = 454208,
p43_ad_oldtristram = 455282,
lost_souls_prototype_v2 = 456029,
p6_church_level_01 = 456634,
lost_souls_prototype_v3 = 457461,
p43_ad_abandonedfarmstead = 458255,
px_lr_tileset_exterior_moors_small = 458829,
lost_souls_prototype_v4 = 458965,
weekly_challenge_hub = 459976,
p6_moor_01 = 460372,
lost_souls_prototype_v5 = 460587,
px_lr_tileset_church_small = 462861,
px_lr_tileset_church = 462957,
px_lr_tileset_exterior_moors = 462958,
p6_church_level_02 = 464096,
p6_cave_moors_to_church_01 = 464829,
p6_lr_tileset_interiorgrift_moors = 465376,
p6_moors_cave_well_01 = 465884,
p6_setdung_necro_blood = 468085,
p6_setdung_necro_bone = 468086,
p6_setdung_necro_saint = 468094,
p6_setdung_necro_plague = 468095,
p6_church_level_02_boss = 470238,
mb313_pand = 478413,
mb313_church = 478433,
mb313_moors = 478434,
mb313_cave = 478435,
mb313_firerealm = 478437,
mb313_cage = 478438,
mb313_town = 478439,
p1_tgoblin_realm_ancient = 483057,
p1_tgoblin_realm_bossroom_ancient = 483086,
p73_swarmrift_bounty_grounds_caout = 486820,
p73_swarmrift_a5_bounty_grounds_neph = 486821,
p73_swarmrift_a5_bounty_grounds_leorics_garden = 486822,
p73_swarmrift_a4dun_heaven_1000_monsters_fight = 486823,
p73_swarmrift_trialrift_tileset = 486828,
p43_lr_tileset_interiorgrift_desert_gg = 486855,
p43_lr_tileset_interiorgrift_festeringwoodsdrlg_gg = 486856,
p43_lr_tileset_interiorgrift_pandext_gg = 486857,
p6_lr_tileset_interiorgrift_moors_gg = 486858,
px_lr_tileset_exterior_tristramfieldsdrlg_small_gg = 486859,
x1_lr_tileset_exterior_boneyards_gg = 486860,
x1_lr_tileset_exterior_graveyard_small_gg = 486861,
px_lr_tileset_exterior_tristramfieldsdrlg_small_gr = 487126,
x1_lr_tileset_exterior_graveyard_small_gr = 487223,
}
static class WorldSnoExtensions
{
// all `x1_lr_tileset` worlds
private static readonly WorldSno[] dungeonWorlds = new WorldSno[]
{
WorldSno.x1_lr_tileset_cath,
WorldSno.x1_lr_tileset_corruptspire,
WorldSno.x1_lr_tileset_leorics,
WorldSno.x1_lr_tileset_rootcave,
WorldSno.x1_lr_tileset_wormcaves,
WorldSno.x1_lr_tileset_zoltarchives,
WorldSno.x1_lr_tileset_crypt,
WorldSno.x1_lr_tileset_floodedcave,
WorldSno.x1_lr_tileset_icecave,
WorldSno.x1_lr_tileset_zoltruins,
WorldSno.x1_lr_tileset_sewers,
WorldSno.x1_lr_tileset_keep_war,
WorldSno.x1_lr_tileset_keep_forge,
WorldSno.x1_lr_tileset_keep_river,
WorldSno.x1_lr_tileset_aqueducts,
WorldSno.x1_lr_tileset_spidercaves,
WorldSno.x1_lr_tileset_crater,
WorldSno.x1_lr_tileset_cath_large,
WorldSno.x1_lr_tileset_cath_small,
WorldSno.x1_lr_tileset_leorics_small,
WorldSno.x1_lr_tileset_crypt_small,
WorldSno.x1_lr_tileset_zoltarchives_small,
WorldSno.x1_lr_tileset_cath_extralarge,
WorldSno.x1_lr_tileset_exterior_tristramfields,
WorldSno.x1_lr_tileset_westmarch,
WorldSno.x1_lr_tileset_abattoir,
WorldSno.x1_lr_tileset_bogcave,
WorldSno.x1_lr_tileset_fortress,
WorldSno.x1_lr_tileset_catacombs,
WorldSno.x1_lr_tileset_hexmaze,
WorldSno.x1_lr_tileset_exterior_bog,
WorldSno.x1_lr_tileset_aqueducts_small,
WorldSno.x1_lr_tileset_aqueducts_large,
WorldSno.x1_lr_tileset_corruptspire_large,
WorldSno.x1_lr_tileset_crypt_large,
WorldSno.x1_lr_tileset_crater_small,
WorldSno.x1_lr_tileset_floodedcave_large,
WorldSno.x1_lr_tileset_icecave_large,
WorldSno.x1_lr_tileset_keep_forge_large,
WorldSno.x1_lr_tileset_keep_river_large,
WorldSno.x1_lr_tileset_keep_war_large,
WorldSno.x1_lr_tileset_leorics_large,
WorldSno.x1_lr_tileset_rootcave_large,
WorldSno.x1_lr_tileset_sewers_large,
WorldSno.x1_lr_tileset_spidercaves_large,
WorldSno.x1_lr_tileset_wormcaves_large,
WorldSno.x1_lr_tileset_zoltarchives_large,
WorldSno.x1_lr_tileset_zoltruins_large,
WorldSno.x1_lr_tileset_corruptspire_small,
WorldSno.x1_lr_tileset_floodedcave_small,
WorldSno.x1_lr_tileset_icecave_small,
WorldSno.x1_lr_tileset_keep_forge_small,
WorldSno.x1_lr_tileset_keep_river_small,
WorldSno.x1_lr_tileset_keep_war_small,
WorldSno.x1_lr_tileset_rootcave_small,
WorldSno.x1_lr_tileset_sewers_small,
WorldSno.x1_lr_tileset_spidercaves_small,
WorldSno.x1_lr_tileset_wormcaves_small,
WorldSno.x1_lr_tileset_zoltruins_small,
WorldSno.x1_lr_tileset_pony,
WorldSno.x1_lr_tileset_pony_large,
WorldSno.x1_lr_tileset_pony_small,
WorldSno.x1_lr_tileset_exterior_wilderness,
WorldSno.x1_lr_tileset_exterior_highlands,
WorldSno.x1_lr_tileset_exterior_gardensofhope1,
WorldSno.x1_lr_tileset_exterior_gardensofhope2,
WorldSno.x1_lr_tileset_exterior_gardensofhope3,
WorldSno.x1_lr_tileset_exterior_graveyard,
WorldSno.x1_lr_tileset_exterior_pandext,
WorldSno.x1_lr_tileset_breakup_wortham,
WorldSno.x1_lr_tileset_exterior_boneyards,
WorldSno.x1_lr_tileset_cratertowers1_small,
WorldSno.x1_lr_tileset_cratertowers2_small,
WorldSno.x1_lr_tileset_cratertowers3_small,
WorldSno.x1_lr_tileset_cratertowers4_small,
WorldSno.x1_lr_tileset_cratertowers5_small,
WorldSno.x1_lr_tileset_cratertowers6_small,
WorldSno.x1_lr_tileset_cratertowers7_small,
WorldSno.x1_lr_tileset_exterior_ramparts1,
WorldSno.x1_lr_tileset_exterior_ramparts2,
WorldSno.x1_lr_tileset_exterior_ramparts3,
WorldSno.x1_lr_tileset_exterior_rampartsdamaged1,
WorldSno.x1_lr_tileset_exterior_rampartsdamaged2,
WorldSno.x1_lr_tileset_exterior_rampartsdamaged3,
WorldSno.x1_lr_tileset_hexmaze_large,
WorldSno.x1_lr_tileset_hexmaze_small,
WorldSno.x1_lr_tileset_catacombs_large,
WorldSno.x1_lr_tileset_catacombs_small,
WorldSno.x1_lr_tileset_bogcave_large,
WorldSno.x1_lr_tileset_bogcave_small,
WorldSno.x1_lr_tileset_fortress_small,
WorldSno.x1_lr_tileset_fortress_large,
WorldSno.x1_lr_tileset_abattoir_large,
WorldSno.x1_lr_tileset_abattoir_small,
WorldSno.x1_lr_tileset_westmarch_small,
WorldSno.x1_lr_tileset_westmarch_large,
WorldSno.x1_lr_tileset_westmarchfire,
WorldSno.x1_lr_tileset_westmarchfire_small,
WorldSno.x1_lr_tileset_westmarchfire_large,
WorldSno.x1_lr_tileset_fortressislands,
WorldSno.x1_lr_tileset_fortressislands_small,
WorldSno.x1_lr_tileset_hellportala_small,
WorldSno.x1_lr_tileset_hellportalb_small,
WorldSno.x1_lr_tileset_exterior_graveyard_small,
WorldSno.x1_lr_tileset_exterior_bog_small,
WorldSno.x1_lr_tileset_exterior_pandext_small,
WorldSno.x1_lr_tileset_exterior_pandext_large,
WorldSno.x1_lr_tileset_exterior_graveyard_large,
WorldSno.x1_lr_tileset_exterior_bog_large,
WorldSno.x1_lr_tileset_exterior_boneyards_large,
WorldSno.x1_lr_tileset_event_crypt_udderchaos,
WorldSno.x1_lr_tileset_crypt_small_udderchaos,
WorldSno.x1_lr_tileset_monster_prototypes,
WorldSno.x1_lr_tileset_exterior_boneyards_gg,
WorldSno.x1_lr_tileset_exterior_graveyard_small_gg,
WorldSno.x1_lr_tileset_exterior_graveyard_small_gr,
};
// `x1_lr` worlds `dungeonWorlds`
private static readonly WorldSno[] generatedNotDungeonsWorlds = new WorldSno[]
{
WorldSno.x1_lr_hubworld,
WorldSno.x1_lr_level_01,
WorldSno.x1_lr_level_02,
WorldSno.x1_lr_level_03,
WorldSno.x1_lr_level_04,
WorldSno.x1_lr_level_05,
WorldSno.x1_lr_level_06,
WorldSno.x1_lr_level_07,
WorldSno.x1_lr_level_08,
WorldSno.x1_lr_level_09,
WorldSno.x1_lr_level_10,
};
// `zolt` worlds
private static readonly WorldSno[] zoltWorlds = new WorldSno[]
{
WorldSno.a2c2dun_zolt_treasurehunter,
WorldSno.a2dun_zolt_sw_random01,
WorldSno.a2dun_zolt_timed01_level01,
WorldSno.a2dun_zolt_level01,
WorldSno.a2dun_zolt_level02,
WorldSno.a2dun_zolt_level03,
WorldSno.a2dun_zolt_lobby,
WorldSno.a2dun_zolt_bossfight_level04,
WorldSno.a2dun_zolt_head_random01,
WorldSno.a2dun_zolt_shadowrealm_level01,
WorldSno.a2dun_zolt_blood02,
WorldSno.a2dun_zolt_timed01_level02,
WorldSno.a2dun_zolt_random_portalroulette_02,
WorldSno.a2dun_zolt_sw_random01_level02,
WorldSno.x1_lr_tileset_zoltarchives,
WorldSno.x1_lr_tileset_zoltruins,
WorldSno.x1_lr_tileset_zoltarchives_small,
WorldSno.x1_lr_tileset_zoltarchives_large,
WorldSno.x1_lr_tileset_zoltruins_large,
WorldSno.x1_lr_tileset_zoltruins_small,
WorldSno.p4_bounty_grounds_zolt,
WorldSno.p4_a5_bounty_grounds_zolt,
WorldSno.pvp_zolt_ruins_arena,
WorldSno.pvp_zolt_small_arena,
};
// `uber` worlds
private static readonly WorldSno[] uberWorlds = new WorldSno[]
{
WorldSno.uber_bossworld1,
WorldSno.uber_bossworld2,
WorldSno.uber_bossworld3,
WorldSno.uber_portalworld,
WorldSno.a4dun_uber_diablo_shadowrealm_01,
};
// excluded from generation worlds
private static readonly WorldSno[] notDynamicWorlds = new WorldSno[] {
WorldSno.a1trdun_cave_old_ruins_random01,
WorldSno.a1trdun_cave_qa_well,
WorldSno.a1trdun_level05_templar,
WorldSno.a2dun_zolt_head_random01,
WorldSno.a2c1dun_swr_caldeum_01,
WorldSno.a2dun_cave_bloodvial_02,
WorldSno.a3dun_ruins_frost_city_a_02,
WorldSno.a3dun_crater_level_01,
WorldSno.a3dun_crater_level_02,
WorldSno.a3dun_crater_st_level01b,
WorldSno.a3dun_crater_st_level02b,
WorldSno.a3dun_crater_st_level04,
WorldSno.a3dun_crater_st_level04b,
WorldSno.a3dun_ruins_frost_city_a_01,
WorldSno.a4dun_hell_portal_01,
WorldSno.a4dun_hell_portal_02,
WorldSno.a4dun_garden_of_hope_random,
WorldSno.p4_forest_snow_icecave_01,
WorldSno.p4_forest_snow_01,
WorldSno.a3dun_crater_st_level01,
WorldSno.a3dun_crater_st_level02,
WorldSno.trdun_leoric_level02,
WorldSno.trdun_leoric_level03,
// all `Crater` worlds
WorldSno.a3dun_crater_st_level01,
WorldSno.a3dun_crater_st_level02,
WorldSno.a3dun_crater_level_01,
WorldSno.a3dun_crater_level_02,
WorldSno.a3dun_crater_st_level04,
WorldSno.a3dun_crater_level_03,
WorldSno.a3dun_crater_st_level01b,
WorldSno.a3dun_crater_st_level04b,
WorldSno.a3dun_crater_st_level02b,
WorldSno.pvp_craterst_arena,
WorldSno.x1_lr_tileset_crater,
WorldSno.x1_lr_tileset_crater_small,
WorldSno.x1_lr_tileset_cratertowers1_small,
WorldSno.x1_lr_tileset_cratertowers2_small,
WorldSno.x1_lr_tileset_cratertowers3_small,
WorldSno.x1_lr_tileset_cratertowers4_small,
WorldSno.x1_lr_tileset_cratertowers5_small,
WorldSno.x1_lr_tileset_cratertowers6_small,
WorldSno.x1_lr_tileset_cratertowers7_small,
// all `Hell_Portal` worlds
WorldSno.a4dun_hell_portal_01,
WorldSno.a4dun_hell_portal_02,
};
public static bool IsDungeon(this WorldSno worldSno)
{
return dungeonWorlds.Contains(worldSno);
}
public static bool IsGenerated(this WorldSno worldSno)
{
return worldSno.IsDungeon() || generatedNotDungeonsWorlds.Contains(worldSno);
}
public static bool IsUberWorld(this WorldSno worldSno)
{
return uberWorlds.Contains(worldSno);
}
public static bool IsUsingZoltCustomGrid(this WorldSno worldSno)
{
return zoltWorlds.Contains(worldSno);
}
public static bool IsNotDynamicWorld(this WorldSno worldSno)
{
return notDynamicWorlds.Contains(worldSno);
}
}
}

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
@ -849,25 +850,24 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
lock (player.RevealedObjects)
{
if (this.Hidden || this.Dead || !this.Visible || this.World == null) return false;
var mysticHiddenWorlds = new WorldSno[] {
WorldSno.trdun_crypt_falsepassage_01,
WorldSno.trdun_crypt_falsepassage_02,
WorldSno.trdun_crypt_fields_flooded_memories_level01,
WorldSno.trdun_crypt_fields_flooded_memories_level02,
WorldSno.trdun_crypt_skeletonkingcrown_00,
WorldSno.trdun_crypt_skeletonkingcrown_01,
WorldSno.trdun_crypt_skeletonkingcrown_02,
};
//Leave Miriam in Crypt
if (this.ActorSNO.Id == 175310)
if (this.World.WorldSNO.Id == 72636 ||
this.World.WorldSNO.Id == 72637 ||
this.World.WorldSNO.Id == 102299 ||
this.World.WorldSNO.Id == 165797 ||
this.World.WorldSNO.Id == 154587 ||
this.World.WorldSNO.Id == 60600 ||
this.World.WorldSNO.Id == 92126
)
return false;
if (this.ActorSNO.Id == 175310 && mysticHiddenWorlds.Contains(World.SNO)) return false;
//Destroy Bonewall and Jondar if Exit_S on Second Level of Cathedral
if (World.WorldSNO.Id == 50582 && this.ActorSNO.Id == 109209) return false;
if (World.WorldSNO.Id == 50582 && this.ActorSNO.Id == 86624) return false;
if (World.SNO == WorldSno.a1trdun_level04 && (this.ActorSNO.Id == 109209 || this.ActorSNO.Id == 86624)) return false;
if (this.ActorSNO.Name.Contains("Uber") && !this.World.WorldSNO.Name.Contains("Uber")) return false;
if (this.ActorSNO.Name.Contains("Uber") && !this.World.SNO.IsUberWorld()) return false;
if (this.ActorSNO.Name.Contains("AdventureMode") && this.World.Game.CurrentAct != 3000) return false;
if (this.ActorSNO.Name.Contains("ScriptedSequenceOnly")) return false;
@ -876,7 +876,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
if (player.World == null) return false;
if (this.ActorSNO.Id == 218339)
if (this.World.WorldSNO.Id == 71150)
if (this.World.SNO == WorldSno.trout_town)
if (this.CurrentScene.SceneSNO.Id == 33348)
if (this.Position.X < 2896)
return false;
@ -884,7 +884,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
if (!(this is Item) && player.World.GlobalID != this.World.GlobalID) return false;
if (!(this is Item) && this.GetScenesInRange().Count() > 0 && !this.GetScenesInRange().OrderBy(scene => PowerMath.Distance2D(scene.Position, this.Position)).First().IsRevealedToPlayer(player)) return false;
if (!(this is Item) && this.GetScenesInRange().Count > 0 && !this.GetScenesInRange().OrderBy(scene => PowerMath.Distance2D(scene.Position, this.Position)).First().IsRevealedToPlayer(player)) return false;
uint objId = player.NewDynamicID(this.GlobalID, (this is Player && (!(this as Player).IsInPvPWorld || this == player)) ? (int)(this as Player).PlayerIndex : -1);
@ -974,7 +974,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
#region Особенные случаи
//Задаём идл для зомбей в тристраме - ЖРАТ
if (this.World.WorldSNO.Id == 71150)
if (this.World.SNO == WorldSno.trout_town)
{
if (this.Tags != null)
if (this.Tags.ContainsKey(MarkerKeys.Group1Hash))
@ -982,7 +982,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
this.PlayActionAnimation(11514);
}
//Задаём идл для работяг
else if (this.World.WorldSNO.Id == 109362 & this.ActorSNO.Id == 84529)
else if (this.World.SNO == WorldSno.trout_tristram_inn & this.ActorSNO.Id == 84529)
this.PlayActionAnimation(102329);
else if (this.ActorSNO.Id == 4580)
player.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Inventory.VisualInventoryMessage()

View File

@ -52,7 +52,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
this.Attributes[GameAttribute.MinimapActive] = true;
this.Attributes[GameAttribute.Untargetable] = false;
switch (((this.ActorSNO.Target as DiIiS_NA.Core.MPQ.FileFormats.Actor).TagMap[MarkerKeys.BossEncounter].Target as DiIiS_NA.Core.MPQ.FileFormats.BossEncounter).Worlds[0])
var bossEncounter = ((this.ActorSNO.Target as DiIiS_NA.Core.MPQ.FileFormats.Actor).TagMap[MarkerKeys.BossEncounter].Target as DiIiS_NA.Core.MPQ.FileFormats.BossEncounter);
DestWorld = bossEncounter.Worlds[0];
switch (DestWorld)
{
case 60713:
DestArea = 60714; break;
@ -99,8 +101,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
}
DestWorld = ((this.ActorSNO.Target as DiIiS_NA.Core.MPQ.FileFormats.Actor).TagMap[MarkerKeys.BossEncounter].Target as DiIiS_NA.Core.MPQ.FileFormats.BossEncounter).Worlds[0];
DestPoint = ((this.ActorSNO.Target as DiIiS_NA.Core.MPQ.FileFormats.Actor).TagMap[MarkerKeys.BossEncounter].Target as DiIiS_NA.Core.MPQ.FileFormats.BossEncounter).I11;
DestPoint = bossEncounter.I11;
//get EncounterSNO
switch (this.ActorSNO.Id)
{
@ -178,8 +179,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
break;
}
this.Destination = new DiIiS_NA.GameServer.MessageSystem.Message.Fields.ResolvedPortalDestination
{
this.Destination = new ResolvedPortalDestination
{
WorldSNO = DestWorld,
DestLevelAreaSNO = DestArea,
StartingPointActorTag = DestPoint

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
@ -76,7 +77,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
public Boss(MapSystem.World world, int snoId, TagMap tags)
: base(world, snoId, tags)
{
if (snoId == 80509 && world.WorldSNO.Id == 50613) this.SetVisible(false);
if (snoId == 80509 && world.SNO == WorldSno.a2dun_zolt_lobby) this.SetVisible(false);
this.Attributes[GameAttribute.MinimapActive] = true;
//this.Attributes[GameAttribute.Immune_To_Charm] = true;
this.Attributes[GameAttribute.//Blizzless Project 2022

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.MapSystem;
@ -49,8 +50,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
public override bool Reveal(Player player)
{
if (this.ActorSNO.Id == 167185) return false;
if (this.ActorSNO.Id == 207615 && this.World.WorldSNO.Id != 158593) return false; //dakab door
if (this.ActorSNO.Id == 153836 && this.World.WorldSNO.Id == 158593) return false; //not dakab door
if (this.ActorSNO.Id == 207615 && this.World.SNO != WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large) return false; //dakab door
if (this.ActorSNO.Id == 153836 && this.World.SNO == WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large) return false; //not dakab door
if (this.ActorSNO.Id == 220337) //Treasure Room door
this.isOpened = true;

View File

@ -18,6 +18,7 @@ using DiIiS_NA.GameServer.MessageSystem;
using DiIiS_NA.Core.Logging;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
{
@ -36,12 +37,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
//this.Field2 = 0x9;//16;
this.Attributes[GameAttribute.MinimapActive] = true;
//this.Attributes[GameAttribute.MinimapIconOverride] = 218394;
if (this.World.WorldSNO.Name.ToLower().Contains("x1_lr_tileset"))
if (this.World.SNO.IsDungeon())
{
this.Destination = new ResolvedPortalDestination()
{
DestLevelAreaSNO = 332339,
WorldSNO = 332336,
WorldSNO = (int)WorldSno.x1_tristram_adventure_mode_hub,
StartingPointActorTag = 24
};
}
@ -52,10 +53,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
if (!base.Reveal(player))
return false;
if (World.WorldSNO.Id == 92126)
if (World.SNO == WorldSno.trdun_crypt_skeletonkingcrown_02)
{
Portal Exit = null;
foreach (Actor actor in World.Game.GetWorld(154587).GetStartingPointById(172).GetActorsInRange(120f))
foreach (Actor actor in World.Game.GetWorld(WorldSno.trdun_crypt_skeletonkingcrown_00).GetStartingPointById(172).GetActorsInRange(120f))
if (actor is Portal)
Exit = actor as Portal;
if (Exit != null)
@ -77,7 +78,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
if (this.Destination.StartingPointActorTag != 0)
{
StartingPoint NeededStartingPoint = world.GetStartingPointById(this.Destination.StartingPointActorTag);
var DestWorld = world.Game.GetWorld(this.Destination.WorldSNO);
var DestWorld = world.Game.GetWorld((WorldSno)this.Destination.WorldSNO);
var StartingPoints = DestWorld.GetActorsBySNO(5502);
foreach (var ST in StartingPoints)
{
@ -96,14 +97,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
{
Logger.Debug("(OnTargeted) Portal has been activated ");
if (this.World.WorldSNO.Name.ToLower().Contains("x1_lr_tileset"))
if (this.World.SNO.IsDungeon())
{
this.Destination.DestLevelAreaSNO = 332339;
this.Destination.WorldSNO = 332336;
this.Destination.WorldSNO = (int)WorldSno.x1_tristram_adventure_mode_hub;
this.Destination.StartingPointActorTag = 24;
}
var world = this.World.Game.GetWorld(this.Destination.WorldSNO);
var world = this.World.Game.GetWorld((WorldSno)this.Destination.WorldSNO);
if (world == null)
{

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
@ -44,7 +45,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
public override bool Reveal(Player player)
{
if (this.World.WorldSNO.Id == 180550 || this.World.WorldSNO.Id == 107050)
if (this.World.SNO == WorldSno.a1dun_spidercave_01 || this.World.SNO == WorldSno.trout_oldtistram_cellar_3)
{
this.Destroy();
return false;

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.TagMap;
@ -25,7 +26,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
{
class HearthPortal : Gizmo
{
public int ReturnWorld = -1;
public WorldSno ReturnWorld = WorldSno.__NONE;
public Vector3D ReturnPosition = null;
@ -50,7 +51,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
return;
}
if (this.World.Game.QuestManager.SideQuests.ContainsKey(120396) && this.World.Game.QuestManager.SideQuests[120396].Completed && this.ReturnWorld == 50596) return;
if (this.World.Game.QuestManager.SideQuests.ContainsKey(120396) && this.World.Game.QuestManager.SideQuests[120396].Completed && this.ReturnWorld == WorldSno.a2dun_zolt_timed01_level01) return;
Vector3D exCheckpoint = player.CheckPointPosition;

View File

@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq;
//Blizzless Project 2022
using DiIiS_NA.Core.Helpers.Math;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
@ -58,8 +59,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
public override bool Reveal(PlayerSystem.Player player)
{
if (this.ActorSNO.Id == 190524 && this.World.WorldSNO.Id != 158593) return false; //dakab chest
if (this.ActorSNO.Id == 190708 && this.World.WorldSNO.Id == 158593) return false; //not dakab chest
if (this.ActorSNO.Id == 190524 && this.World.SNO != WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large) return false; //dakab chest
if (this.ActorSNO.Id == 190708 && this.World.SNO == WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large) return false; //not dakab chest
if (!rewardChestAvailable) return false; //event reward chest
@ -142,9 +143,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
}
}
if (GeneratorsSystem.LoreRegistry.Lore.ContainsKey(this.World.WorldSNO.Id) && GeneratorsSystem.LoreRegistry.Lore[this.World.WorldSNO.Id].chests_lore.ContainsKey(this.ActorSNO.Id))
if (GeneratorsSystem.LoreRegistry.Lore.ContainsKey(this.World.SNO) && GeneratorsSystem.LoreRegistry.Lore[this.World.SNO].chests_lore.ContainsKey(this.ActorSNO.Id))
foreach (var p in this.GetPlayersInRange(30))
foreach (int loreId in GeneratorsSystem.LoreRegistry.Lore[this.World.WorldSNO.Id].chests_lore[this.ActorSNO.Id])
foreach (int loreId in GeneratorsSystem.LoreRegistry.Lore[this.World.SNO].chests_lore[this.ActorSNO.Id])
if (!p.HasLore(loreId))
{
World.DropItem(this, null, ItemGenerator.CreateLore(p, loreId));
@ -192,7 +193,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
if (this.ActorSNO.Id == 2975)
{
if (this.World.WorldSNO.Id == 50610)
if (this.World.SNO == WorldSno.a2dun_zolt_level01)
foreach (var plr in this.World.Game.Players.Values)
plr.InGameClient.SendMessage(new QuestCounterMessage()
{

View File

@ -8,6 +8,7 @@ using System.Linq;
using DiIiS_NA.Core.Helpers.Math;
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
@ -42,7 +43,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
{
this.Destination = new ResolvedPortalDestination
{
WorldSNO = 338944,
WorldSNO = (int)WorldSno.x1_westm_graveyard_deathorb,
DestLevelAreaSNO = 338946,
StartingPointActorTag = 171
};
@ -80,7 +81,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
{
Logger.Debug("(OnTargeted) Portal has been activated, Id: {0}, LevelArea: {1}, World: {2}", this.ActorSNO.Id, this.Destination.DestLevelAreaSNO, this.Destination.WorldSNO);
var world = this.World.Game.GetWorld(this.Destination.WorldSNO);
var world = this.World.Game.GetWorld((WorldSno)this.Destination.WorldSNO);
if (world == null)
{

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.MapSystem;
@ -42,7 +43,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
{
_collapsed = true;
if (this.World.WorldSNO.Id == 306549)
if (this.World.SNO == WorldSno.x1_westm_intro)
switch (this.ActorSNO.Id)
{
case 308474:

View File

@ -2,6 +2,7 @@
using DiIiS_NA.Core.MPQ;
//Blizzless Project 2022
using DiIiS_NA.Core.MPQ.FileFormats;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.SNO;
//Blizzless Project 2022
@ -37,7 +38,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
this.Attributes[GameAttribute.Hitpoints_Cur] = this.Attributes[GameAttribute.Hitpoints_Max_Total];
this.Attributes[GameAttribute.Invulnerable] = true;
this.Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
if (world.WorldSNO.Id == 308705)
if (world.SNO == WorldSno.x1_westmarch_overlook_d)
{
this.Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0f;
this.Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0f;

View File

@ -41,9 +41,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
if (ActorData.TagMap.ContainsKey(ActorKeys.Lore))
Logger.Debug("Lore detected: {0}", ActorData.TagMap[ActorKeys.Lore].Id);
if (LoreRegistry.Lore.ContainsKey(this.World.WorldSNO.Id) && LoreRegistry.Lore[this.World.WorldSNO.Id].chests_lore.ContainsKey(this.ActorSNO.Id))
if (LoreRegistry.Lore.ContainsKey(this.World.SNO) && LoreRegistry.Lore[this.World.SNO].chests_lore.ContainsKey(this.ActorSNO.Id))
foreach (var p in this.GetPlayersInRange(30))
foreach (int loreId in LoreRegistry.Lore[this.World.WorldSNO.Id].chests_lore[this.ActorSNO.Id])
foreach (int loreId in LoreRegistry.Lore[this.World.SNO].chests_lore[this.ActorSNO.Id])
if (!p.HasLore(loreId))
{
World.DropItem(this, null, ItemGenerator.CreateLore(p, loreId));

View File

@ -43,7 +43,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
snoLevelArea = SNOLevelArea,//102362,
});
player.SavePointData = new SavePointData() { snoWorld = World.WorldSNO.Id, SavepointId = SavepointId };
player.SavePointData = new SavePointData() { snoWorld = (int)World.SNO, SavepointId = SavepointId };
player.UpdateHeroState();
player.CheckPointPosition = this._position; // This seemed easier than having on Death find the SavePoint based on ID, then getting its location. - DarkLotus
}

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.MapSystem;
@ -27,7 +28,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
public override bool Reveal(Player player)
{
if (this.World.WorldSNO.Id == 304235) return false;
if (this.World.SNO == WorldSno.x1_westmarch_hub) return false;
return base.Reveal(player);
}
}

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.MapSystem;
@ -45,7 +46,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
public override bool Reveal(Player player)
{
if (this.World.WorldSNO.Id == 306549)
if (this.World.SNO == WorldSno.x1_westm_intro)
{
World.BroadcastIfRevealed(plr => new SetIdleAnimationMessage
{

View File

@ -1,4 +1,5 @@
//Blizzless Project 2022
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.MapSystem;
@ -30,7 +31,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Spawners
public override void OnPlayerApproaching(Player player)
{
if (player.Position.DistanceSquared(ref _position) < ActorData.Sphere.Radius * ActorData.Sphere.Radius * 1.5 * this.Scale * this.Scale && !_collapsed)
if (this.World.WorldSNO.Id == 50585)
if (this.World.SNO == WorldSno.a1trdun_level07)
{
_collapsed = true;

View File

@ -94,7 +94,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
if (scene.Specification == null) continue;
foreach (var area in scene.Specification.SNOLevelAreas)
{
if (wayPointInfo[i].SNOWorld != this.World.WorldSNO.Id || wayPointInfo[i].SNOLevelArea != area)
if (wayPointInfo[i].SNOWorld != (int)this.World.SNO || wayPointInfo[i].SNOLevelArea != area)
continue;
this.SNOLevelArea = wayPointInfo[i].SNOLevelArea;

View File

@ -46,6 +46,7 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Hireling;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Artisan;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
{
@ -100,7 +101,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
public override bool Reveal(Player player)
{
if (this.ActorSNO.Id == 81609) return false;
if (this.ActorSNO.Id == 114622 && this.World.WorldSNO.Id == 71150 && this.World.Game.CurrentAct != 3000) return false;
if (this.ActorSNO.Id == 114622 && this.World.SNO == WorldSno.trout_town && this.World.Game.CurrentAct != 3000) return false;
return base.Reveal(player);
}

View File

@ -31,6 +31,7 @@ using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
{
@ -195,14 +196,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
return;
this.Brain.Update(tickCounter);
if (this.World.WorldSNO.Id == 109561)
if (this.World.SNO == WorldSno.a4dun_diablo_arena)
if (this.ActorSNO.Id == 114917)
if (this.Attributes[GameAttribute.Hitpoints_Cur] < (this.Attributes[GameAttribute.Hitpoints_Max_Total] / 2))
{
this.Attributes[GameAttribute.Hitpoints_Cur] = this.Attributes[GameAttribute.Hitpoints_Max_Total];
this.World.Game.QuestManager.Advance();//advancing United Evil quest
var nextWorld = this.World.Game.GetWorld(WorldSno.a4dun_diablo_shadowrealm_01);
foreach (var plr in this.World.Players.Values)
plr.ChangeWorld(this.World.Game.GetWorld(153670), this.World.Game.GetWorld(153670).GetStartingPointById(172).Position);
plr.ChangeWorld(nextWorld, nextWorld.GetStartingPointById(172).Position);
}
if (this is Boss)

File diff suppressed because it is too large Load Diff

View File

@ -66,6 +66,7 @@ using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem;
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
//Blizzless Project 2022
using System.Diagnostics;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
@ -95,8 +96,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
public TickTimer GlobalPvPTimer;
public TickTimer QuestTimer;
public int WorldOfPortalNephalem = -1;
public int WorldOfPortalNephalemSec = -1;
public WorldSno WorldOfPortalNephalem = WorldSno.__NONE;
public WorldSno WorldOfPortalNephalemSec = WorldSno.__NONE;
public int NephalemGreaterLevel = -1;
public bool NephalemGreater = false;
public bool NephalemBuff = false;
@ -138,7 +139,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
/// Dictionary that tracks world.
/// NOTE: This tracks by WorldSNO rather than by DynamicID; this.Objects _does_ still contain the world since it is a DynamicObject
/// </summary>
private readonly ConcurrentDictionary<int, World> _worlds;
private readonly ConcurrentDictionary<WorldSno, World> _worlds;
public List<World> Worlds
{
@ -162,14 +163,15 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
public int acceptedPlayers;
};
public Dictionary<int, List<Action>> OnLoadWorldActions = new Dictionary<int, List<Action>>();
public Dictionary<WorldSno, List<Action>> OnLoadWorldActions = new Dictionary<WorldSno, List<Action>>();
public Dictionary<int, List<Action>> OnLoadSceneActions = new Dictionary<int, List<Action>>();
public BossEncounter CurrentEncounter = new BossEncounter { SnoId = -1, activated = false, acceptedPlayers = 0 };
/// <summary>
/// Starting world's sno id.
/// Starting world's sno.
/// </summary>
public int StartingWorldSNOId { get; private set; }
public WorldSno StartingWorldSNO { get; private set; }
/// <summary>
/// Starting world's monster level
@ -196,7 +198,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
get
{
return GetWorld(this.StartingWorldSNOId);
return GetWorld(this.StartingWorldSNO);
}
}
@ -422,8 +424,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
this._lastObjectID = (uint)gameId * 100000;
this.Empty = true;
this.Players = new ConcurrentDictionary<GameClient, Player>();
this._worlds = new ConcurrentDictionary<int, World>();
this.StartingWorldSNOId = 79100;// FIXME: track the player's save point and toss this stuff.
this._worlds = new ConcurrentDictionary<WorldSno, World>();
this.StartingWorldSNO = WorldSno.pvp_caout_arena_01;// FIXME: track the player's save point and toss this stuff.
this.InitialMonsterLevel = initalLevel;
this.MonsterLevel = initalLevel;
this.QuestManager = new QuestManager(this);
@ -443,7 +445,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
this.GameDBSession = new GameDBSession();
this.LockdownTimer = TickTimer.WaitSeconds(this, 60f, new Action<int>((q) =>
{
if (this.Empty || this.Players.Count == 0)
if (this.Empty || Players.IsEmpty)
{
Logger.Info("All players disconnected, closing game session.");
this.Dispose();
@ -688,13 +690,13 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
joinedPlayer.EnterWorld(this.StartingWorld.GetStartingPointById(130).Position);
break;
case 200:
joinedPlayer.ChangeWorld(this.GetWorld(204707), this.GetWorld(204707).GetStartingPointById(206).Position);
joinedPlayer.ChangeWorld(this.GetWorld(WorldSno.a3dun_hub_adria_tower_intro), this.GetWorld(WorldSno.a3dun_hub_adria_tower_intro).GetStartingPointById(206).Position);
break;
case 300:
joinedPlayer.ChangeWorld(this.GetWorld(182944), this.GetWorld(182944).StartingPoints.First().Position);
joinedPlayer.ChangeWorld(this.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance), this.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance).StartingPoints.First().Position);
break;
case 400:
joinedPlayer.ChangeWorld(this.GetWorld(308705), this.GetWorld(308705).StartingPoints.First().Position);
joinedPlayer.ChangeWorld(this.GetWorld(WorldSno.x1_westmarch_overlook_d), this.GetWorld(WorldSno.x1_westmarch_overlook_d).StartingPoints.First().Position);
break;
default:
break;
@ -960,7 +962,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
case Game.Mode.Portals:
this.QuestsOrder = new int[] { -1 };
this.StartingWorldSNOId = 459976;
this.StartingWorldSNO = WorldSno.weekly_challenge_hub;
this.QuestProgress = new QuestRegistry(this);
break;
}
@ -972,7 +974,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
this.CurrentAct = 0;
this.QuestsOrder = questsOrder_a1;
this.QuestProgress = new QuestRegistry(this);
this.StartingWorldSNOId = 79100;
this.StartingWorldSNO = WorldSno.pvp_caout_arena_01;
return;
}
if (CurrentAct != act)
@ -983,38 +985,38 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
case 0:
this.QuestsOrder = questsOrder_a1;
this.StartingWorldSNOId = 71150;
this.StartingWorldSNO = WorldSno.trout_town;
this.QuestProgress = new ActI(this);
break;
case 100:
this.QuestsOrder = questsOrder_a2;
this.StartingWorldSNOId = 161472;
this.StartingWorldSNO = WorldSno.caout_refugeecamp;
this.QuestProgress = new ActII(this);
break;
case 200:
this.QuestsOrder = questsOrder_a3;
this.StartingWorldSNOId = 172909;
this.StartingWorldSNO = WorldSno.a3dun_hub_keep;
this.QuestProgress = new ActIII(this);
break;
case 300:
this.QuestsOrder = questsOrder_a4;
this.StartingWorldSNOId = 178152;
this.StartingWorldSNO = WorldSno.a4dun_heaven_hub_keep;
this.QuestProgress = new ActIV(this);
break;
case 400:
this.QuestsOrder = questsOrder_a5;
this.StartingWorldSNOId = 304235;
this.StartingWorldSNO = WorldSno.x1_westmarch_hub;
this.QuestProgress = new ActV(this);
break;
case 3000:
this.QuestsOrder = questsOrder_openWorld;
this.StartingWorldSNOId = 332336;
this.StartingWorldSNO = WorldSno.x1_tristram_adventure_mode_hub;
this.QuestProgress = new OpenWorld(this);
this.QuestManager.SetBounties();
break;
default:
this.QuestsOrder = questsOrder_a1;
this.StartingWorldSNOId = 71150;
this.StartingWorldSNO = WorldSno.trout_town;
this.QuestProgress = new QuestRegistry(this);
break;
}
@ -1107,13 +1109,13 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
plr.Value.ChangeWorld(this.StartingWorld, this.StartingWorld.GetStartingPointById(130).Position);
break;
case 200:
plr.Value.ChangeWorld(this.GetWorld(204707), this.GetWorld(204707).GetStartingPointById(206).Position);
plr.Value.ChangeWorld(this.GetWorld(WorldSno.a3dun_hub_adria_tower_intro), this.GetWorld(WorldSno.a3dun_hub_adria_tower_intro).GetStartingPointById(206).Position);
break;
case 300:
plr.Value.ChangeWorld(this.GetWorld(182944), this.GetWorld(182944).StartingPoints.First().Position);
plr.Value.ChangeWorld(this.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance), this.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance).StartingPoints.First().Position);
break;
case 400:
plr.Value.ChangeWorld(this.GetWorld(308705), this.GetWorld(308705).StartingPoints.First().Position);
plr.Value.ChangeWorld(this.GetWorld(WorldSno.x1_westmarch_overlook_d), this.GetWorld(WorldSno.x1_westmarch_overlook_d).StartingPoints.First().Position);
break;
default:
break;
@ -1375,7 +1377,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
}*/
var encAsset = (DiIiS_NA.Core.MPQ.FileFormats.BossEncounter)MPQStorage.Data.Assets[SNOGroup.BossEncounter][snoId].Data;
World encWorld = this.GetWorld(encAsset.Worlds[0]);
World encWorld = this.GetWorld((WorldSno)encAsset.Worlds[0]);
Logger.Debug("TeleportToBossEncounter, worldId: {0}", encAsset.Worlds[0]);
Vector3D startPoint = null;
switch (snoId)
@ -1651,10 +1653,10 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
this.CurrentEncounter.acceptedPlayers = 0;
}
public void AddOnLoadAction(int worldSNO, Action action)
public void AddOnLoadWorldAction(WorldSno worldSNO, Action action)
{
Logger.Trace("AddOnLoadAction: {0}", worldSNO);
if (this.Players.Values.Where(p => p.World != null && p.World.WorldSNO.Id == worldSNO).Count() > 0)
Logger.Trace("AddOnLoadWorldAction: {0}", worldSNO);
if (Players.Values.Any(p => p.World != null && p.World.SNO == worldSNO))
{
action.Invoke();
}
@ -1667,33 +1669,45 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
}
}
public void AddOnLoadSceneAction(int sceneSNO, Action action)
{
Logger.Trace("AddOnLoadSceneAction: {0}", sceneSNO);
if (!this.OnLoadSceneActions.ContainsKey(sceneSNO))
this.OnLoadSceneActions.Add(sceneSNO, new List<Action>());
this.OnLoadSceneActions[sceneSNO].Add(action);
}
#endregion
#region world collection
public void AddWorld(World world)
{
if (world.WorldSNO.Id == -1 || WorldExists(world.WorldSNO.Id))
Logger.Error(String.Format("World has an invalid SNO or was already being tracked (ID = {0}, SNO = {1})", world.GlobalID, world.WorldSNO.Id));
if (world.SNO == WorldSno.__NONE || WorldExists(world.SNO))
Logger.Error(String.Format("World has an invalid SNO or was already being tracked (ID = {0}, SNO = {1})", world.GlobalID, world.SNO));
else
this._worlds.TryAdd(world.WorldSNO.Id, world);
this._worlds.TryAdd(world.SNO, world);
}
public void RemoveWorld(World world)
{
World removed;
if (world.WorldSNO.Id == -1 || !WorldExists(world.WorldSNO.Id))
Logger.Error(String.Format("World has an invalid SNO or was not being tracked (ID = {0}, SNO = {1})", world.GlobalID, world.WorldSNO.Id));
if (world.SNO == WorldSno.__NONE || !WorldExists(world.SNO))
Logger.Error(String.Format("World has an invalid SNO or was not being tracked (ID = {0}, SNO = {1})", world.GlobalID, world.SNO));
else
this._worlds.TryRemove(world.WorldSNO.Id, out removed);
this._worlds.TryRemove(world.SNO, out removed);
}
public World GetWorld(int worldSNO)
public World GetWorld(WorldSno worldSNO)
{
if (worldSNO == WorldSno.__NONE)
return null;
World world;
if (this.CurrentAct != 3000 && worldSNO == 332336) //fix for a1 Tristram
worldSNO = 71150;
if (this.CurrentAct != 3000 && worldSNO == WorldSno.x1_tristram_adventure_mode_hub) //fix for a1 Tristram
worldSNO = WorldSno.trout_town;
if (!WorldExists(worldSNO)) // If it doesn't exist, try to load it
{
@ -1721,12 +1735,12 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
return world;
}
public bool WorldExists(int worldSNO)
public bool WorldExists(WorldSno worldSNO)
{
return this._worlds.ContainsKey(worldSNO);
}
public bool WorldCleared(int worldSNO)
public bool WorldCleared(WorldSno worldSNO)
{
return this._worlds[worldSNO].Actors.Values.OfType<Monster>().Where(m => m.OriginalLevelArea != -1 && !m.Dead).Count() < 5;
}
@ -1749,7 +1763,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
.Where(w => w.SNOWorld != -1).ToList();
var wayPointInfo = actData.Where(w => w.Flags == 3 || (isOpenWorld ? (w.Flags == 2) : (w.Flags == 1))).ToList();
//Logger.Debug("GetWayPointWorldById: world id {0}", wayPointInfo[id].SNOWorld);
return GetWorld(wayPointInfo[id].SNOWorld);
return GetWorld((WorldSno)wayPointInfo[id].SNOWorld);
}
#endregion

View File

@ -30,6 +30,7 @@ using DiIiS_NA.GameServer.GSSystem.ItemsSystem;
using DiIiS_NA.Core.Helpers.Math;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
@ -104,7 +105,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
Act = b.BountyData0.ActData,
Type = b.BountyData0.Type,
LevelArea = b.BountyData0.LeveAreaSNO0,
World = -1,
World = WorldSno.__NONE,
Target = b.QuestSteps
.SelectMany(s => s.StepObjectiveSets)
.SelectMany(s => s.StepObjectives)
@ -146,7 +147,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
.SelectMany(s => s.StepObjectiveSets)
.SelectMany(s => s.StepObjectives)
.Single(o => o.ObjectiveType == DiIiS_NA.Core.MPQ.FileFormats.QuestStepObjectiveType.KillAny).SNOName1.Id,
World = -1,
World = WorldSno.__NONE,
Target = b.QuestSteps
.SelectMany(s => s.StepObjectiveSets)
.SelectMany(s => s.StepObjectives)
@ -393,8 +394,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
foreach (var plr in this.Game.Players.Values)
{
if (plr.World.WorldSNO.Id == 50596)
plr.ChangeWorld(plr.World.Game.GetWorld(70885), plr.World.Game.GetWorld(70885).GetStartingPointById(63));
if (plr.World.SNO == WorldSno.a2dun_zolt_timed01_level01)
{
var world = plr.World.Game.GetWorld(WorldSno.caout_town);
plr.ChangeWorld(world, world.GetStartingPointById(63));
}
}
}
@ -844,7 +848,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
public DiIiS_NA.Core.MPQ.FileFormats.BountyData.ActT Act { get; set; }
public DiIiS_NA.Core.MPQ.FileFormats.BountyData.BountyType Type { get; set; }
public int LevelArea { get; set; }
public int World { get; set; }
public WorldSno World { get; set; }
public bool PortalSpawned = false;
public bool SubsceneSpawned = false;
public int Target { get; set; }
@ -894,7 +898,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
});
}
}
public void CheckKill(int snoId, int levelArea, int world)
public void CheckKill(int snoId, int levelArea, WorldSno world)
{
//435868
//220789

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
//Blizzless Project 2022
using DiIiS_NA.Core.Helpers.Math;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
@ -18,10 +19,10 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
public List<List<int>> map;
};
public static readonly Dictionary<int, List<DRLGLayout>> Templates = new Dictionary<int, List<DRLGLayout>>
public static readonly Dictionary<WorldSno, List<DRLGLayout>> Templates = new Dictionary<WorldSno, List<DRLGLayout>>
{
#region Cathedral
{50579, //cath, 1st level
{WorldSno.a1trdun_level01, //cath, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -65,7 +66,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
}
},
{50582, //cath, 2nd level
{WorldSno.a1trdun_level04, //cath, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -83,7 +84,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50584, //cath, 4th level
{WorldSno.a1trdun_level06, //cath, 4th level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 5,
@ -118,7 +119,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region Araneae
{180550, //Caverns of Araneae
{WorldSno.a1dun_spidercave_01, //Caverns of Araneae
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -140,7 +141,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region Fields of Misery
{82370, //Lost Mine, 1st level
{WorldSno.a1_cave_fields_minecavea_level01, //Lost Mine, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 4,
@ -158,7 +159,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{82371, //Lost Mine, 2nd level
{WorldSno.a1_cave_fields_minecavea_level02, //Lost Mine, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 4,
@ -175,7 +176,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{102299, //Decaying Crypt, 1st level
{WorldSno.trdun_crypt_fields_flooded_memories_level01, //Decaying Crypt, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -194,7 +195,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{165797, //Decaying Crypt, 2nd level
{WorldSno.trdun_crypt_fields_flooded_memories_level02, //Decaying Crypt, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -211,7 +212,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{119888, //Khazra Den
{WorldSno.fields_cave_swordofjustice_level01, //Khazra Den
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -228,7 +229,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{81163, //Scavenger's Den 1st level
{WorldSno.a1_cave_fields_scavengerden_level01, //Scavenger's Den 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -245,7 +246,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{81164, //Scavenger's Den 2nd level
{WorldSno.a1_cave_fields_scavengerden_level02, //Scavenger's Den 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -263,7 +264,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region Defiled crypts
{154587, //Defiled crypts, true
{WorldSno.trdun_crypt_skeletonkingcrown_00, //Defiled crypts, true
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -280,7 +281,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{72638, //Defiled crypts, falseOne
{WorldSno.trdun_crypt_falsepassage_01, //Defiled crypts, falseOne
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -297,7 +298,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{72637, //Defiled crypts, falseTwo
{WorldSno.trdun_crypt_falsepassage_02, //Defiled crypts, falseTwo
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -316,7 +317,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region 4th Act
{121579, //The Silver Spire, 1st level
{WorldSno.a4dun_spire_level_01, //The Silver Spire, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -334,7 +335,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{129305, //The Silver Spire, 2nd level
{WorldSno.a4dun_spire_level_02, //The Silver Spire, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -352,7 +353,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{129306, //The Silver Spire, 4th level
{WorldSno.a4dun_spire_level_03, //The Silver Spire, 4th level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -378,7 +379,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
}
},
{210725, //The Silver Spire, 5th level
{WorldSno.a4dun_spire_level_04, //The Silver Spire, 5th level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -398,7 +399,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region 3rd Act
{93104, //The Keep Depths, 1st level
{WorldSno.a3dun_keep_level03, //The Keep Depths, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -415,7 +416,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{75434, //The Keep Depths, 2nd level
{WorldSno.a3dun_keep_level04, //The Keep Depths, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 4,
@ -434,7 +435,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{136415, //The Keep Depths, 3rd level
{WorldSno.a3dun_keep_level05, //The Keep Depths, 3rd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -453,7 +454,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{189910, //Icefall Caves, 1st level
{WorldSno.a3dun_icecaves_timed_01, //Icefall Caves, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -470,7 +471,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{221689, //Icefall Caves, 2nd level
{WorldSno.a3dun_icecaves_timed_01_level_02, //Icefall Caves, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -486,7 +487,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{189259, //Caverns of Frost, 1st level
{WorldSno.a3dun_icecaves_random_01, //Caverns of Frost, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -503,7 +504,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{221688, //Caverns of Frost, 2nd level
{WorldSno.a3dun_icecaves_random_01_level_02, //Caverns of Frost, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -520,7 +521,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{174516, //Fortified Bunker, 1st level
{WorldSno.a3dun_keep_random_01, //Fortified Bunker, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -538,7 +539,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{221748, //Fortified Bunker, 2nd level
{WorldSno.a3dun_keep_random_01_level_02, //Fortified Bunker, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -556,7 +557,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{174555, //The Barracks, 1st level
{WorldSno.a3dun_keep_random_02, //The Barracks, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -574,7 +575,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{221749, //The Barracks, 2nd level
{WorldSno.a3dun_keep_random_02_level_02, //The Barracks, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -592,7 +593,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{174560, //Battlefield Stores, 1st level
{WorldSno.a3dun_keep_random_03, //Battlefield Stores, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -610,7 +611,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{221750, //Battlefield Stores, 2nd level
{WorldSno.a3dun_keep_random_03_level_02, //Battlefield Stores, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -628,7 +629,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{174665, //The Foundry, 1st level
{WorldSno.a3dun_keep_random_04, //The Foundry, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -646,7 +647,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{221751, //The Foundry, 2nd level
{WorldSno.a3dun_keep_random_04_level_02, //The Foundry, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -665,7 +666,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region 2nd Act
{50588, //Sewers of Caldeum
{WorldSno.a2c1dun_swr_caldeum_01, //Sewers of Caldeum
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -684,7 +685,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50589, //Sirocco Caverns, 1st level
{WorldSno.a2c2dun_cave_random01, //Sirocco Caverns, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 4,
@ -701,7 +702,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{220804, //Sirocco Caverns, 2nd level
{WorldSno.a2c2dun_cave_random01_level02, //Sirocco Caverns, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -717,7 +718,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{2812, //Chamber of the Lost Idol
{WorldSno.a2c2dun_zolt_treasurehunter, //Chamber of the Lost Idol
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -735,7 +736,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{62776, //Western Channel
{WorldSno.a2dun_aqd_special_a, //Western Channel
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -754,7 +755,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{62779, //Eastern Channel
{WorldSno.a2dun_aqd_special_b, //Eastern Channel
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 4,
@ -772,7 +773,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{157882, //Tomb of Sardar
{WorldSno.a2dun_aqd_oasis_randomfacepuzzle_small, //Tomb of Sardar
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -790,7 +791,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{158593, //Tomb of Khan Dakab
{WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large, //Tomb of Khan Dakab
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -809,7 +810,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{111666, //Cave of Burrowing Horror, 1st level
{WorldSno.a2dun_boneyard_worm_cave_01, //Cave of Burrowing Horror, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -827,7 +828,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{218970, //Cave of Burrowing Horror, 2nd level
{WorldSno.a2dun_boneyard_worm_cave_02, //Cave of Burrowing Horror, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -844,7 +845,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{204628, //Cave of the Betrayer, 1st level
{WorldSno.a2dun_cave_bloodvial_01, //Cave of the Betrayer, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -861,7 +862,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{204674, //Cave of the Betrayer, 2nd level
{WorldSno.a2dun_cave_bloodvial_02, //Cave of the Betrayer, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -878,7 +879,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{169477, //Mysterious Cave, 1st level
{WorldSno.a2dun_cave_mapdungeon_level01, //Mysterious Cave, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -895,7 +896,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{194238, //Mysterious Cave, 2nd level
{WorldSno.a2dun_cave_mapdungeon_level02, //Mysterious Cave, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -911,7 +912,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{146619, //Ruined Cistern
{WorldSno.a2dun_swr_swr_to_oasis_level01, //Ruined Cistern
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -928,7 +929,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{80589, //Realm of Shadow
{WorldSno.a2dun_zolt_shadowrealm_level01, //Realm of Shadow
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -945,7 +946,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{61631, //The Forgotten Ruins
{WorldSno.a2dun_zolt_head_random01, //The Forgotten Ruins
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -962,7 +963,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50594, //The Ruins, 1st level
{WorldSno.a2dun_zolt_sw_random01, //The Ruins, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -979,7 +980,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{222575, //The Ruins, 2nd level
{WorldSno.a2dun_zolt_sw_random01_level02, //The Ruins, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -996,7 +997,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{123183, //Vault of the Assassin
{WorldSno.a2dun_zolt_blood02, //Vault of the Assassin
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1013,7 +1014,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50596, //The Crumbling Vault
{WorldSno.a2dun_zolt_timed01_level01, //The Crumbling Vault
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -1043,7 +1044,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50610, //The Unknown Depths
{WorldSno.a2dun_zolt_level01, //The Unknown Depths
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1060,7 +1061,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50611, //The Storm Halls
{WorldSno.a2dun_zolt_level02, //The Storm Halls
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1077,7 +1078,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{50612, //Halls of Dusk
{WorldSno.a2dun_zolt_level03, //Halls of Dusk
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1094,7 +1095,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{168196, //Vault Treasure Room
{WorldSno.a2dun_zolt_timed01_level02, //Vault Treasure Room
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -1110,7 +1111,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{62568, //Ancient Cave, 1st level
{WorldSno.a2trdun_cave_oasis_random01, //Ancient Cave, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1127,7 +1128,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{194240, //Ancient Cave, 2nd level
{WorldSno.a2trdun_cave_oasis_random01_level02, //Ancient Cave, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1144,7 +1145,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{62569, //Flooded Cave, 1st level
{WorldSno.a2trdun_cave_oasis_random02, //Flooded Cave, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1161,7 +1162,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{161011, //Flooded Cave, 2nd level
{WorldSno.a2trdun_cave_oasis_random02_level02, //Flooded Cave, 2nd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1178,7 +1179,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{111670, //Vile Cavern, 1st level
{WorldSno.a2trdun_boneyard_spider_cave_01, //Vile Cavern, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1195,7 +1196,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{218967, //Vile Cavern, 2st level
{WorldSno.a2trdun_boneyard_spider_cave_02, //Vile Cavern, 2st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1214,7 +1215,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region Halls of Agony
{2826, //Halls of Agony, 1st level
{WorldSno.trdun_leoric_level01, //Halls of Agony, 1st level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -1232,7 +1233,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{58983, //Halls of Agony, 3rd level
{WorldSno.trdun_leoric_level03, //Halls of Agony, 3rd level
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -1252,7 +1253,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
#endregion
#region Westmarch
{261712, //Westmarch commons
{WorldSno.x1_westm_zone_01, //Westmarch commons
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1272,7 +1273,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{338944, //Briarthorn Cemetery
{WorldSno.x1_westm_graveyard_deathorb, //Briarthorn Cemetery
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 2,
@ -1293,7 +1294,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{263494, //Westmarch heights
{WorldSno.x1_westm_zone_03, //Westmarch heights
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 1,
@ -1328,7 +1329,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{338600, //Battlefields of Eternity
{WorldSno.x1_pand_ext_2_battlefields, //Battlefields of Eternity
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 5,
@ -1424,7 +1425,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{271233, //Pandemonius fortress lv. 1
{WorldSno.x1_fortress_level_01, //Pandemonius fortress lv. 1
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -1442,7 +1443,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{271235, //Pandemonius fortress lv. 2
{WorldSno.x1_fortress_level_02, //Pandemonius fortress lv. 2
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 4,
@ -1462,7 +1463,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{283566, //Ruins of Corvus
{WorldSno.x1_catacombs_level02, //Ruins of Corvus
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 8,
@ -1480,7 +1481,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{283552, //Path to Corvus
{WorldSno.x1_catacombs_level01, //Path to Corvus
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -1498,7 +1499,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{341037, //Path to Corvus (fake)
{WorldSno.x1_catacombs_fakeentrance_02, //Path to Corvus (fake)
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -1516,7 +1517,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{341038, //Path to Corvus (fake)
{WorldSno.x1_catacombs_fakeentrance_03, //Path to Corvus (fake)
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -1534,7 +1535,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{341040, //Path to Corvus (fake)
{WorldSno.x1_catacombs_fakeentrance_04, //Path to Corvus (fake)
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 3,
@ -1552,7 +1553,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
},
}
},
{267412, //Bog (the whole)
{WorldSno.x1_bog_01, //Bog (the whole)
new List<DRLGLayout>{
new DRLGLayout{
enterPositionX = 8,

View File

@ -8,6 +8,7 @@ using System.Linq;
using System.Text;
//Blizzless Project 2022
using System.Threading.Tasks;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
@ -18,10 +19,10 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
public Dictionary<int, List<int>> chests_lore;
};
public static readonly Dictionary<int, LoreLayout> Lore = new Dictionary<int, LoreLayout>
public static readonly Dictionary<WorldSno, LoreLayout> Lore = new Dictionary<WorldSno, LoreLayout>
{
//////////////////////////////////////////////////////////////////////////////////////////////////Act I///////////////////////////////////////////////////////////////////////////////////////////
{71150, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{
{WorldSno.trout_town, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{
{224686, new List<int>{158668}},
{199346, new List<int>{201960}},
{158681, new List<int>{98897}},
@ -39,30 +40,30 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{119801, new List<int>{106821}},
{137125, new List<int>{106823}},
{108792, new List<int>{145423}}, }}}, //NewTristram
{109362, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {230232, new List<int>{211567}}, }}}, //New Tristram tavern
{86856, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {86817, new List<int>{86639, 89489, 89519, 89520, 89521, 89522, 89523}}, }}}, //New Tristram Leah's room
{130161, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {115124, new List<int>{115115, 167797}}, }}}, //Cain's house
{50579, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {85790, new List<int>{85757, 85759}}, }}}, //Sobor: level 1
{50584, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {85790, new List<int>{85779, 85780, 85781}}, }}}, //Sobor: level 4
{2826, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {159446, new List<int>{84556}},
{WorldSno.trout_tristram_inn, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {230232, new List<int>{211567}}, }}}, //New Tristram tavern
{WorldSno.trout_tristram_leahsroom, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {86817, new List<int>{86639, 89489, 89519, 89520, 89521, 89522, 89523}}, }}}, //New Tristram Leah's room
{WorldSno.trout_tristram_cainshouse, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {115124, new List<int>{115115, 167797}}, }}}, //Cain's house
{WorldSno.a1trdun_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {85790, new List<int>{85757, 85759}}, }}}, //Sobor: level 1
{WorldSno.a1trdun_level06, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {85790, new List<int>{85779, 85780, 85781}}, }}}, //Sobor: level 4
{WorldSno.trdun_leoric_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {159446, new List<int>{84556}},
{5891, new List<int>{156458}},
{170633, new List<int>{85714}}, }}}, //Hall agony: level 1
{58982, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {159446, new List<int>{85724}},
{WorldSno.trdun_leoric_level02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {159446, new List<int>{85724}},
{5891, new List<int>{156460}},
{170633, new List<int>{85719}}, }}}, //Hall agony: level 2
{58983, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {159446, new List<int>{85729}}, }}}, //Hall agony: level 3
{180550, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {167350, new List<int>{154405, 156462, 156453, 156455}}, }}}, //Сave Arana
{94676, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {105758, new List<int>{107268}}, }}}, //Damn Fort
{75049, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {187436, new List<int>{144181}}, }}}, //Leoric Manor
{82502, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {166661, new List<int>{166878}}, }}}, //Сave clan moon: level 1
{82511, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {166661, new List<int>{166896, 166898}}, }}}, //Сave clan moon: level 2
{60395, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {137189, new List<int>{119733}}, }}}, //Sunken temple
{WorldSno.trdun_leoric_level03, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {159446, new List<int>{85729}}, }}}, //Hall agony: level 3
{WorldSno.a1dun_spidercave_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {167350, new List<int>{154405, 156462, 156453, 156455}}, }}}, //Сave Arana
{WorldSno.trdun_jail_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {105758, new List<int>{107268}}, }}}, //Damn Fort
{WorldSno.a1dun_leor_manor, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {187436, new List<int>{144181}}, }}}, //Leoric Manor
{WorldSno.a1_cave_highlands_goatcavea_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {166661, new List<int>{166878}}, }}}, //Сave clan moon: level 1
{WorldSno.a1_cave_highlands_goatcavea_level02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {166661, new List<int>{166896, 166898}}, }}}, //Сave clan moon: level 2
{WorldSno.trdun_cave_nephalem_03, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {137189, new List<int>{119733}}, }}}, //Sunken temple
//////////////////////////////////////////////////////////////////////////////////////////////////Act II///////////////////////////////////////////////////////////////////////////////////////////
{70885, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{
{WorldSno.caout_town, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{
{170233, new List<int>{170224}},
{194145, new List<int>{189736, 189764, 189779, 189781, 189783, 189785}},
{169836, new List<int>{171460, 169932}},
@ -76,26 +77,26 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{230712, new List<int>{183610}},
{218649, new List<int>{178770}},
{192437, new List<int>{189677, 189679, 189687}}, }}}, //Caldeum
{204628, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216316, new List<int>{148806}}, }}}, //Пещера предателя: уровень 1
{123183, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216311, new List<int>{148800}}, }}}, //Гробница наемника
{204674, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216768, new List<int>{148812}}, }}}, //Пещера предателя: уровень 2
{161472, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {192154, new List<int>{189698, 189700, 189702, 189704, 189715}}, }}}, //Тайный лагерь
{174530, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {190014, new List<int>{189657, 189660, 189664, 189666, 189669, 189671}}, }}}, //Таверна "Жгучие пески"
{51270, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {194145, new List<int>{189789}}, }}}, //Тайный алтарь
{146619, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {194145, new List<int>{189806}}, }}}, //Разрушенный резервуар
{2812, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {192325, new List<int>{189826}}, }}}, //Зал Утерянного Идола
{109894, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {169999, new List<int>{170007}}, }}}, //Caldeum(Uprising)
{86594, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {170063, new List<int>{170064}},
{WorldSno.a2dun_cave_bloodvial_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216316, new List<int>{148806}}, }}}, //Пещера предателя: уровень 1
{WorldSno.a2dun_zolt_blood02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216311, new List<int>{148800}}, }}}, //Гробница наемника
{WorldSno.a2dun_cave_bloodvial_02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216768, new List<int>{148812}}, }}}, //Пещера предателя: уровень 2
{WorldSno.caout_refugeecamp, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {192154, new List<int>{189698, 189700, 189702, 189704, 189715}}, }}}, //Тайный лагерь
{WorldSno.caout_hub_inn, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {190014, new List<int>{189657, 189660, 189664, 189666, 189669, 189671}}, }}}, //Таверна "Жгучие пески"
{WorldSno.caout_interior_f, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {194145, new List<int>{189789}}, }}}, //Тайный алтарь
{WorldSno.a2dun_swr_swr_to_oasis_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {194145, new List<int>{189806}}, }}}, //Разрушенный резервуар
{WorldSno.a2c2dun_zolt_treasurehunter, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {192325, new List<int>{189826}}, }}}, //Зал Утерянного Идола
{WorldSno.a2dun_cald_uprising, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {169999, new List<int>{170007}}, }}}, //Caldeum(Uprising)
{WorldSno.a2dun_cald, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {170063, new List<int>{170064}},
{145601, new List<int>{156470}},}}}, //Caldeum bazaar
{50657, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {167090, new List<int>{156472}}, }}}, //Сокрытый конклав
{50588, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {145609, new List<int>{156478}}, }}}, //Калдейские стоки
{61631, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216022, new List<int>{148672}},
{WorldSno.caout_interior_d, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {167090, new List<int>{156472}}, }}}, //Сокрытый конклав
{WorldSno.a2c1dun_swr_caldeum_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {145609, new List<int>{156478}}, }}}, //Калдейские стоки
{WorldSno.a2dun_zolt_head_random01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216022, new List<int>{148672}},
{216805, new List<int>{148707}},}}}, //Заброшенные руины
{62776, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216308, new List<int>{148680}},
{WorldSno.a2dun_aqd_special_a, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216308, new List<int>{148680}},
{189984, new List<int>{189652}},}}}, //Западный канал
{50611, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216805, new List<int>{148693}}, }}}, //Залы Бурь
{50610, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216805, new List<int>{148701}}, }}}, //Таинственная бездна
{62779, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {189984, new List<int>{189654}}, }}}, //Восточный канал
{WorldSno.a2dun_zolt_level02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216805, new List<int>{148693}}, }}}, //Залы Бурь
{WorldSno.a2dun_zolt_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216805, new List<int>{148701}}, }}}, //Таинственная бездна
{WorldSno.a2dun_aqd_special_b, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {189984, new List<int>{189654}}, }}}, //Восточный канал
@ -103,29 +104,29 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
//////////////////////////////////////////////////////////////////////////////////////////////////Act III///////////////////////////////////////////////////////////////////////////////////////////
{93104, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {204724, new List<int>{204678}},
{WorldSno.a3dun_keep_level03, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {204724, new List<int>{204678}},
{213447, new List<int>{204820}},
{213470, new List<int>{204828, 204831, 204839, 204846, 204848}},}}}, //Нижние этажи крепости: уровень 1
{103209, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {212704, new List<int>{204850}}, }}}, //Кладовая
{172909, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {178357, new List<int>{178349}}, }}}, //Главная башня бастиона
{182875, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {212222, new List<int>{204853, 204859, 204875, 204878}}, }}}, //Оружейная
{81019, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {192778, new List<int>{190879, 191086, 191133}},
{WorldSno.gluttony_boss, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {212704, new List<int>{204850}}, }}}, //Кладовая
{WorldSno.a3dun_hub_keep, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {178357, new List<int>{178349}}, }}}, //Главная башня бастиона
{WorldSno.a3dun_keep_hub_inn, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {212222, new List<int>{204853, 204859, 204875, 204878}}, }}}, //Оружейная
{WorldSno.a3dun_rmpt_level01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {192778, new List<int>{190879, 191086, 191133}},
{213445, new List<int>{204033}}, }}}, //Заоблачные стены
{93099, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {213446, new List<int>{204817}}, }}}, //Каменный форт
{95804, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {213445, new List<int>{204822}},
{WorldSno.a3dun_rmpt_level02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {213446, new List<int>{204817}}, }}}, //Каменный форт
{WorldSno.a3_battlefields_02, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {213445, new List<int>{204822}},
{213446, new List<int>{204824}},}}}, //Поля Кровавой Бойни
{81049, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {213447, new List<int>{204826}}, }}}, //Арреатский кратер: уровень 1
{174516, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {178366, new List<int>{178367}}, }}}, //Укрепленный бункер: уровень 1
{WorldSno.a3dun_crater_level_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {213447, new List<int>{204826}}, }}}, //Арреатский кратер: уровень 1
{WorldSno.a3dun_keep_random_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {178366, new List<int>{178367}}, }}}, //Укрепленный бункер: уровень 1
//////////////////////////////////////////////////////////////////////////////////////////////////Act IV///////////////////////////////////////////////////////////////////////////////////////////
{178152, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {177462, new List<int>{166775}}, }}}, //Главная башня бастиона
{109513, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216482, new List<int>{193560, 193586, 193568}}, }}}, //Сады надежды: уровень 1
{219659, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216482, new List<int>{193574, 193580, 193592}}, }}}, //Сады надежды: уровень 2
{121579, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216551, new List<int>{211609, 211611, 211613}},
{WorldSno.a4dun_heaven_hub_keep, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {177462, new List<int>{166775}}, }}}, //Главная башня бастиона
{WorldSno.a4dun_garden_of_hope_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216482, new List<int>{193560, 193586, 193568}}, }}}, //Сады надежды: уровень 1
{WorldSno.a4dun_garden_of_hope_random, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216482, new List<int>{193574, 193580, 193592}}, }}}, //Сады надежды: уровень 2
{WorldSno.a4dun_spire_level_01, new LoreLayout{ chests_lore = new Dictionary<int, List<int>>{ {216551, new List<int>{211609, 211611, 211613}},
{216537, new List<int>{211599, 211601, 211603, 211605}},}}}, //Серебрянный шпиль: уровень 1
};

View File

@ -48,6 +48,7 @@ using DiIiS_NA.GameServer.Core.Types.Scene;
using DiIiS_NA.GameServer.MessageSystem;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Interactions;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
@ -98,30 +99,30 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
}
public World Generate(int worldSNO)
public World Generate(WorldSno worldSNO)
{
if (!MPQStorage.Data.Assets[SNOGroup.Worlds].ContainsKey(worldSNO))
if (!MPQStorage.Data.Assets[SNOGroup.Worlds].ContainsKey((int)worldSNO))
{
Logger.Error("Can't find a valid world definition for sno: {0}", worldSNO);
return null;
}
var worldAsset = MPQStorage.Data.Assets[SNOGroup.Worlds][worldSNO];
var worldAsset = MPQStorage.Data.Assets[SNOGroup.Worlds][(int)worldSNO];
Dictionary<int, List<Scene>> levelAreas = new Dictionary<int, List<Scene>>();
World world = new World(this.Game, worldSNO);
bool DRLGEmuActive = false;
world.worldData = (DiIiS_NA.Core.MPQ.FileFormats.World)worldAsset.Data;
if (worldSNO == 146619)
if (worldSNO == WorldSno.a2dun_swr_swr_to_oasis_level01)
world.worldData.DynamicWorld = true;
//445736 - p4_forest_snow_icecave_01
if (world.worldData.DynamicWorld && worldSNO != 161961 && worldSNO != 230288 && worldSNO != 430335 && worldSNO != 445736 && worldSNO != 444305 && worldSNO != 109530 && worldSNO != 109525 && worldSNO != 85201 && worldSNO != 119650 && worldSNO != 119641 && worldSNO != 139272 && worldSNO != 80763 && worldSNO != 79401 && worldSNO != 80791 && worldSNO != 81934 && worldSNO != 81049 && worldSNO != 61631 && worldSNO != 50588 && worldSNO != 428493 && worldSNO != 219659 && worldSNO != 58982 && worldSNO != 58983 && worldSNO != 105406 && worldSNO != 204674 && !world.WorldSNO.Name.Contains("Crater") && !world.WorldSNO.Name.Contains("Hell_Portal")) //Gardens of Hope - 2 lvl is NOT random
if (world.worldData.DynamicWorld && !worldSNO.IsNotDynamicWorld()) //Gardens of Hope - 2 lvl is NOT random
{
if (!GameServer.Config.Instance.DRLGemu)
Logger.Warn("DRLG-Emu деактивирован.");
string DRLGVersion = "1.8";
var WorldContainer = DBSessions.WorldSession.Query<DRLG_Container>().Where(dbt => dbt.WorldSNO == worldSNO).ToList();
if (WorldContainer.Count > 0 && worldSNO != 105406 && GameServer.Config.Instance.DRLGemu)
var WorldContainer = DBSessions.WorldSession.Query<DRLG_Container>().Where(dbt => dbt.WorldSNO == (int)worldSNO).ToList();
if (WorldContainer.Count > 0 && worldSNO != WorldSno.a1trdun_level05_templar && GameServer.Config.Instance.DRLGemu)
{
DRLGEmuActive = true;
Logger.Warn("Мир - {0} [{1}] динамический! Найден контейнер, DRLG-Emu v{2} Активирован!", worldAsset.Name, worldAsset.SNOId, DRLGVersion);
@ -160,9 +161,9 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
else
{
world.PrevLocation = new DiIiS_NA.GameServer.MessageSystem.Message.Fields.ResolvedPortalDestination
world.PrevLocation = new MessageSystem.Message.Fields.ResolvedPortalDestination
{
WorldSNO = -1,
WorldSNO = (int)WorldSno.__NONE,
DestLevelAreaSNO = -1,
StartingPointActorTag = -1
};
@ -177,7 +178,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
List<DRLGEmuScene> EndChuncks = new List<DRLGEmuScene> { };
List<DRLGEmuScene> FillerChuncks = new List<DRLGEmuScene> { };
var WorldContainer = DBSessions.WorldSession.Query<DRLG_Container>().Where(dbt => dbt.WorldSNO == world.WorldSNO.Id).First();
var WorldContainer = DBSessions.WorldSession.Query<DRLG_Container>().Where(dbt => dbt.WorldSNO == (int)world.SNO).First();
var DRLGTiles = DBSessions.WorldSession.Query<DRLG_Tile>().Where(dbt => dbt.Head_Container == (int)WorldContainer.Id).ToList();
REP:
@ -210,7 +211,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
DRLGContainers.Add(EndChuncks);
DRLGContainers.Add(FillerChuncks);
if (world.WorldSNO.Name.ToLower().Contains("x1_lr"))
if (world.SNO.IsGenerated())
while (true)
{
@ -376,7 +377,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
//world.LevelAreasData = levelAreas;
if (worldSNO == 105406)
if (worldSNO == WorldSno.a1trdun_level05_templar)
world.SpawnMonster(6442, new Vector3D { X = 700.67f, Y = 580.128f, Z = 0.1f });
try
@ -392,29 +393,29 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
#region Патчи
switch (worldSNO)
{
case 338600: //x1_pand_ext_2_battlefields
case WorldSno.x1_pand_ext_2_battlefields: //x1_pand_ext_2_battlefields
RandomSpawnInWorldWithLevelArea(world, 361364);
RandomSpawnInWorldWithLevelArea(world, 361364);
break;
case 263494:
case WorldSno.x1_westm_zone_03:
RandomSpawnInWorldWithLevelArea(world, 355667);
RandomSpawnInWorldWithLevelArea(world, 355667);
RandomSpawnInWorldWithLevelArea(world, 355667);
break;
case 58983: //Установка портала на третий этаж Залов Агонии рядом с входом к Мяснику.
case WorldSno.trdun_leoric_level03: //Установка портала на третий этаж Залов Агонии рядом с входом к Мяснику.
Vector3D Scene0Pos = world.GetSceneBySnoId(78824).Position;
world.SpawnMonster(6442, new Vector3D(Scene0Pos.X + 149.0907f, Scene0Pos.Y + 106.7075f, Scene0Pos.Z));
break;
case 338944:
case WorldSno.x1_westm_graveyard_deathorb:
FilterWaypoints(world);
break;
case 331389:
case WorldSno.x1_lr_tileset_hexmaze:
foreach (var actor in world.GetActorsBySNO(310965)) actor.Destroy(); //X1_Pand_HexMaze_EN_Lore_Sister1_Chest
foreach (var actor in world.GetActorsBySNO(310967)) actor.Destroy(); //X1_Pand_HexMaze_EN_Lore_Sister2_Chest
foreach (var actor in world.GetActorsBySNO(310970)) actor.Destroy(); //X1_Pand_HexMaze_EN_Lore_Sister3_Chest
foreach (var actor in world.GetActorsBySNO(307480)) actor.Destroy(); //X1_Pand_HexMaze_EN_Enchantress
break;
case 71150: //Упоротый наёмник =)
case WorldSno.trout_town: //Упоротый наёмник =)
var Templar = world.GetActorBySNO(4538);
var hasmalth = world.GetActorBySNO(274457);
@ -441,21 +442,21 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
TownDoor.Attributes.BroadcastChangedIfRevealed();
}
break;
case 50582: //2 уровень собора
case WorldSno.a1trdun_level04: //2 уровень собора
foreach (var actor in world.GetActorsBySNO(256728))
{
foreach (var sp in actor.GetActorsInRange<StartingPoint>(20f)) sp.Destroy();
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 50584: //4 уровень собора
case WorldSno.a1trdun_level06: //4 уровень собора
foreach (var actor in world.GetActorsBySNO(256728))
{
foreach (var sp in actor.GetActorsInRange<StartingPoint>(20f)) sp.Destroy();
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 105406: //Лишние NPC в соборе (3 уровень)
case WorldSno.a1trdun_level05_templar: //Лишние NPC в соборе (3 уровень)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_NPC_
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(84542)) actor.Destroy(); //OmniNPC_Tristram_Male_E
@ -468,34 +469,34 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
break;
case 146619: //Убиваем ненужный портал в локации если игра не в режиме приключений
case WorldSno.a2dun_swr_swr_to_oasis_level01: //Убиваем ненужный портал в локации если игра не в режиме приключений
if (this.Game.CurrentAct != 3000)
foreach (var wayp in world.GetActorsBySNO(6442)) wayp.Destroy();
break;
case 61631: //Убираем кровь кула
case WorldSno.a2dun_zolt_head_random01: //Убираем кровь кула
foreach (var act in world.GetActorsBySNO(213859)) act.Destroy();
break;
case 59486: //Главный водосток. Убираем лишние порталы.
case WorldSno.a2dun_aqd_special_01: //Главный водосток. Убираем лишние порталы.
foreach (var port in world.Actors.Values)
if (port is Portal)
if ((port as Portal).Destination.WorldSNO == 432997)
if ((port as Portal).Destination.WorldSNO == (int)WorldSno.a2dun_aqd_special_b_level01)
port.Destroy();
break;
case 75434: //Убиваем ненужный портал в локации если игра не в режиме приключений
case WorldSno.a3dun_keep_level04: //Убиваем ненужный портал в локации если игра не в режиме приключений
if (this.Game.CurrentAct != 3000)
foreach (var wayp in world.GetActorsBySNO(6442)) wayp.Destroy();
break;
#region Убиваем все порталы в демонические разломы на первом этаже садов(теперь и на втором этаже), а то чет дохера их), создавать будет скрипт уничтожения скверны. Добалвяем голос Дьябло на несколько участков
case 109513: //1 Этаж садов
case WorldSno.a4dun_garden_of_hope_01: //1 Этаж садов
foreach (var HellPortal in world.GetActorsBySNO(224890))
HellPortal.Destroy();
break;
case 219659: //2 Этаж садов
case WorldSno.a4dun_garden_of_hope_random: //2 Этаж садов
foreach (var HellPortal in world.GetActorsBySNO(224890))
HellPortal.Destroy();
break;
#endregion
case 198281:
case WorldSno.a4dun_spire_level_00:
var LeahGhost = world.SpawnMonster(196905, new Vector3D(570f, 570f, 0.1f)) as InteractiveNPC;
LeahGhost.Conversations.Clear();
LeahGhost.Conversations.Add(new ConversationInteraction(198600));
@ -503,20 +504,20 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
LeahGhost.Attributes.BroadcastChangedIfRevealed();
break;
//428f, 836f, -20.3f
case 121579:
case WorldSno.a4dun_spire_level_01:
var ZoltunGhost = world.SpawnMonster(196900, new Vector3D(428f, 836f, -2f)) as InteractiveNPC;
ZoltunGhost.Conversations.Clear();
ZoltunGhost.Conversations.Add(new ConversationInteraction(198402));
ZoltunGhost.Attributes[GameAttribute.Conversation_Icon, 0] = 6;
ZoltunGhost.Attributes.BroadcastChangedIfRevealed();
break;
case 430335:
case WorldSno.a3dun_ruins_frost_city_a_02:
foreach (var wayp in world.GetActorsBySNO(6442)) wayp.Destroy();
break;
case 455282:
case WorldSno.p43_ad_oldtristram:
foreach (var wayp in world.GetActorsBySNO(108466)) wayp.Destroy();
break;
case 332336:
case WorldSno.x1_tristram_adventure_mode_hub:
//Отображаем только одного продавца
world.ShowOnlyNumNPC(178396, 0);
@ -532,7 +533,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
Door.Attributes[GameAttribute.Immunity] = true;
Door.Attributes.BroadcastChangedIfRevealed();
break;
case 452721: //1 этаж собора (Режим D1)
case WorldSno.p43_ad_cathedral_level_01: //1 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -547,7 +548,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
break;
case 452922: //2 этаж собора (Режим D1)
case WorldSno.p43_ad_cathedral_level_02: //2 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -561,7 +562,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 452984: //3 этаж собора (Режим D1)
case WorldSno.p43_ad_cathedral_level_03: //3 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -575,7 +576,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 452985: //4 этаж собора (Режим D1)
case WorldSno.p43_ad_cathedral_level_04: //4 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -590,7 +591,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 452991: //5 этаж собора (Режим D1)
case WorldSno.p43_ad_catacombs_level_05: //5 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -604,7 +605,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 452996: //6 этаж собора (Режим D1)
case WorldSno.p43_ad_catacombs_level_06: //6 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -618,7 +619,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 452997: //7 этаж собора (Режим D1)
case WorldSno.p43_ad_catacombs_level_07: //7 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -632,7 +633,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
actor.Destroy(); //g_Portal_TownPortal_Red
}
break;
case 452998: //8 этаж собора (Режим D1)
case WorldSno.p43_ad_catacombs_level_08: //8 этаж собора (Режим D1)
foreach (var actor in world.GetActorsBySNO(249214)) actor.Destroy(); //x1_mysticIntro_NPC
foreach (var actor in world.GetActorsBySNO(51346)) actor.Destroy(); //TristramFemale
foreach (var actor in world.GetActorsBySNO(81609)) actor.Destroy(); //{[Actor] [Type: Monster] SNOId:81609 GlobalId: 1014803624 Position: x:807.75 y:996.75 z:0 Name: A1_UniqueVendor_Armorer}
@ -655,7 +656,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
foreach (var oldp in world.GetActorsBySNO(166389)) { foreach(var plr in world.Game.Players.Values) world.SpawnGold(oldp, plr); oldp.Destroy(); }
foreach (var oldp in world.GetActorsBySNO(404043)) { oldp.Destroy(); }//сломанные мосты
if(world.WorldSNO.Id != 105406 ) foreach (var oldp in world.GetActorsBySNO(408511)) { oldp.Destroy(); }//109209 - Костяные стены из собора
if(world.SNO != WorldSno.a1trdun_level05_templar) foreach (var oldp in world.GetActorsBySNO(408511)) { oldp.Destroy(); }//109209 - Костяные стены из собора
#endregion
return world;
@ -672,7 +673,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
while (true)
{
SP = new Vector3D(SSV.X + DiIiS_NA.Core.Helpers.Math.RandomHelper.Next(0, 240), SSV.Y + DiIiS_NA.Core.Helpers.Math.RandomHelper.Next(0, 240), SSV.Z);
SP = new Vector3D(SSV.X + RandomHelper.Next(0, 240), SSV.Y + RandomHelper.Next(0, 240), SSV.Z);
if (world.CheckLocationForFlag(SP, DiIiS_NA.Core.MPQ.FileFormats.Scene.NavCellFlags.AllowWalk))
break;
}
@ -735,16 +736,14 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
Logger.Error("Scene {0}, not added on DRLG", Scene.SnoID);
}
bool Rift = false;
if (world.WorldSNO.Name.ToLower().Contains("x1_lr"))
Rift = true;
bool Rift = world.SNO.IsGenerated();
//Getting Enter
var loadedscene = new SceneChunk();
CurrentScene = DRLGContainers[0][RandomHelper.Next(0, DRLGContainers[0].Count)];
loadedscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
loadedscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), new Vector3D(0, 0, 0));
loadedscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -801,7 +800,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
nextscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
nextscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
nextscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -840,7 +839,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
nextscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
nextscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
nextscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -879,7 +878,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
nextscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
nextscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
nextscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -919,7 +918,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
nextscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
nextscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
nextscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -959,7 +958,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
nextscene1.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
nextscene1.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
nextscene1.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -993,7 +992,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
nextscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
nextscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
nextscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -1157,7 +1156,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
newscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
newscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
newscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -1306,7 +1305,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
newscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
newscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
newscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -1454,7 +1453,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
newscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
newscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
newscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -1602,7 +1601,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
newscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
newscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), PlaceToNewScene);
newscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -1667,7 +1666,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
newscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
newscene.PRTransform = Chunck.PRTransform;
newscene.SceneSpecification = new SceneSpecification(
0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1,
new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)),
new int[4] { 0, 0, 0, 0 }, 0));
@ -1720,7 +1719,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
var newscene = new SceneChunk();
newscene.SNOHandle = new SNOHandle(SNOGroup.Scene, CurrentScene.SnoID);
newscene.PRTransform = new PRTransform(new Quaternion(new Vector3D(0f, 0f, 0f), 1), new Vector3D(X, Y, 0));
newscene.SceneSpecification = new SceneSpecification(0, new Vector2D(0, 0), new int[4] { Rift ? world.WorldSNO.Id != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
newscene.SceneSpecification = new SceneSpecification(0, new Vector2D(0, 0), new int[4] { Rift ? world.SNO != world.Game.WorldOfPortalNephalem ? 288684 : 288482 : CurrentScene.LevelArea, Rift ? CurrentScene.LevelArea : -1, -1, -1 },
-1, -1, -1, -1, -1, -1, CurrentScene.Music, -1, -1, -1, CurrentScene.Weather, -1, -1, -1, -1, -1, new SceneCachedValues(-1, -1, -1, new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new AABB(new Vector3D(-1, -1, -1), new Vector3D(-1, -1, -1)), new int[4] { 0, 0, 0, 0 }, 0));
FillerChunks.Add(newscene);
}
@ -1741,7 +1740,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
world.DRLGEmuActive = true;
}
private bool GenerateRandomDungeon(int worldSNO, DiIiS_NA.Core.MPQ.FileFormats.World worldData)
private bool GenerateRandomDungeon(WorldSno worldSNO, DiIiS_NA.Core.MPQ.FileFormats.World worldData)
{
//if ((worldData.DRLGParams == null)||(worldData.DRLGParams.Count == 0))
//return false;
@ -1776,7 +1775,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
TileInfo entrance = new TileInfo();
//HACK for Defiled Crypt as there is no tile yet with type 200. Maybe changing in DB would make more sense than putting this hack in
// [11]: {[161961, Mooege.Common.MPQ.MPQAsset]}Worlds\\a1trDun_Cave_Old_Ruins_Random01.wrl
if (worldSNO == 161961)
if (worldSNO == WorldSno.a1trdun_cave_old_ruins_random01)
{
entrance = tiles[131902];
tiles.Remove(131902);
@ -1788,7 +1787,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
if (DRLGTemplate.Templates.ContainsKey(worldSNO))
{
DRLGTemplate.DRLGLayout world_layout = DRLGTemplate.Templates[worldSNO][DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(DRLGTemplate.Templates[worldSNO].Count)];
DRLGTemplate.DRLGLayout world_layout = DRLGTemplate.Templates[worldSNO][FastRandom.Instance.Next(DRLGTemplate.Templates[worldSNO].Count)];
int coordY = 0;
foreach (List<int> row in world_layout.map)
@ -1851,7 +1850,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
chunk.SceneSpecification.SNOLevelAreas[0] = drlgparam.LevelArea;
chunk.SceneSpecification.SNOWeather = drlgparam.Weather;
}
if (worldSNO == 267412) //A5 marsh
if (worldSNO == WorldSno.x1_bog_01) //A5 marsh
{
if (chunk.PRTransform.Vector3D.Y < 960 || chunk.PRTransform.Vector3D.X < 720)
chunk.SceneSpecification.SNOLevelAreas[0] = 258142;
@ -2374,19 +2373,19 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
gizmoLocations = finalLocationsList; //sorting with no duplications
if (world.WorldSNO.Id == 169477) //Mysterious Cave lv 1
if (world.SNO == WorldSno.a2dun_cave_mapdungeon_level01) //Mysterious Cave lv 1
{
var handle = new SNOHandle(207706);
if (handle == null || gizmoLocations.Count() == 0) continue;
LazyLoadActor(handle, gizmoLocations[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(gizmoLocations.Count())], world, ((DiIiS_NA.Core.MPQ.FileFormats.Actor)handle.Target).TagMap);
if (handle == null || gizmoLocations.Count == 0) continue;
LazyLoadActor(handle, gizmoLocations[FastRandom.Instance.Next(gizmoLocations.Count)], world, ((DiIiS_NA.Core.MPQ.FileFormats.Actor)handle.Target).TagMap);
}
else
foreach (var location in gizmoLocations)
{
if (DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(100) < 1)
if (FastRandom.Instance.Next(100) < 1)
{
SNOHandle gizmoHandle = null;
float seed = (float)DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble();
float seed = (float)FastRandom.Instance.NextDouble();
foreach (var pair in GizmosToSpawn)
{
if (seed < pair.Value)
@ -2402,18 +2401,18 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
}
if (gizmoLocations.Count() > 0 && world.Game.MonsterLevel >= Program.MaxLevel && DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(100) < 30)
if (gizmoLocations.Count > 0 && world.Game.MonsterLevel >= Program.MaxLevel && FastRandom.Instance.Next(100) < 30)
{
var handle_chest = new SNOHandle(96993); //leg chest
if (handle_chest == null) continue;
var golden_chest = loadActor(handle_chest, gizmoLocations[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(0, gizmoLocations.Count() - 1)], world, ((DiIiS_NA.Core.MPQ.FileFormats.Actor)handle_chest.Target).TagMap);
var golden_chest = loadActor(handle_chest, gizmoLocations[FastRandom.Instance.Next(0, gizmoLocations.Count - 1)], world, ((DiIiS_NA.Core.MPQ.FileFormats.Actor)handle_chest.Target).TagMap);
if (golden_chest > 0)
(world.GetActorByGlobalId(golden_chest) as LegendaryChest).ChestActive = true;
}
if (world.DRLGEmuActive)
{
int wid = world.WorldSNO.Id;
int wid = (int)world.SNO;
// Load monsters for level area
foreach (var scene in levelAreas.First().Value)
{
@ -2428,12 +2427,12 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
#region unique spawn
//unique spawn
if (SpawnGenerator.Spawns.ContainsKey(wid) && SpawnGenerator.Spawns[wid].dangerous.Count() > 0 && DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.5)
if (SpawnGenerator.Spawns.ContainsKey(wid) && SpawnGenerator.Spawns[wid].dangerous.Count > 0 && FastRandom.Instance.NextDouble() < 0.5)
{
var randomUnique = new SNOHandle(SpawnGenerator.Spawns[wid].dangerous[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[wid].dangerous.Count())]);
var scene = levelAreas.First().Value[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(levelAreas.First().Value.Count())];
int x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
var randomUnique = new SNOHandle(SpawnGenerator.Spawns[wid].dangerous[FastRandom.Instance.Next(SpawnGenerator.Spawns[wid].dangerous.Count)]);
var scene = levelAreas.First().Value[FastRandom.Instance.Next(levelAreas.First().Value.Count)];
int x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
int threshold = 0;
while ((scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Flags & DiIiS_NA.Core.MPQ.FileFormats.Scene.NavCellFlags.NoSpawn) != 0)
{
@ -2443,8 +2442,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
break;
//continue;
}
x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
}
var uniq = loadActor(
@ -2453,11 +2452,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * System.Math.PI * 2))
},
world,
new TagMap()
@ -2470,13 +2469,13 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
#endregion
#region goblin spawn
//goblin spawn
if (SpawnGenerator.Spawns.ContainsKey(wid) && SpawnGenerator.Spawns[wid].can_spawn_goblin && DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.5)
if (SpawnGenerator.Spawns.ContainsKey(wid) && SpawnGenerator.Spawns[wid].can_spawn_goblin && FastRandom.Instance.NextDouble() < 0.5)
{
var randomGoblin = new SNOHandle(Goblins[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(Goblins.Count())]);
var randomGoblin = new SNOHandle(Goblins[FastRandom.Instance.Next(Goblins.Count)]);
if (world.Game.IsHardcore) randomGoblin = new SNOHandle(3852);
var scene = levelAreas.First().Value[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(levelAreas.First().Value.Count())];
int x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
var scene = levelAreas.First().Value[FastRandom.Instance.Next(levelAreas.First().Value.Count)];
int x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
int threshold = 0;
while ((scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Flags & DiIiS_NA.Core.MPQ.FileFormats.Scene.NavCellFlags.NoSpawn) != 0)
{
@ -2486,8 +2485,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
break;
//continue;
}
x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
}
LazyLoadActor(
@ -2496,11 +2495,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * System.Math.PI * 2))
},
world,
new TagMap()
@ -2525,12 +2524,12 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
}
#region unique spawn
//unique spawn
if (SpawnGenerator.Spawns.ContainsKey(la) && SpawnGenerator.Spawns[la].dangerous.Count() > 0 && DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.5)
if (SpawnGenerator.Spawns.ContainsKey(la) && SpawnGenerator.Spawns[la].dangerous.Count > 0 && FastRandom.Instance.NextDouble() < 0.5)
{
var randomUnique = new SNOHandle(SpawnGenerator.Spawns[la].dangerous[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[la].dangerous.Count())]);
var scene = levelAreas[la][DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(levelAreas[la].Count())];
int x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
var randomUnique = new SNOHandle(SpawnGenerator.Spawns[la].dangerous[FastRandom.Instance.Next(SpawnGenerator.Spawns[la].dangerous.Count)]);
var scene = levelAreas[la][FastRandom.Instance.Next(levelAreas[la].Count)];
int x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
int threshold = 0;
while ((scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Flags & DiIiS_NA.Core.MPQ.FileFormats.Scene.NavCellFlags.NoSpawn) != 0)
{
@ -2540,8 +2539,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
break;
//continue;
}
x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
}
var uniq = loadActor(
@ -2550,11 +2549,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * System.Math.PI * 2))
},
world,
new TagMap()
@ -2567,13 +2566,13 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
#endregion
#region goblin spawn
//goblin spawn
if (SpawnGenerator.Spawns.ContainsKey(la) && SpawnGenerator.Spawns[la].can_spawn_goblin && DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.5)
if (SpawnGenerator.Spawns.ContainsKey(la) && SpawnGenerator.Spawns[la].can_spawn_goblin && FastRandom.Instance.NextDouble() < 0.5)
{
var randomGoblin = new SNOHandle(Goblins[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(Goblins.Count())]);
var randomGoblin = new SNOHandle(Goblins[FastRandom.Instance.Next(Goblins.Count)]);
if (world.Game.IsHardcore) randomGoblin = new SNOHandle(3852);
var scene = levelAreas[la][DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(levelAreas[la].Count())];
int x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
var scene = levelAreas[la][FastRandom.Instance.Next(levelAreas[la].Count)];
int x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
int threshold = 0;
while ((scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Flags & DiIiS_NA.Core.MPQ.FileFormats.Scene.NavCellFlags.NoSpawn) != 0)
{
@ -2583,8 +2582,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
break;
//continue;
}
x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
}
LazyLoadActor(
@ -2593,11 +2592,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * System.Math.PI * 2))
},
world,
new TagMap()
@ -2635,20 +2634,20 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
for (int i = 0; i < packs_count; i++)
{
int x = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
groupId = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next();
int x = FastRandom.Instance.Next(scene.NavMesh.SquaresCountX);
int y = FastRandom.Instance.Next(scene.NavMesh.SquaresCountY);
groupId = FastRandom.Instance.Next();
if ((scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Flags & DiIiS_NA.Core.MPQ.FileFormats.Scene.NavCellFlags.NoSpawn) == 0)
{
bool isElite = (DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.03);
bool isElite = (FastRandom.Instance.NextDouble() < 0.03);
if (isElite)
{
#region elite spawn
int randomMeleeMonsterId = -1;
int randomRangedMonsterId = -1;
if (SpawnGenerator.Spawns[la].melee.Count() > 0) randomMeleeMonsterId = SpawnGenerator.Spawns[la].melee[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[la].melee.Count())];
if (SpawnGenerator.Spawns[la].range.Count() > 0) randomRangedMonsterId = SpawnGenerator.Spawns[la].range[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[la].range.Count())];
if (SpawnGenerator.Spawns[la].melee.Count > 0) randomMeleeMonsterId = SpawnGenerator.Spawns[la].melee[FastRandom.Instance.Next(SpawnGenerator.Spawns[la].melee.Count)];
if (SpawnGenerator.Spawns[la].range.Count > 0) randomRangedMonsterId = SpawnGenerator.Spawns[la].range[FastRandom.Instance.Next(SpawnGenerator.Spawns[la].range.Count)];
SNOHandle meleeMonsterHandle = (randomMeleeMonsterId == -1 ? null : new SNOHandle(randomMeleeMonsterId));
SNOHandle rangedMonsterHandle = (randomRangedMonsterId == -1 ? null : new SNOHandle(randomRangedMonsterId));
if (rangedMonsterHandle == null) rangedMonsterHandle = meleeMonsterHandle;
@ -2656,19 +2655,19 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
if (meleeMonsterHandle == null) meleeMonsterHandle = rangedMonsterHandle;
for (int n = 0; n < 5; n++)
{
if (n == 0 || DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.85)
if (n == 0 || FastRandom.Instance.NextDouble() < 0.85)
{
uint actor = loadActor(
(n == 0 ? (DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.5 ? meleeMonsterHandle : rangedMonsterHandle) : meleeMonsterHandle),
(n == 0 ? (FastRandom.Instance.NextDouble() < 0.5 ? meleeMonsterHandle : rangedMonsterHandle) : meleeMonsterHandle),
new PRTransform
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * System.Math.PI * 2))
},
world,
new TagMap(),
@ -2686,32 +2685,32 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
#endregion
else
{
bool isChampion = (DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.07);
bool isChampion = (FastRandom.Instance.NextDouble() < 0.07);
if (!isChampion)
#region default spawn
{
int randomMeleeMonsterId = -1;
int randomRangedMonsterId = -1;
if (SpawnGenerator.Spawns[la].melee.Count() > 0) randomMeleeMonsterId = SpawnGenerator.Spawns[la].melee[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[la].melee.Count())];
if (SpawnGenerator.Spawns[la].range.Count() > 0) randomRangedMonsterId = SpawnGenerator.Spawns[la].range[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[la].range.Count())];
if (SpawnGenerator.Spawns[la].melee.Count > 0) randomMeleeMonsterId = SpawnGenerator.Spawns[la].melee[FastRandom.Instance.Next(SpawnGenerator.Spawns[la].melee.Count)];
if (SpawnGenerator.Spawns[la].range.Count > 0) randomRangedMonsterId = SpawnGenerator.Spawns[la].range[FastRandom.Instance.Next(SpawnGenerator.Spawns[la].range.Count)];
SNOHandle meleeMonsterHandle = (randomMeleeMonsterId == -1 ? null : new SNOHandle(randomMeleeMonsterId));
SNOHandle rangedMonsterHandle = (randomRangedMonsterId == -1 ? null : new SNOHandle(randomRangedMonsterId));
//int maxMobsInStack = (SpawnGenerator.IsMelee(la, randomMonsterId) ? 6 : (SpawnGenerator.IsDangerous(la, randomMonsterId) ? 1 : 3));
for (int n = 0; n < 6; n++)
{
if (n == 0 || DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.6)
if (n == 0 || FastRandom.Instance.NextDouble() < 0.6)
{
LazyLoadActor(
(meleeMonsterHandle == null ? rangedMonsterHandle : (rangedMonsterHandle == null ? meleeMonsterHandle : (DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.65 ? meleeMonsterHandle : rangedMonsterHandle))),
(meleeMonsterHandle == null ? rangedMonsterHandle : (rangedMonsterHandle == null ? meleeMonsterHandle : (FastRandom.Instance.NextDouble() < 0.65 ? meleeMonsterHandle : rangedMonsterHandle))),
new PRTransform
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * System.Math.PI * 2))
},
world,
new TagMap(),
@ -2724,11 +2723,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
else //spawn champions
#region champion spawn
{
SNOHandle championHandle = new SNOHandle(SpawnGenerator.Spawns[la].melee[DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next(SpawnGenerator.Spawns[la].melee.Count())]);
groupId = DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.Next();
SNOHandle championHandle = new SNOHandle(SpawnGenerator.Spawns[la].melee[FastRandom.Instance.Next(SpawnGenerator.Spawns[la].melee.Count)]);
groupId = FastRandom.Instance.Next();
for (int n = 0; n < 4; n++)
{
if (n == 0 || DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() < 0.85)
if (n == 0 || FastRandom.Instance.NextDouble() < 0.85)
{
uint actor = loadActor(
championHandle,
@ -2736,11 +2735,11 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem
{
Vector3D = new Vector3D
{
X = (float)(x * 2.4 + scene.Position.X) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * 20 - 10),
X = (float)(x * 2.4 + scene.Position.X) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Y = (float)(y * 2.4 + scene.Position.Y) + (float)(FastRandom.Instance.NextDouble() * 20 - 10),
Z = scene.NavMesh.Squares[y * scene.NavMesh.SquaresCountX + x].Z + scene.Position.Z
},
Quaternion = Quaternion.FacingRotation((float)(DiIiS_NA.Core.Helpers.Math.FastRandom.Instance.NextDouble() * System.Math.PI * 2))
Quaternion = Quaternion.FacingRotation((float)(FastRandom.Instance.NextDouble() * Math.PI * 2))
},
world,
new TagMap(),

View File

@ -6,6 +6,7 @@ using DiIiS_NA.Core.Logging;
using DiIiS_NA.Core.MPQ;
//Blizzless Project 2022
using DiIiS_NA.Core.MPQ.FileFormats;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.Collision;
//Blizzless Project 2022
@ -265,8 +266,8 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
var actor = ActorFactory.Create(this.World, marker.SNOHandle.Id, marker.TagMap); // try to create it.
//Logger.Debug("not-lazy spawned {0}", actor.GetType().Name);
if (actor == null) continue;
if (this.World.WorldSNO.Id == 95804 && this.SceneSNO.Id == 145392 && actor is StartingPoint) continue; //arreat crater hack
if (this.World.WorldSNO.Id == 306549 && this.SceneSNO.Id == 311310 && actor is StartingPoint) continue; //A5 start location hack
if (this.World.SNO == WorldSno.a3_battlefields_02 && this.SceneSNO.Id == 145392 && actor is StartingPoint) continue; //arreat crater hack
if (this.World.SNO == WorldSno.x1_westm_intro && this.SceneSNO.Id == 311310 && actor is StartingPoint) continue; //A5 start location hack
var position = marker.PRTransform.Vector3D + this.Position; // calculate the position for the actor.
actor.RotationW = marker.PRTransform.Quaternion.W;
@ -466,7 +467,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
specification.SNOCombatMusic = -1;//World.Environment.snoCombatMusic;
specification.SNOAmbient = World.Environment.snoAmbient;
specification.SNOReverb = World.Environment.snoReverb;
specification.SNOPresetWorld = this.World.WorldSNO.Id;
specification.SNOPresetWorld = (int)this.World.SNO;
}
else if (World.Environment != null)
{
@ -475,7 +476,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
specification.SNOAmbient = World.Environment.snoAmbient;
specification.SNOReverb = World.Environment.snoReverb;
specification.SNOWeather = World.Environment.snoWeather;
specification.SNOPresetWorld = this.World.WorldSNO.Id;
specification.SNOPresetWorld = (int)this.World.SNO;
}
else
@ -486,39 +487,37 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
specification.SNOReverb = -1;
if (specification.SNOWeather == -1)
specification.SNOWeather = 0x00013220;
specification.SNOPresetWorld = this.World.WorldSNO.Id;
specification.SNOPresetWorld = (int)this.World.SNO;
}
if (this.World.Game.NephalemGreater && this.World.WorldSNO.Name.ToLower().Contains("x1_lr_tileset"))
if (this.World.Game.NephalemGreater && this.World.SNO.IsDungeon())
specification.SNOLevelAreas[0] = 332339;
if (this.World.WorldSNO.Name.ToLower().Contains("p43_ad"))
switch (this.World.SNO)
{
switch (this.World.WorldSNO.Id)
{
case 455282: specification.SNOLevelAreas[0] = 455466; break; //p43_ad_oldtristram
case 452721: specification.SNOLevelAreas[0] = 452986; break; //p43_ad_cathedral_level_01
case 452922: specification.SNOLevelAreas[0] = 452988; break; //p43_ad_cathedral_level_02
case 452984: specification.SNOLevelAreas[0] = 452989; break; //p43_ad_cathedral_level_03
case 452985: specification.SNOLevelAreas[0] = 452990; break; //p43_ad_cathedral_level_04
case 452991: specification.SNOLevelAreas[0] = 452992; break; //p43_ad_catacombs_level_05
case 452996: specification.SNOLevelAreas[0] = 452993; break; //p43_ad_catacombs_level_06
case 452997: specification.SNOLevelAreas[0] = 452994; break; //p43_ad_catacombs_level_07
case 452998: specification.SNOLevelAreas[0] = 452995; break; //p43_ad_catacombs_level_08
case 452999: specification.SNOLevelAreas[0] = 453001; break; //p43_ad_caves_level_09
case 453004: specification.SNOLevelAreas[0] = 453007; break; //p43_ad_caves_level_10
case 453003: specification.SNOLevelAreas[0] = 453006; break; //p43_ad_caves_level_11
case 453002: specification.SNOLevelAreas[0] = 453005; break; //p43_ad_caves_level_12
case 453008: specification.SNOLevelAreas[0] = 453009; break; //p43_ad_hell_level_13
case 453014: specification.SNOLevelAreas[0] = 453011; break; //p43_ad_hell_level_14
case 453015: specification.SNOLevelAreas[0] = 453012; break; //p43_ad_hell_level_15
case 453016: specification.SNOLevelAreas[0] = 453441; break; //p43_ad_hell_level_16
case 453440: specification.SNOLevelAreas[0] = 453441; break; //p43_ad_level02_sidedungeon_darkpassage
case 453446: specification.SNOLevelAreas[0] = 453471; break; //p43_ad_level03_sidedungeon_leoricstomb
case 453582: specification.SNOLevelAreas[0] = 453583; break; //p43_ad_level06_sidedungeon_chamberofbone
case 458255: specification.SNOLevelAreas[0] = 458256; break; //p43_ad_abandonedfarmstead
case 454208: specification.SNOLevelAreas[0] = 454209; break; //p43_ad_level15_sidedungeon_unholyaltar
}
case WorldSno.p43_ad_oldtristram: specification.SNOLevelAreas[0] = 455466; break; //p43_ad_oldtristram
case WorldSno.p43_ad_cathedral_level_01: specification.SNOLevelAreas[0] = 452986; break; //p43_ad_cathedral_level_01
case WorldSno.p43_ad_cathedral_level_02: specification.SNOLevelAreas[0] = 452988; break; //p43_ad_cathedral_level_02
case WorldSno.p43_ad_cathedral_level_03: specification.SNOLevelAreas[0] = 452989; break; //p43_ad_cathedral_level_03
case WorldSno.p43_ad_cathedral_level_04: specification.SNOLevelAreas[0] = 452990; break; //p43_ad_cathedral_level_04
case WorldSno.p43_ad_catacombs_level_05: specification.SNOLevelAreas[0] = 452992; break; //p43_ad_catacombs_level_05
case WorldSno.p43_ad_catacombs_level_06: specification.SNOLevelAreas[0] = 452993; break; //p43_ad_catacombs_level_06
case WorldSno.p43_ad_catacombs_level_07: specification.SNOLevelAreas[0] = 452994; break; //p43_ad_catacombs_level_07
case WorldSno.p43_ad_catacombs_level_08: specification.SNOLevelAreas[0] = 452995; break; //p43_ad_catacombs_level_08
case WorldSno.p43_ad_caves_level_09: specification.SNOLevelAreas[0] = 453001; break; //p43_ad_caves_level_09
case WorldSno.p43_ad_caves_level_10: specification.SNOLevelAreas[0] = 453007; break; //p43_ad_caves_level_10
case WorldSno.p43_ad_caves_level_11: specification.SNOLevelAreas[0] = 453006; break; //p43_ad_caves_level_11
case WorldSno.p43_ad_caves_level_12: specification.SNOLevelAreas[0] = 453005; break; //p43_ad_caves_level_12
case WorldSno.p43_ad_hell_level_13: specification.SNOLevelAreas[0] = 453009; break; //p43_ad_hell_level_13
case WorldSno.p43_ad_hell_level_14: specification.SNOLevelAreas[0] = 453011; break; //p43_ad_hell_level_14
case WorldSno.p43_ad_hell_level_15: specification.SNOLevelAreas[0] = 453012; break; //p43_ad_hell_level_15
case WorldSno.p43_ad_hell_level_16: specification.SNOLevelAreas[0] = 453441; break; //p43_ad_hell_level_16
case WorldSno.p43_ad_level02_sidedungeon_darkpassage: specification.SNOLevelAreas[0] = 453441; break; //p43_ad_level02_sidedungeon_darkpassage
case WorldSno.p43_ad_level03_sidedungeon_leoricstomb: specification.SNOLevelAreas[0] = 453471; break; //p43_ad_level03_sidedungeon_leoricstomb
case WorldSno.p43_ad_level06_sidedungeon_chamberofbone: specification.SNOLevelAreas[0] = 453583; break; //p43_ad_level06_sidedungeon_chamberofbone
case WorldSno.p43_ad_abandonedfarmstead: specification.SNOLevelAreas[0] = 458256; break; //p43_ad_abandonedfarmstead
case WorldSno.p43_ad_level15_sidedungeon_unholyaltar: specification.SNOLevelAreas[0] = 454209; break; //p43_ad_level15_sidedungeon_unholyaltar
default: break; // don't change anything for other worlds
}
return new RevealSceneMessage
{

View File

@ -2,6 +2,7 @@
using DiIiS_NA.Core.Helpers.Math;
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
@ -70,6 +71,10 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
/// SNOHandle for the world.
/// </summary>
public SNOHandle WorldSNO { get; private set; }
public WorldSno SNO
{
get { return (WorldSno)WorldSNO.Id; }
}
/// <summary>
/// QuadTree that contains scenes & actors.
@ -133,7 +138,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
set { }
}
public Dictionary<int, int> PortalOverrides = new Dictionary<int, int>();
public Dictionary<int, WorldSno> PortalOverrides = new Dictionary<int, WorldSno>();
/// <summary>
/// List of players contained in the world.
@ -161,7 +166,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
/// </summary>
public uint NewSceneID { get { return this.IsPvP ? World.NewPvPSceneID : this.Game.NewSceneID; } }
public bool IsPvP { get { return this.WorldSNO.Id == 279626; } } //PvP_Duel_Small
public bool IsPvP { get { return this.SNO == WorldSno.pvp_duel_small_multi; } } //PvP_Duel_Small
public static bool PvPMapLoaded = false;
@ -245,11 +250,11 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
/// Creates a new world for the given game with given snoId.
/// </summary>
/// <param name="game">The parent game.</param>
/// <param name="snoId">The snoId for the world.</param>
public World(Game game, int snoId)
: base(snoId == 279626 ? 99999 : game.NewWorldID)
/// <param name="sno">The sno for the world.</param>
public World(Game game, WorldSno sno)
: base(sno == WorldSno.pvp_duel_small_multi ? 99999 : game.NewWorldID)
{
this.WorldSNO = new SNOHandle(SNOGroup.Worlds, snoId);
this.WorldSNO = new SNOHandle(SNOGroup.Worlds, (int)sno);
this.Game = game;
@ -259,7 +264,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
this._quadTree = new QuadTree(new Size(60, 60), 0);
this.NextLocation = this.PrevLocation = new ResolvedPortalDestination
{
WorldSNO = -1,
WorldSNO = (int)WorldSno.__NONE,
DestLevelAreaSNO = -1,
StartingPointActorTag = -1
};
@ -269,13 +274,13 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
this.Game.AddWorld(this);
//this.Game.StartTracking(this); // start tracking the dynamicId for the world.
if (this.WorldSNO.Id == 267412) //Blood Marsh
if (this.SNO == WorldSno.x1_bog_01) //Blood Marsh
{
var worlds = new List<int>() { 283552, 341037, 341038, 341040 };
var worlds = new List<WorldSno>() { WorldSno.x1_catacombs_level01, WorldSno.x1_catacombs_fakeentrance_02, WorldSno.x1_catacombs_fakeentrance_03, WorldSno.x1_catacombs_fakeentrance_04 };
var scenes = new List<int>() { 265624, 265655, 265678, 265693 };
foreach (var scene in scenes)
{
var wld = worlds[FastRandom.Instance.Next(worlds.Count())];
var wld = worlds[FastRandom.Instance.Next(worlds.Count)];
this.PortalOverrides.Add(scene, wld);
worlds.Remove(wld);
}
@ -404,7 +409,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
if (player.RevealedObjects.ContainsKey(this.GlobalID))
return false;
int sceneGridSize = this.WorldSNO.Name.ToLower().Contains("zolt") ? 100 : 60;
int sceneGridSize = this.SNO.IsUsingZoltCustomGrid() ? 100 : 60;
player.InGameClient.SendMessage(new RevealWorldMessage() // Reveal world to player
{
@ -477,7 +482,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
}
//Убираем балки с проходов
if (this.WorldSNO.Id == 71150)
if (this.SNO == WorldSno.trout_town)
{
foreach (var boarded in this.GetActorsBySNO(111888))
boarded.Destroy();

View File

@ -56,6 +56,7 @@ using System.Collections.Concurrent;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Platinum;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
{
@ -341,13 +342,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
if (this.SNOId == 72817) //Tristram parom man
{
var world = this.player.World.Game.GetWorld(72882);
var world = this.player.World.Game.GetWorld(WorldSno.trout_townattack);
this.player.ChangeWorld(world, world.GetStartingPointById(116).Position);
}
else if (this.SNOId == 208400) //Cow king
{
var portal = this.player.World.Game.GetWorld(71150).GetActorBySNO(209083);
var portal = this.player.World.Game.GetWorld(WorldSno.trout_town).GetActorBySNO(209083);
(portal as ActorSystem.Implementations.WhimsyshirePortal).Open();
}
@ -355,7 +356,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
{
this.player.ShowConfirmation(this.player.DynamicID(this.player), (() =>
{
var world = this.player.World.Game.GetWorld(279626);
var world = this.player.World.Game.GetWorld(WorldSno.pvp_duel_small_multi);
this.player.ChangeWorld(world, world.GetStartingPointById(288).Position);
}));
}
@ -494,7 +495,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
this.player.InGameClient.Game.ActiveNephalemTimer = false;
this.player.InGameClient.Game.ActiveNephalemProgress = 0;
var HubWorld = this.player.InGameClient.Game.GetWorld(332336);
var HubWorld = this.player.InGameClient.Game.GetWorld(WorldSno.x1_tristram_adventure_mode_hub);
var NStone = HubWorld.GetActorBySNO(364715);
bool Activated = true;
NStone.SetIdleAnimation(NStone.AnimationSet.TagMapAnimDefault[Core.Types.TagMap.AnimationSetKeys.IdleDefault]);
@ -671,13 +672,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
#region A1-Q2
case 17667:
//var BlacksmithQuest = player.InGameClient.Game.GetWorld(71150).GetActorBySNO(65036,true);
var CainBrains = player.InGameClient.Game.GetWorld(60713).GetActorBySNO(102386, true);
var world = player.InGameClient.Game.GetWorld(WorldSno.trdun_cain_intro);
var CainBrains = world.GetActorBySNO(102386, true);
Vector3D CainPath = new Vector3D(76.99389f, 155.145f, 0.0997252f);
var facingAngle = ActorSystem.Movement.MovementHelpers.GetFacingAngle(CainBrains, CainPath);
CainBrains.Move(CainPath, facingAngle);
var A1Q2Wait1 = System.Threading.Tasks.Task.Delay(7000).ContinueWith(delegate
{
var actor = player.InGameClient.Game.GetWorld(60713).GetActorsBySNO(5723).Where(d => d.Visible).FirstOrDefault();
var actor = world.GetActorsBySNO(5723).Where(d => d.Visible).FirstOrDefault();
(actor as ActorSystem.Implementations.Door).Open();
var A1Q2Wait2 = System.Threading.Tasks.Task.Delay(2000).ContinueWith(delegate
@ -691,7 +693,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
#endregion
#region A1-Q3
case 198292:
var BlacksmithQuest = player.InGameClient.Game.GetWorld(71150).GetActorBySNO(65036, true);
var BlacksmithQuest = player.InGameClient.Game.GetWorld(WorldSno.trout_town).GetActorBySNO(65036, true);
BlacksmithQuest.WalkSpeed = 0.33f;
Vector3D FirstPoint = new Vector3D(2905.856f, 2584.807f, 0.5997877f);
Vector3D SecondPoint = new Vector3D(2790.396f, 2611.313f, 0.5997864f);
@ -712,7 +714,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
//168282
#region A1-Q4
case 168282:
var wrld = player.InGameClient.Game.GetWorld(105406);
var wrld = player.InGameClient.Game.GetWorld(WorldSno.a1trdun_level05_templar);
foreach (var Wall in wrld.GetActorsBySNO(109209))
if (Wall.Position.Z > -23f)
{
@ -724,7 +726,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
}
break;
case 17921:
var cryptwrld = player.InGameClient.Game.GetWorld(50585);
var cryptwrld = player.InGameClient.Game.GetWorld(WorldSno.a1trdun_level07);
foreach (var ghost in cryptwrld.GetActorsBySNO(5360))
ghost.Destroy();
break;

View File

@ -117,6 +117,7 @@ using DiIiS_NA.Core.Helpers.Hash;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Encounter;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.UI;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
{
@ -1603,18 +1604,18 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
World NephalemPWorld = null;
Actor NStone = null;
Portal portal = null;
int map = -1;
int[] Maps = new int[]
var map = WorldSno.__NONE;
WorldSno[] Maps = new WorldSno[]
{
331263, //x1_lr_tileset_Westmarch
360797, //_x1_lr_tileset_fortress_large
288823, //x1_lr_tileset_zoltruins
331389, //x1_lr_tileset_hexmaze
275960, //x1_lr_tileset_icecave
WorldSno.x1_lr_tileset_westmarch, //x1_lr_tileset_Westmarch
WorldSno.x1_lr_tileset_fortress_large, //_x1_lr_tileset_fortress_large
WorldSno.x1_lr_tileset_zoltruins, //x1_lr_tileset_zoltruins
WorldSno.x1_lr_tileset_hexmaze, //x1_lr_tileset_hexmaze
WorldSno.x1_lr_tileset_icecave, //x1_lr_tileset_icecave
275946, //x1_lr_tileset_crypt
275926, //x1_lr_tileset_corruptspire
WorldSno.x1_lr_tileset_crypt, //x1_lr_tileset_crypt
WorldSno.x1_lr_tileset_corruptspire, //x1_lr_tileset_corruptspire
//288843, //x1_lr_tileset_sewers
};
@ -1631,7 +1632,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
map = Maps[RandomHelper.Next(0, Maps.Length)];
//map = 288823;
NewTagMap.Add(new TagKeySNO(526850), new TagMapEntry(526850, map, 0)); //Мир
NewTagMap.Add(new TagKeySNO(526850), new TagMapEntry(526850, (int)map, 0)); //Мир
NewTagMap.Add(new TagKeySNO(526853), new TagMapEntry(526853, 288482, 0)); //Зона
NewTagMap.Add(new TagKeySNO(526851), new TagMapEntry(526851, 172, 0)); //Точка входа
this.InGameClient.Game.WorldOfPortalNephalem = map;
@ -1653,14 +1654,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
foreach (var actor in NephalemPWorld.Actors.Values)
if (actor is Portal)
{
var p = actor as Portal;
if (!actor.CurrentScene.SceneSNO.Name.ToLower().Contains("entrance"))
{
if (!actor.CurrentScene.SceneSNO.Name.ToLower().Contains("exit"))
actor.Destroy();
else if (!ExitSetted)
{
(actor as Portal).Destination.DestLevelAreaSNO = 288684;
(actor as Portal).Destination.WorldSNO = this.InGameClient.Game.WorldOfPortalNephalemSec;
p.Destination.DestLevelAreaSNO = 288684;
p.Destination.WorldSNO = (int)this.InGameClient.Game.WorldOfPortalNephalemSec;
ExitSetted = true;
var NephalemPWorldS2 = this.InGameClient.Game.GetWorld(this.InGameClient.Game.WorldOfPortalNephalemSec);
@ -1672,7 +1674,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
else
{
(atr as Portal).Destination.DestLevelAreaSNO = 332339;
(atr as Portal).Destination.WorldSNO = 332336;
(atr as Portal).Destination.WorldSNO = (int)WorldSno.x1_tristram_adventure_mode_hub;
(atr as Portal).Destination.StartingPointActorTag = 172;
}
}
@ -1684,9 +1686,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
}
else
{
(actor as Portal).Destination.DestLevelAreaSNO = 332339;
(actor as Portal).Destination.WorldSNO = 332336;
(actor as Portal).Destination.StartingPointActorTag = 24;
p.Destination.DestLevelAreaSNO = 332339;
p.Destination.WorldSNO = (int)WorldSno.x1_tristram_adventure_mode_hub;
p.Destination.StartingPointActorTag = 24;
}
}
else if (actor is Waypoint)
@ -1809,7 +1811,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
this.InGameClient.Game.NephalemGreater = true;
map = Maps[RandomHelper.Next(0, Maps.Length)];
NewTagMap.Add(new TagKeySNO(526850), new TagMapEntry(526850, map, 0)); //Мир
NewTagMap.Add(new TagKeySNO(526850), new TagMapEntry(526850, (int)map, 0)); //Мир
NewTagMap.Add(new TagKeySNO(526853), new TagMapEntry(526853, 288482, 0)); //Зона
NewTagMap.Add(new TagKeySNO(526851), new TagMapEntry(526851, 172, 0)); //Точка входа
this.InGameClient.Game.WorldOfPortalNephalem = map;
@ -1823,7 +1825,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
else
{
(actor as Portal).Destination.DestLevelAreaSNO = 332339;
(actor as Portal).Destination.WorldSNO = 332336;
(actor as Portal).Destination.WorldSNO = (int)WorldSno.x1_tristram_adventure_mode_hub;
(actor as Portal).Destination.StartingPointActorTag = 24;
}
}
@ -2409,36 +2411,36 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
actor.OnPlayerApproaching(this);
this.VacuumPickup();
if (this.World.Game.OnLoadWorldActions.ContainsKey(this.World.WorldSNO.Id))
if (this.World.Game.OnLoadWorldActions.ContainsKey(this.World.SNO))
{
Logger.Trace("OnLoadWorldActions: {0}", this.World.WorldSNO.Id);
lock (this.World.Game.OnLoadWorldActions[this.World.WorldSNO.Id])
Logger.Trace("OnLoadWorldActions: {0}", this.World.SNO);
lock (this.World.Game.OnLoadWorldActions[this.World.SNO])
{
try
{
foreach (var action in this.World.Game.OnLoadWorldActions[this.World.WorldSNO.Id])
foreach (var action in this.World.Game.OnLoadWorldActions[this.World.SNO])
{
action.Invoke();
}
}
catch { }
this.World.Game.OnLoadWorldActions[this.World.WorldSNO.Id].Clear();
this.World.Game.OnLoadWorldActions[this.World.SNO].Clear();
}
}
if (this.World.Game.OnLoadWorldActions.ContainsKey(this.CurrentScene.SceneSNO.Id))
if (this.World.Game.OnLoadSceneActions.ContainsKey(this.CurrentScene.SceneSNO.Id))
{
Logger.Trace("OnLoadSceneActions: {0}", this.CurrentScene.SceneSNO.Id);
lock (this.World.Game.OnLoadWorldActions[this.CurrentScene.SceneSNO.Id])
lock (this.World.Game.OnLoadSceneActions[this.CurrentScene.SceneSNO.Id])
{
try
{
foreach (var action in this.World.Game.OnLoadWorldActions[this.CurrentScene.SceneSNO.Id])
foreach (var action in this.World.Game.OnLoadSceneActions[this.CurrentScene.SceneSNO.Id])
{
action.Invoke();
}
}
catch { }
this.World.Game.OnLoadWorldActions[this.CurrentScene.SceneSNO.Id].Clear();
this.World.Game.OnLoadSceneActions[this.CurrentScene.SceneSNO.Id].Clear();
}
}
@ -2519,7 +2521,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
}
var levelArea = scene.Specification.SNOLevelAreas[0];
Logger.Warn($"OnTryWaypoint: Id: {tryWaypointMessage.nWaypoint}, WorldId: {wpWorld.WorldSNO.Id}, levelArea: {levelArea}");
Logger.Warn($"OnTryWaypoint: Id: {tryWaypointMessage.nWaypoint}, WorldId: {wpWorld.SNO}, levelArea: {levelArea}");
if (wayPoint == null) return;
Logger.Warn($"WpWorld: {wpWorld}, wayPoint: {wayPoint}");
InGameClient.SendMessage(new SimpleMessage(Opcodes.LoadingWarping));
@ -3348,30 +3350,30 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
float Range = 200f;
if (this.InGameClient.Game.CurrentEncounter.activated)
Range = 360f;
List<Actor> actors_around = this.GetActorsInRange(Range);
if (this.World.WorldSNO.Id == 295225 ||
this.World.WorldSNO.Id == 103209 ||
this.World.WorldSNO.Id == 186552 ||
this.World.WorldSNO.Id == 328484 ||
this.World.WorldSNO.Id == 105406)
var specialWorlds = new WorldSno[]
{
actors_around = this.World.Actors.Values.ToList();
}
WorldSno.x1_pand_batteringram,
WorldSno.gluttony_boss,
WorldSno.a3dun_hub_adria_tower,
WorldSno.x1_malthael_boss_arena,
WorldSno.a1trdun_level05_templar,
};
var actors_around = specialWorlds.Contains(this.World.SNO) ? this.World.Actors.Values.ToList() : this.GetActorsInRange(Range);
foreach (var actor in actors_around) // reveal actors in player's proximity.
{
if (actor is Player) // if the actors is already revealed, skip it.
continue;
if (this.World.WorldSNO.Id == 332336 && actor is Portal)
if ((actor as Portal).Destination.WorldSNO == 332336)
if (this.World.SNO == WorldSno.x1_tristram_adventure_mode_hub && actor is Portal)
if ((actor as Portal).Destination.WorldSNO == (int)WorldSno.x1_tristram_adventure_mode_hub)
continue;
if (this.World.WorldSNO.Id == 71150 && actor is Portal)
if ((actor as Portal).Destination.WorldSNO == 71150 && (actor as Portal).Destination.DestLevelAreaSNO == 19947)
if (this.World.SNO == WorldSno.trout_town && actor is Portal)
if ((actor as Portal).Destination.WorldSNO == (int)WorldSno.trout_town && (actor as Portal).Destination.DestLevelAreaSNO == 19947)
{
(actor as Portal).Destination.WorldSNO = 332336;
(actor as Portal).Destination.WorldSNO = (int)WorldSno.x1_tristram_adventure_mode_hub;
(actor as Portal).Destination.StartingPointActorTag = 483;
}
@ -3460,22 +3462,22 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
{
EnterPosition = this.Position,
WorldID = world.GlobalID,
WorldSNO = world.WorldSNO.Id,
WorldSNO = (int)world.SNO,
PlayerIndex = this.PlayerIndex,
EnterLookUsed = true,
EnterKnownLookOverrides = new EnterKnownLookOverrides { Field0 = new int[] { -1, -1, -1, -1, -1, -1 } }
});
switch (world.WorldSNO.Id)
switch (world.SNO)
{
case 308705:
case WorldSno.x1_westmarch_overlook_d:
this.InGameClient.SendMessage(new PlayerSetCameraObserverMessage()
{
Field0 = 309026,
Field1 = new WorldPlace() { Position = new Vector3D(), WorldID = 0 }
});
break;
case 306549:
case WorldSno.x1_westm_intro:
this.InGameClient.SendMessage(new PlayerSetCameraObserverMessage()
{
Field0 = 1541,

View File

@ -35,7 +35,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations
var scenes = World.QuadTree.Query<Scene>(proximity);
var scene = scenes[0]; // Parent scene /fasbat
int levelArea = scene.Specification.SNOLevelAreas[0];
(World.Game.GetHearthPortal() as HearthPortal).ReturnWorld = World.WorldSNO.Id;
(World.Game.GetHearthPortal() as HearthPortal).ReturnWorld = World.SNO;
(World.Game.GetHearthPortal() as HearthPortal).ReturnPosition = User.Position;
Vector3D exCheckpoint = User.CheckPointPosition;

View File

@ -31,6 +31,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations.MonsterSkills
protected void SetProjectile(PowerContext context, int actorSNO, Vector3D position, float speed = 1f, Action<Actor> OnCollision = null)
{
if (User is Monster)
// FIXME: Non-exist world id
if (User.World.WorldSNO.Id == 1 ||
User.World.WorldSNO.Id == 1)
position.Z = (User as Monster).CorrectedPosition.Z;

View File

@ -56,6 +56,7 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
{
@ -306,7 +307,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
this.Context.User.Attributes[GameAttribute.Item_Power_Passive, 249963] == 1 ||
this.Context.User.Attributes[GameAttribute.Item_Power_Passive, 249954] == 1 ||
(float)FastRandom.Instance.NextDouble() < 0.1f ||
this.Target.World.WorldSNO.Id == 211471)
this.Target.World.SNO == WorldSno.a1dun_random_level01)
switch ((int)this.DeathDamageType.HitEffect)
{
case 0: this.Target.World.BroadcastIfRevealed(plr => new PlayEffectMessage() { ActorId = this.Target.DynamicID(plr), Effect = Effect.Gore }, this.Target); break;
@ -336,7 +337,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
if (this.Target.ActorSNO.Id == 210120) //Сады надежды
{
//Первый этаж садов надежды
if (Target.World.WorldSNO.Id == 109513)
if (Target.World.SNO == WorldSno.a4dun_garden_of_hope_01)
{
//Проверяем есть ли порталы
var PortalToHell = Target.World.GetActorsBySNO(224890); //{[Actor] [Type: Gizmo] SNOId:224890 DynamicId: 280 Position: x:696,681 y:695,4387 z:0,2636871 Name: a4_Heaven_Gardens_HellPortal}
@ -363,7 +364,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
}
}
//Второй этаж садов надежды
else if (Target.World.WorldSNO.Id == 219659)
else if (Target.World.SNO == WorldSno.a4dun_garden_of_hope_random)
{ //Проверяем есть ли порталы
var PortalToHell = Target.World.GetActorsBySNO(224890); //{[Actor] [Type: Gizmo] SNOId:224890 DynamicId: 280 Position: x:696,681 y:695,4387 z:0,2636871 Name: a4_Heaven_Gardens_HellPortal}
if (PortalToHell.Count == 0)
@ -480,8 +481,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
if (this.Target is Unique)
{
if (LoreRegistry.Lore.ContainsKey(this.Target.World.WorldSNO.Id) && LoreRegistry.Lore[this.Target.World.WorldSNO.Id].chests_lore.ContainsKey(this.Target.ActorSNO.Id))
foreach (int loreId in LoreRegistry.Lore[this.Target.World.WorldSNO.Id].chests_lore[this.Target.ActorSNO.Id])
if (LoreRegistry.Lore.ContainsKey(this.Target.World.SNO) && LoreRegistry.Lore[this.Target.World.SNO].chests_lore.ContainsKey(this.Target.ActorSNO.Id))
foreach (int loreId in LoreRegistry.Lore[this.Target.World.SNO].chests_lore[this.Target.ActorSNO.Id])
if (!plr.HasLore(loreId))
{
this.Target.World.DropItem(this.Target, null, ItemGenerator.CreateLore(plr, loreId));
@ -598,7 +599,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
foreach (var bounty in this.Target.World.Game.QuestManager.Bounties)
{ if (this.Target.OriginalLevelArea == -1)
this.Target.OriginalLevelArea = this.Target.CurrentScene.Specification.SNOLevelAreas[0];
bounty.CheckKill(this.Target.ActorSNO.Id, this.Target.OriginalLevelArea, this.Target.World.WorldSNO.Id);
bounty.CheckKill(this.Target.ActorSNO.Id, this.Target.OriginalLevelArea, this.Target.World.SNO);
}
//Nephalem Rift
@ -796,7 +797,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads
}
});
//StartConversation(this.Target.World, 340878);
var HubWorld = this.Target.World.Game.GetWorld(332336);
var HubWorld = this.Target.World.Game.GetWorld(WorldSno.x1_tristram_adventure_mode_hub);
var Orek = (HubWorld.GetActorBySNO(363744) as InteractiveNPC);
Orek.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(340878));
Orek.ForceConversationSNO = 340878;

File diff suppressed because it is too large Load Diff

View File

@ -38,6 +38,7 @@ using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Hireling;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
{
@ -63,16 +64,17 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 82,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
var world = this.Game.GetWorld(WorldSno.caout_town);
//ListenProximity(151989, new Advance());
ListenConversation(57401, new Advance());
//Base world State
this.Game.GetWorld(70885).GetActorBySNO(175810).SetUsable(false); //Khamsim_Gate
this.Game.GetWorld(70885).GetActorBySNO(96132).Hidden = true; //Bezir
this.Game.GetWorld(70885).ShowOnlyNumNPC(2928, 1); //Kadin
this.Game.GetWorld(70885).ShowOnlyNumNPC(51291, 1); //Aleser
this.Game.GetWorld(70885).ShowOnlyNumNPC(51292, 1); //Caliem
this.Game.GetWorld(70885).ShowOnlyNumNPC(80980, -1); //Davyd
foreach (var Door in this.Game.GetWorld(70885).GetActorsBySNO(175810))
world.GetActorBySNO(175810).SetUsable(false); //Khamsim_Gate
world.GetActorBySNO(96132).Hidden = true; //Bezir
world.ShowOnlyNumNPC(2928, 1); //Kadin
world.ShowOnlyNumNPC(51291, 1); //Aleser
world.ShowOnlyNumNPC(51292, 1); //Caliem
world.ShowOnlyNumNPC(80980, -1); //Davyd
foreach (var Door in world.GetActorsBySNO(175810))
Door.SetUsable(false);//Khamsim_Gate
})
@ -96,8 +98,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 50,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Asheera (201085)
this.Game.GetWorld(70885).GetActorBySNO(162378).SetUsable(false);
this.Game.GetWorld(70885).ShowOnlyNumNPC(3205, 2);
var world = this.Game.GetWorld(WorldSno.caout_town);
world.GetActorBySNO(162378).SetUsable(false);
world.ShowOnlyNumNPC(3205, 2);
UnlockTeleport(0);
//ListenProximity(3205, new LaunchConversation(201085));
ListenConversation(201085, new Advance());
@ -113,7 +116,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //go through canyon
try
{
Door TDoor = (this.Game.GetWorld(70885).FindAt(169502, new Vector3D { X = 2905.62f, Y = 1568.82f, Z = 250.75f }, 6.0f) as Door);
Door TDoor = (this.Game.GetWorld(WorldSno.caout_town).FindAt(169502, new Vector3D { X = 2905.62f, Y = 1568.82f, Z = 250.75f }, 6.0f) as Door);
//ListenProximity(TDoor, )
TDoor.Open();
} catch { }
@ -129,10 +132,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 52,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill cultists
AddFollower(this.Game.GetWorld(70885), 85843);
var world = this.Game.GetWorld(WorldSno.caout_town);
AddFollower(world, 85843);
//ListenProximity(85843, new SpawnCultists());
script = new SpawnCultists();
script.Execute(this.Game.GetWorld(70885));
script.Execute(world);
ListenKill(6027, 7, new Advance());
})
});
@ -146,7 +150,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //talk with enchantress
DestroyFollower(85843);
//ListenProximity(85843, new LaunchConversation(85832));
var EnchNPC = (this.Game.GetWorld(70885).GetActorBySNO(85843) as InteractiveNPC);
var EnchNPC = (this.Game.GetWorld(WorldSno.caout_town).GetActorBySNO(85843) as InteractiveNPC);
EnchNPC.Conversations.Clear();
EnchNPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(85832));
ListenConversation(85832, new Advance());
@ -160,9 +164,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 106,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Lakuni's
this.Game.GetWorld(70885).GetActorBySNO(85843).Hidden = true;
AddFollower(this.Game.GetWorld(70885), 85843);
Open(this.Game.GetWorld(70885), 180225);
var world = this.Game.GetWorld(WorldSno.caout_town);
world.GetActorBySNO(85843).Hidden = true;
AddFollower(world, 85843);
Open(world, 180225);
ListenKill(4541, 5, new Advance());
})
});
@ -174,10 +179,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 91,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Steel Wolf's leader
var world = this.Game.GetWorld(WorldSno.caout_town);
DestroyFollower(85843);
AddFollower(this.Game.GetWorld(70885), 85843);
AddFollower(world, 85843);
//ListenProximity(164195, new LaunchConversation(164197));
var Leader = (this.Game.GetWorld(70885).GetActorBySNO(164195) as InteractiveNPC);
var Leader = (world.GetActorBySNO(164195) as InteractiveNPC);
Leader.Conversations.Clear();
Leader.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(164197));
ListenConversation(164197, new Advance());
@ -191,9 +197,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 58,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 }, new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //break rituals (2 counters)
var world = this.Game.GetWorld(WorldSno.caout_town);
DestroyFollower(85843);
AddFollower(this.Game.GetWorld(70885), 85843);
var Leader = (this.Game.GetWorld(70885).GetActorBySNO(164195) as InteractiveNPC);
AddFollower(world, 85843);
var Leader = (world.GetActorBySNO(164195) as InteractiveNPC);
Leader.Conversations.Clear();
ListenProximity(171329, new CompleteObjective(0));
ListenProximity(3594, new CompleteObjective(1));
@ -208,7 +215,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //go to Canyon Bridge
DestroyFollower(85843);
AddFollower(this.Game.GetWorld(70885), 85843);
AddFollower(this.Game.GetWorld(WorldSno.caout_town), 85843);
ListenProximity(3665, new Advance());
})
});
@ -221,7 +228,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with enchantress
DestroyFollower(85843);
AddFollower(this.Game.GetWorld(70885), 85843);
AddFollower(this.Game.GetWorld(WorldSno.caout_town), 85843);
ListenProximity(85843, new LaunchConversation(86196));
ListenConversation(86196, new Advance());
})
@ -235,7 +242,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //complete
DestroyFollower(85843);
Open(this.Game.GetWorld(70885), 185949);
Open(this.Game.GetWorld(WorldSno.caout_town), 185949);
if (!this.Game.Empty)
foreach (var plr in this.Game.Players.Values)
{
@ -286,12 +293,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 46,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Khasim gate
var world = this.Game.GetWorld(WorldSno.caout_town);
ListenProximity(145599, new Advance());
this.Game.GetWorld(70885).GetActorBySNO(96132).Hidden = true; //Bezir
this.Game.GetWorld(70885).ShowOnlyNumNPC(2928, 0); //Kadin
this.Game.GetWorld(70885).ShowOnlyNumNPC(51291, 0); //Aleser
this.Game.GetWorld(70885).ShowOnlyNumNPC(51292, 0); //Caliem
this.Game.GetWorld(70885).ShowOnlyNumNPC(80980, -1); //Davyd
world.GetActorBySNO(96132).Hidden = true; //Bezir
world.ShowOnlyNumNPC(2928, 0); //Kadin
world.ShowOnlyNumNPC(51291, 0); //Aleser
world.ShowOnlyNumNPC(51292, 0); //Caliem
world.ShowOnlyNumNPC(80980, -1); //Davyd
})
});
@ -328,13 +336,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 4,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 }, new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill demons and open cell
this.Game.AddOnLoadAction(60432, () =>
this.Game.AddOnLoadWorldAction(WorldSno.caout_khamsin_mine, () =>
{
if ((Game.CurrentQuest == 93396 & Game.CurrentStep == 30) || (Game.CurrentQuest == 93396 & Game.CurrentStep == 74))
{
DisableEveryone(this.Game.GetWorld(60432), true);
var world = this.Game.GetWorld(WorldSno.caout_khamsin_mine);
DisableEveryone(world, true);
StartConversation(this.Game.GetWorld(60432), 195060);
StartConversation(world, 195060);
ListenConversation(195060, new LaunchConversation(195062));
ListenConversation(195062, new KhasimHQ());
@ -357,7 +366,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill stealthed demons
script = new SpawnSnakemans();
script.Execute(this.Game.GetWorld(70885));
script.Execute(this.Game.GetWorld(WorldSno.caout_town));
ListenKill(60816, 3, new Advance());
})
});
@ -369,7 +378,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 10,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with captain David
this.Game.GetWorld(70885).ShowOnlyNumNPC(80980, 1);
this.Game.GetWorld(WorldSno.caout_town).ShowOnlyNumNPC(80980, 1);
//ListenProximity(80980, new LaunchConversation(60608));
ListenConversation(81351, new Advance());
})
@ -382,7 +391,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = -1,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //complete
Open(this.Game.GetWorld(70885), 175810);
Open(this.Game.GetWorld(WorldSno.caout_town), 175810);
})
});
@ -419,7 +428,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 26,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Maghda's lair and optionally, free 8 cells
var encW = this.Game.GetWorld(70885);
var encW = this.Game.GetWorld(WorldSno.caout_town);
encW.SpawnMonster(3628, new Vector3D(528.7084f, 1469.1945f, 197.2559f));
encW.SpawnMonster(3628, new Vector3D(475.812f, 1554.7146f, 197.25589f));
encW.SpawnMonster(3628, new Vector3D(463.88342f, 1542.4092f, 197.25587f));
@ -450,9 +459,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //return to camp
this.Game.CurrentEncounter.activated = false;
this.Game.AddOnLoadAction(195200, () =>
this.Game.AddOnLoadWorldAction(WorldSno.caout_cellar_alcarnus_main, () =>
{
Open(this.Game.GetWorld(195200), 214196);
Open(this.Game.GetWorld(WorldSno.caout_cellar_alcarnus_main), 214196);
});
ListenProximity(191492, new Advance());
})
@ -491,7 +500,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Asheera
//ListenProximity(3205, new LaunchConversation(201285));
this.Game.GetWorld(70885).ShowOnlyNumNPC(3205, 0);
this.Game.GetWorld(WorldSno.caout_town).ShowOnlyNumNPC(3205, 0);
ListenConversation(201285, new Advance());
})
});
@ -516,20 +525,21 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 21,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Emperor
this.Game.AddOnLoadAction(81715, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_belial_room_intro, () =>
{
//ID: 59447 Name: BelialBoyEmperor
var world = this.Game.GetWorld(WorldSno.a2_belial_room_intro);
foreach (var plr in this.Game.Players.Values)
{
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraCriptedSequenceStartMessage() { Activate = true });
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)this.Game.GetWorld(81715).GetActorBySNO(59447).DynamicID(plr), Duration = 1f, Snap = false });
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)world.GetActorBySNO(59447).DynamicID(plr), Duration = 1f, Snap = false });
}
foreach (var leah in this.Game.GetWorld(81715).GetActorsBySNO(4580))
foreach (var leah in world.GetActorsBySNO(4580))
if (leah is TownLeah)
(leah as TownLeah).Brain.DeActivate();
setActorOperable(this.Game.GetWorld(81715), 190236, false);
DisableEveryone(this.Game.GetWorld(81715), true);
StartConversation(this.Game.GetWorld(81715), 160894);
setActorOperable(world, 190236, false);
DisableEveryone(world, true);
StartConversation(world, 160894);
});
//ListenTeleport(81178, new LaunchConversation(160894));
ListenConversation(160894, new LaunchConversation(160896));
@ -546,19 +556,20 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill demons
int snakes = 0;
this.Game.AddOnLoadAction(81715, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_belial_room_intro, () =>
{
if (this.Game.CurrentQuest == 57331 && this.Game.CurrentStep == 21)
{
DisableEveryone(this.Game.GetWorld(81715), false);
AddFollower(this.Game.GetWorld(81715), 4580);
foreach (var leah in this.Game.GetWorld(81715).GetActorsBySNO(4580))
var world = this.Game.GetWorld(WorldSno.a2_belial_room_intro);
DisableEveryone(world, false);
AddFollower(world, 4580);
foreach (var leah in world.GetActorsBySNO(4580))
if (leah is TownLeah)
(leah as TownLeah).Brain.Activate();
script = new SpawnSnakemanGuards();
script.Execute(this.Game.GetWorld(81715));
script.Execute(world);
foreach (var snake in this.Game.GetWorld(81715).GetActorsBySNO(60816))
foreach (var snake in world.GetActorsBySNO(60816))
snakes++;
}
});
@ -574,13 +585,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 31,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //escape the emperor's palace
this.Game.AddOnLoadAction(81715, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_belial_room_intro, () =>
{
if (this.Game.CurrentQuest == 57331 && this.Game.CurrentStep == 2)
{
var world = this.Game.GetWorld(WorldSno.a2_belial_room_intro);
DestroyFollower(4580);
AddFollower(this.Game.GetWorld(81715), 4580);
Open(this.Game.GetWorld(81715), 190236);
AddFollower(world, 4580);
Open(world, 190236);
}
});
ListenTeleport(102964, new Advance());
@ -594,17 +606,19 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 34,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //destroy 4 demon summoners
this.Game.AddOnLoadAction(86594, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_cald, () =>
{
if (this.Game.CurrentQuest == 57331 && this.Game.CurrentStep == 31)
{
this.Game.GetWorld(86594).ShowOnlyNumNPC(3205, -1); //Leave all Asheara
this.Game.GetWorld(86594).ShowOnlyNumNPC(4580, -1); //Leave all Leah
this.Game.GetWorld(86594).ShowOnlyNumNPC(4580, -1); //Leave all Adria
var world = this.Game.GetWorld(WorldSno.a2dun_cald);
world.ShowOnlyNumNPC(3205, -1); //Leave all Asheara
world.ShowOnlyNumNPC(4580, -1); //Leave all Leah
// FIXME: check NPC snoID, maybe it should be 3095
world.ShowOnlyNumNPC(4580, -1); //Leave all Adria
DestroyFollower(4580);
AddFollower(this.Game.GetWorld(81715), 4580);
AddFollower(this.Game.GetWorld(WorldSno.a2_belial_room_intro), 4580);
script = new SpawnSnakemanDefenders();
script.Execute(this.Game.GetWorld(86594));
script.Execute(world);
}
});
@ -619,14 +633,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 7,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //hide into Caldeum drains
this.Game.AddOnLoadAction(86594, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_cald, () =>
{
if (this.Game.CurrentQuest == 57331 && this.Game.CurrentStep == 34)
{
DestroyFollower(4580);
AddFollower(this.Game.GetWorld(81715), 4580);
AddFollower(this.Game.GetWorld(WorldSno.a2_belial_room_intro), 4580);
foreach (var act in this.Game.GetWorld(86594).GetActorsBySNO(159846))
foreach (var act in this.Game.GetWorld(WorldSno.a2dun_cald).GetActorsBySNO(159846))
act.Destroy();//TEMP_SnakePortal_Center
}
});
@ -641,13 +655,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = -1,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //complete
this.Game.AddOnLoadAction(86594, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_cald, () =>
{
if (this.Game.CurrentQuest == 57331 && this.Game.CurrentStep == 7)
{
var world = this.Game.GetWorld(WorldSno.a2c1dun_swr_caldeum_01);
DestroyFollower(4580);
this.Game.GetWorld(50588).ShowOnlyNumNPC(4580, -1); //Leave all Leah
this.Game.GetWorld(50588).ShowOnlyNumNPC(87496, -1); //Leave all LeahSewer
world.ShowOnlyNumNPC(4580, -1); //Leave all Leah
world.ShowOnlyNumNPC(87496, -1); //Leave all LeahSewer
}
});
this.Game.CurrentEncounter.activated = false;
@ -687,15 +702,16 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 15,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill guardians
this.Game.AddOnLoadAction(58493, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_swr_adria_level01, () =>
{
if (this.Game.CurrentQuest == 78264 && this.Game.CurrentStep == 2)
{
StartConversation(this.Game.GetWorld(58493), 81197);
var world = this.Game.GetWorld(WorldSno.a2dun_swr_adria_level01);
StartConversation(world, 81197);
foreach (var plr in this.Game.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraCriptedSequenceStartMessage() { Activate = true });
foreach (var plr in this.Game.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)this.Game.GetWorld(58493).GetActorBySNO(3095).DynamicID(plr), Duration = 1f, Snap = false });
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)world.GetActorBySNO(3095).DynamicID(plr), Duration = 1f, Snap = false });
ListenConversation(81197, new EndCutScene());
}
});
@ -711,9 +727,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 21,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Adria in pit
this.Game.AddOnLoadAction(58493, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_swr_adria_level01, () =>
{
AddQuestConversation(this.Game.GetWorld(58493).GetActorBySNO(3095), 81674);
AddQuestConversation(this.Game.GetWorld(WorldSno.a2dun_swr_adria_level01).GetActorBySNO(3095), 81674);
ListenConversation(81674, new Advance());
});
})
@ -726,13 +742,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 8,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Adria in camp
var world = this.Game.GetWorld(WorldSno.a2dun_swr_adria_level01);
this.Game.CurrentEncounter.activated = false;
if (this.Game.GetWorld(58493).GetActorBySNO(3095) != null)
RemoveConversations(this.Game.GetWorld(58493).GetActorBySNO(3095));
if (world.GetActorBySNO(3095) != null)
RemoveConversations(world.GetActorBySNO(3095));
var Adria = this.Game.GetWorld(58493).ShowOnlyNumNPC(3095, 0);
var Portal = this.Game.GetWorld(58493).GetActorBySNO(203431);
var AltPortal = this.Game.GetWorld(58493).SpawnMonster(203431, Portal.Position);
var Adria = world.ShowOnlyNumNPC(3095, 0);
var Portal = world.GetActorBySNO(203431);
var AltPortal = world.SpawnMonster(203431, Portal.Position);
Adria.Move(Portal.Position, ActorSystem.Movement.MovementHelpers.GetFacingAngle(Adria, Portal)); //Only Talk Adria
@ -741,12 +758,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
System.Threading.Tasks.Task.Delay(3000).ContinueWith(delegate
{
this.Game.GetWorld(58493).ShowOnlyNumNPC(3095, -1); //Only Talk Adria
world.ShowOnlyNumNPC(3095, -1); //Only Talk Adria
Portal.Destroy();
AltPortal.Destroy();
});
AddQuestConversation(this.Game.GetWorld(161472).GetActorBySNO(3095), 58139);
AddQuestConversation(this.Game.GetWorld(WorldSno.caout_refugeecamp).GetActorBySNO(3095), 58139);
//ListenProximity(6353, new LaunchConversation(58139));
ListenConversation(58139, new Advance());
@ -761,7 +778,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //complete
PlayCutscene(2);
this.Game.GetWorld(70885).GetActorBySNO(162378).SetUsable(true);
this.Game.GetWorld(WorldSno.caout_town).GetActorBySNO(162378).SetUsable(true);
})
});
@ -789,13 +806,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
if (Game.DestinationEnterQuest == 78266)
if (Game.DestinationEnterQuestStep == -1 || Game.DestinationEnterQuestStep == 2)
{
this.Game.AddOnLoadAction(161472, () =>
this.Game.AddOnLoadWorldAction(WorldSno.caout_refugeecamp, () =>
{
ActiveArrow(this.Game.GetWorld(161472), 178304, 70885);
ActiveArrow(this.Game.GetWorld(WorldSno.caout_refugeecamp), 178304, WorldSno.caout_town);
});
this.Game.AddOnLoadAction(70885, () =>
this.Game.AddOnLoadWorldAction(WorldSno.caout_town, () =>
{
ActiveArrow(this.Game.GetWorld(70885), 176003, 174434);
ActiveArrow(this.Game.GetWorld(WorldSno.caout_town), 176003, WorldSno.a2_swr_fcauseway_01);
});
}
@ -825,11 +842,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //find Oasis
ListenConversation(180063, new LaunchConversation(187093));
ListenTeleport(175367, new Advance());
this.Game.AddOnLoadAction(174434, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_swr_fcauseway_01, () =>
{
if (this.Game.CurrentQuest == 78266 && this.Game.CurrentStep == 31)
{
StartConversation(this.Game.GetWorld(174434), 180063);
StartConversation(this.Game.GetWorld(WorldSno.a2_swr_fcauseway_01), 180063);
}
});
})
@ -926,13 +943,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 }, new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //turn east lever and turn west lever and open gates to drowned passage
//try {(this.Game.GetWorld(59486).FindAt(83629, new Vector3D{X = 175.1f, Y = 62.275f, Z = 50.17f}, 20.0f) as Door).Open();} catch {}
this.Game.AddOnLoadAction(59486, () =>
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_special_01);
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_special_01, () =>
{
(this.Game.GetWorld(59486).FindAt(83629, new Vector3D { X = 175.1f, Y = 62.275f, Z = 50.17f }, 20.0f) as Door).Open();
(world.FindAt(83629, new Vector3D { X = 175.1f, Y = 62.275f, Z = 50.17f }, 20.0f) as Door).Open();
});
ListenInteract(76931, 1, new CompleteObjective(0));
ListenInteract(83295, 1, new Advance());
StartConversation(this.Game.GetWorld(59486), 186905);
StartConversation(world, 186905);
//ListenInteract(83295, 1, new CompleteObjective(2));
})
});
@ -944,12 +962,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 54,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //enter to drowned passage
this.Game.AddOnLoadAction(59486, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_special_01, () =>
{
Open(this.Game.GetWorld(59486), 83629);
Open(this.Game.GetWorld(59486), 131364);
Open(this.Game.GetWorld(59486), 159419);
(this.Game.GetWorld(59486).FindAt(83629, new Vector3D { X = 80.5f, Y = 155.631f, Z = 50.33f }, 20.0f) as Door).Open();
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_special_01);
Open(world, 83629);
Open(world, 131364);
Open(world, 159419);
(world.FindAt(83629, new Vector3D { X = 80.5f, Y = 155.631f, Z = 50.33f }, 20.0f) as Door).Open();
});
//try {(this.Game.GetWorld(59486).FindAt(83629, new Vector3D{X = 80.5f, Y = 155.631f, Z = 50.33f}, 20.0f) as Door).Open();} catch {}
ListenTeleport(192694, new Advance());
@ -963,12 +982,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 56,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Deceiveds
this.Game.AddOnLoadAction(192687, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
setActorOperable(this.Game.GetWorld(192687), 168235, false);
this.Game.GetWorld(192687).SpawnMonster(4104, new Vector3D { X = 75.209f, Y = 191.342f, Z = -1.5f });
this.Game.GetWorld(192687).SpawnMonster(4104, new Vector3D { X = 44.703f, Y = 179.753f, Z = -1.56f });
this.Game.GetWorld(192687).SpawnMonster(4104, new Vector3D { X = 43.304f, Y = 205.28f, Z = -0.34f });
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00);
setActorOperable(world, 168235, false);
world.SpawnMonster(4104, new Vector3D { X = 75.209f, Y = 191.342f, Z = -1.5f });
world.SpawnMonster(4104, new Vector3D { X = 44.703f, Y = 179.753f, Z = -1.56f });
world.SpawnMonster(4104, new Vector3D { X = 43.304f, Y = 205.28f, Z = -0.34f });
});
ListenKill(4104, 3, new Advance());
})
@ -981,9 +1001,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 58,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //break talking barrel
this.Game.AddOnLoadAction(192687, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
setActorOperable(this.Game.GetWorld(192687), 168235, true);
setActorOperable(this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00), 168235, true);
});
ListenInteract(168235, 1, new Advance());
})
@ -996,9 +1016,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 60,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with jeweler
this.Game.AddOnLoadAction(192687, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
this.Game.GetWorld(192687).SpawnMonster(61544, this.Game.GetWorld(192687).GetActorBySNO(168235, true).Position);
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00);
world.SpawnMonster(61544, world.GetActorBySNO(168235, true).Position);
});
ListenProximity(61544, new LaunchConversation(168948));
ListenConversation(168948, new Advance());
@ -1012,11 +1033,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 62,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find crucible
this.Game.AddOnLoadAction(192687, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
if (this.Game.CurrentQuest == 57335 && this.Game.CurrentStep == 60)
{
AddFollower(this.Game.GetWorld(192687), 61544);
AddFollower(this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00), 61544);
}
});
ListenProximity(168240, new Advance());
@ -1030,16 +1051,17 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 64,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Gevin
this.Game.AddOnLoadAction(192687, () =>
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00);
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
if (this.Game.CurrentQuest == 57335 && this.Game.CurrentStep == 62)
{
DestroyFollower(61544);
AddFollower(this.Game.GetWorld(192687), 61544);
AddFollower(world, 61544);
}
});
bool Killed = true;
foreach (var act in this.Game.GetWorld(192687).Actors.Values)
foreach (var act in world.Actors.Values)
if (act.ActorSNO.Id == 168240)
Killed = false;
if (!Killed)
@ -1047,7 +1069,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
else
{
script = new Advance();
script.Execute(this.Game.GetWorld(192687));
script.Execute(world);
}
})
@ -1060,12 +1082,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 44,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //get crucible
this.Game.AddOnLoadAction(192687, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
if (this.Game.CurrentQuest == 57335 && this.Game.CurrentStep == 64)
{
DestroyFollower(61544);
AddFollower(this.Game.GetWorld(192687), 61544);
AddFollower(this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00), 61544);
}
});
ListenInteract(213514, 1, new Advance());
@ -1079,12 +1101,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 24,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //enter the ancient passage
this.Game.AddOnLoadAction(192687, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_aqd_oasis_level00, () =>
{
if (this.Game.CurrentQuest == 57335 && this.Game.CurrentStep == 44)
{
DestroyFollower(61544);
AddFollower(this.Game.GetWorld(192687), 61544);
AddFollower(this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_level00), 61544);
}
});
ListenTeleport(175330, new Advance());
@ -1173,20 +1195,20 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 }, new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //open Abyss lock and open Stormhalls lock
if (this.Game.Empty) UnlockTeleport(9);
this.Game.AddOnLoadAction(50613, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_zolt_lobby, () =>
{
if (this.Game.CurrentQuest == 57337 && this.Game.CurrentStep == 35)
{
StartConversation(this.Game.GetWorld(50613), 187015);
StartConversation(this.Game.GetWorld(WorldSno.a2dun_zolt_lobby), 187015);
}
});
this.Game.AddOnLoadAction(50610, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_zolt_level01, () =>
{
(this.Game.GetWorld(50610).GetActorBySNO(74187) as Spawner).Spawn();
(this.Game.GetWorld(WorldSno.a2dun_zolt_level01).GetActorBySNO(74187) as Spawner).Spawn();
});
this.Game.AddOnLoadAction(50611, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_zolt_level02, () =>
{
(this.Game.GetWorld(50611).GetActorBySNO(74187) as Spawner).Spawn();
(this.Game.GetWorld(WorldSno.a2dun_zolt_level02).GetActorBySNO(74187) as Spawner).Spawn();
});
ListenInteract(2975, 2, new Advance());
})
@ -1199,9 +1221,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 0,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //enter the shadows world
this.Game.AddOnLoadAction(50613, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_zolt_lobby, () =>
{
Open(this.Game.GetWorld(50613), 205701);
Open(this.Game.GetWorld(WorldSno.a2dun_zolt_lobby), 205701);
});
UnlockTeleport(9);
ListenTeleport(80592, new Advance());
@ -1227,7 +1249,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Leah
ListenProximity(4580, new LaunchConversation(62505));
foreach (var act in this.Game.GetWorld(50613).GetActorsBySNO(168333))
foreach (var act in this.Game.GetWorld(WorldSno.a2dun_zolt_lobby).GetActorsBySNO(168333))
act.Destroy();
ListenConversation(62505, new Advance());
})
@ -1251,11 +1273,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 4,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Kulle
this.Game.AddOnLoadAction(60193, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_zolt_bossfight_level04, () =>
{
if (this.Game.CurrentQuest == 57337 && this.Game.CurrentStep == 27)
{
StartConversation(this.Game.GetWorld(60193), 202697);
StartConversation(this.Game.GetWorld(WorldSno.a2dun_zolt_bossfight_level04), 202697);
}
});
ListenConversation(202697, new Advance());
@ -1280,9 +1302,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 33,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //get Soulstone
this.Game.AddOnLoadAction(60193, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_zolt_bossfight_level04, () =>
{
Open(this.Game.GetWorld(60193), 165415);
Open(this.Game.GetWorld(WorldSno.a2dun_zolt_bossfight_level04), 165415);
});
ListenInteract(156328, 1, new Advance());
})
@ -1331,11 +1353,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 23,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Asheara
this.Game.AddOnLoadAction(70885, () =>
this.Game.AddOnLoadWorldAction(WorldSno.caout_town, () =>
{
this.Game.GetWorld(70885).ShowOnlyNumNPC(3205, 1);
var world = this.Game.GetWorld(WorldSno.caout_town);
world.ShowOnlyNumNPC(3205, 1);
script = new Advance();
script.Execute(this.Game.GetWorld(70885));
script.Execute(world);
});
//ListenProximity(3205, new Advance());
})
@ -1348,7 +1371,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 21,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Asheara
foreach (var Ashe in this.Game.GetWorld(70885).GetActorsBySNO(3205))
foreach (var Ashe in this.Game.GetWorld(WorldSno.caout_town).GetActorsBySNO(3205))
AddQuestConversation(Ashe, 121359);
ListenConversation(121359, new Advance());
})
@ -1361,10 +1384,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //todo: timed event 115494
try { (this.Game.GetWorld(70885).FindAt(169502, new Vector3D { X = 3135.3f, Y = 1546.1f, Z = 250.545f }, 15.0f) as Door).Open(); } catch { }
foreach (var Ashe in this.Game.GetWorld(70885).GetActorsBySNO(3205))
var world = this.Game.GetWorld(WorldSno.caout_town);
try { (world.FindAt(169502, new Vector3D { X = 3135.3f, Y = 1546.1f, Z = 250.545f }, 15.0f) as Door).Open(); } catch { }
foreach (var Ashe in world.GetActorsBySNO(3205))
RemoveConversations(Ashe);
StartConversation(this.Game.GetWorld(70885), 178852);
StartConversation(world, 178852);
ListenConversation(178852, new RefugeesRescue());
//ListenProximity(162378, new RefugeesRescue());
})
@ -1401,8 +1425,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 12,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //enter the Caldeum palace
AddFollower(this.Game.GetWorld(81715), 4580);
AddFollower(this.Game.GetWorld(161472), 3095);
AddFollower(this.Game.GetWorld(WorldSno.a2_belial_room_intro), 4580);
AddFollower(this.Game.GetWorld(WorldSno.caout_refugeecamp), 3095);
ListenTeleport(210451, new Advance());
})
});
@ -1414,19 +1438,20 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 29,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //go to emperor's palace
foreach (var door in this.Game.GetWorld(109894).GetActorsBySNO(190844))
var world = this.Game.GetWorld(WorldSno.a2dun_cald_uprising);
foreach (var door in world.GetActorsBySNO(190844))
door.Destroy();
foreach (var guard in this.Game.GetWorld(109894).GetActorsBySNO(57470))
foreach (var guard in world.GetActorsBySNO(57470))
guard.Destroy();
DestroyFollower(4580);
DestroyFollower(3095);
AddFollower(this.Game.GetWorld(81715), 4580);
AddFollower(this.Game.GetWorld(161472), 3095);
this.Game.AddOnLoadAction(109894, () =>
AddFollower(this.Game.GetWorld(WorldSno.a2_belial_room_intro), 4580);
AddFollower(this.Game.GetWorld(WorldSno.caout_refugeecamp), 3095);
this.Game.AddOnLoadWorldAction(WorldSno.a2dun_cald_uprising, () =>
{
script = new SpawnBelialDefenders();
script.Execute(this.Game.GetWorld(109894));
Open(this.Game.GetWorld(109894), 180254);
script.Execute(world);
Open(world, 180254);
});
ListenTeleport(60757, new Advance());
})
@ -1441,36 +1466,37 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //kill Belial
DestroyFollower(4580);
DestroyFollower(3095);
this.Game.AddOnLoadAction(60756, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_belial_room_01, () =>
{
setActorOperable(this.Game.GetWorld(60756), 169025, false);
setActorOperable(this.Game.GetWorld(60756), 190236, false);
setActorVisible(this.Game.GetWorld(60756), 191922, false);
var world = this.Game.GetWorld(WorldSno.a2_belial_room_01);
setActorOperable(world, 169025, false);
setActorOperable(world, 190236, false);
setActorVisible(world, 191922, false);
//stage 1
if (this.Game.CurrentQuest == 57339 && this.Game.CurrentStep == 29)
{
DisableEveryone(this.Game.GetWorld(60756), true);
foreach (var Adr in this.Game.GetWorld(60756).GetActorsBySNO(3095))
DisableEveryone(world, true);
foreach (var Adr in world.GetActorsBySNO(3095))
(Adr as Minion).Brain.DeActivate();
foreach (var Adr in this.Game.GetWorld(60756).GetActorsBySNO(4580))
foreach (var Adr in world.GetActorsBySNO(4580))
(Adr as TownLeah).Brain.DeActivate();
//Старт катсцены
System.Threading.Tasks.Task.Run(() =>
{
while (true)
if (this.Game.Players.First().Value.World.WorldSNO.Id == 60756)
if (this.Game.Players.First().Value.World.SNO == WorldSno.a2_belial_room_01)
break;
while (true)
if (this.Game.GetWorld(60756).GetActorBySNO(59447).IsRevealedToPlayer(this.Game.Players.First().Value))
if (world.GetActorBySNO(59447).IsRevealedToPlayer(this.Game.Players.First().Value))
break;
foreach (var plr in this.Game.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraCriptedSequenceStartMessage() { Activate = true });
foreach (var plr in this.Game.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)this.Game.GetWorld(60756).GetActorBySNO(59447).DynamicID(plr), Duration = 1f, Snap = false });
StartConversation(this.Game.GetWorld(60756), 61130);
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)world.GetActorBySNO(59447).DynamicID(plr), Duration = 1f, Snap = false });
StartConversation(world, 61130);
});
}
@ -1496,9 +1522,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //get Belial's soul
this.Game.CurrentEncounter.activated = false;
this.Game.AddOnLoadAction(60756, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_belial_room_01, () =>
{
(this.Game.GetWorld(60756).GetActorBySNO(169025) as BelialRoom).Rebuild();
(this.Game.GetWorld(WorldSno.a2_belial_room_01).GetActorBySNO(169025) as BelialRoom).Rebuild();
});
//this.Game.GetWorld(60756).SpawnMonster(206391, this.Game.GetWorld(60756).GetStartingPointById(108).Position);
ListenInteract(206391, 1, new Advance());
@ -1512,10 +1538,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 14,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Tyrael in camp
this.Game.AddOnLoadAction(60756, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a2_belial_room_01, () =>
{
setActorOperable(this.Game.GetWorld(60756), 190236, true);
this.Game.GetWorld(60756).GetActorBySNO(206391, true).Destroy();
var world = this.Game.GetWorld(WorldSno.a2_belial_room_01);
setActorOperable(world, 190236, true);
world.GetActorBySNO(206391, true).Destroy();
});
ListenProximity(146980, new LaunchConversation(80329));
ListenConversation(80329, new Advance());
@ -1531,7 +1558,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //talk with caravan leader
ListenInteract(177544, 1, new LaunchConversation(177669));
ListenConversation(177669, new ChangeAct(200));
this.Game.GetWorld(161472).GetActorBySNO(177544, true).NotifyConversation(1);
this.Game.GetWorld(WorldSno.caout_refugeecamp).GetActorBySNO(177544, true).NotifyConversation(1);
})
});

View File

@ -30,6 +30,7 @@ using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations;
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement;
//Blizzless Project 2022
using System.Threading.Tasks;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
{
@ -53,7 +54,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 8,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
this.Game.GetWorld(204707).GetActorBySNO(170038, true).NotifyConversation(1);
this.Game.GetWorld(WorldSno.a3dun_hub_adria_tower_intro).GetActorBySNO(170038, true).NotifyConversation(1);
ListenInteract(170038, 1, new LaunchConversation(204905));
ListenConversation(204905, new Advance());
})
@ -66,9 +67,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 26,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //use fire torches
var world = this.Game.GetWorld(WorldSno.a3dun_hub_adria_tower_intro);
ListenInteract(196211, 5, new Advance());
StartConversation(this.Game.GetWorld(204707), 204915);
this.Game.GetWorld(204707).GetActorBySNO(170038, true).NotifyConversation(0);
StartConversation(world, 204915);
world.GetActorBySNO(170038, true).NotifyConversation(0);
})
});
@ -117,15 +119,16 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 20,
Objectives = new List<Objective> { new Objective { Limit = 3, Counter = 0 } },
OnAdvance = new Action(() => { //use 3 catapults
this.Game.AddOnLoadAction(93099, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_rmpt_level02, () =>
{
var world = this.Game.GetWorld(WorldSno.a3dun_rmpt_level02);
if (this.Game.CurrentQuest == 93684 && this.Game.CurrentStep == 18)
{
//StartConversation(this.Game.GetWorld(81019), 106160);
}
this.Game.GetWorld(93099).GetActorBySNO(154137).NotifyConversation(2);
this.Game.GetWorld(93099).GetActorBySNO(162406).NotifyConversation(2);
this.Game.GetWorld(93099).GetActorBySNO(149810).NotifyConversation(2);
world.GetActorBySNO(154137).NotifyConversation(2);
world.GetActorBySNO(162406).NotifyConversation(2);
world.GetActorBySNO(149810).NotifyConversation(2);
});
ListenInteract(154137, 1, new FirstCatapult()); //followers
ListenInteract(162406, 1, new SecondCatapult());
@ -188,9 +191,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find breach on 2nd level
if (this.Game.Empty)
while (this.Game.GetWorld(172909).GetActorBySNO(77796, true) != null)
this.Game.GetWorld(172909).GetActorBySNO(77796, true).Destroy();
UnlockTeleport(2);
{
var world = this.Game.GetWorld(WorldSno.a3dun_hub_keep);
while (world.GetActorBySNO(77796, true) != null)
world.GetActorBySNO(77796, true).Destroy();
}
UnlockTeleport(2);
ListenTeleport(136448, new Advance());
})
});
@ -214,17 +221,19 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill gluttony
UnlockTeleport(3);
this.Game.AddOnLoadAction(103209, () =>
this.Game.AddOnLoadWorldAction(WorldSno.gluttony_boss, () =>
{
if (this.Game.CurrentQuest == 93697)
{
ActII.DisableEveryone(this.Game.GetWorld(103209), true);
var world = this.Game.GetWorld(WorldSno.gluttony_boss);
// TODO: extract this static method as extension
ActII.DisableEveryone(world, true);
//Старт катсцены
foreach (var plr in this.Game.GetWorld(103209).Players.Values)
foreach (var plr in world.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraCriptedSequenceStartMessage() { Activate = true });
foreach (var plr in this.Game.GetWorld(103209).Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)this.Game.GetWorld(103209).GetActorBySNO(87642).DynamicID(plr), Duration = 1f, Snap = false });
StartConversation(this.Game.GetWorld(103209), 137018);
foreach (var plr in world.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)world.GetActorBySNO(87642).DynamicID(plr), Duration = 1f, Snap = false });
StartConversation(world, 137018);
}
});
ListenConversation(137018, new EndCutScene());
@ -264,7 +273,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 1,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
var Tyrael = this.Game.GetWorld(172909).GetActorBySNO(170038);
var Tyrael = this.Game.GetWorld(WorldSno.a3dun_hub_keep).GetActorBySNO(170038);
(Tyrael as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(183792));
Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 2;
Tyrael.Attributes.BroadcastChangedIfRevealed();
@ -279,7 +288,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 4,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //go to Armory
var Tyrael = this.Game.GetWorld(172909).GetActorBySNO(170038);
var Tyrael = this.Game.GetWorld(WorldSno.a3dun_hub_keep).GetActorBySNO(170038);
(Tyrael as InteractiveNPC).Conversations.Clear();
Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
Tyrael.Attributes.BroadcastChangedIfRevealed();
@ -294,10 +303,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 6,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill shadows
this.Game.AddOnLoadAction(182875, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_keep_hub_inn, () =>
{
var world = this.Game.GetWorld(WorldSno.a3dun_keep_hub_inn);
bool Activated = false;
var NStone = this.Game.GetWorld(182875).GetActorBySNO(156328);//156328
var NStone = world.GetActorBySNO(156328);//156328
NStone.Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2);
NStone.Attributes[GameAttribute.Untargetable] = !Activated;
NStone.Attributes[GameAttribute.NPC_Is_Operatable] = Activated;
@ -307,7 +317,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NStone.Attributes[GameAttribute.Immunity] = !Activated;
NStone.Attributes.BroadcastChangedIfRevealed();
NStone.PlayEffectGroup(205460);
foreach (var atr in this.Game.GetWorld(182875).GetActorsBySNO(4580))
foreach (var atr in world.GetActorsBySNO(4580))
{
float facingAngle = MovementHelpers.GetFacingAngle(atr, NStone);
@ -318,13 +328,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
}
if (this.Game.CurrentQuest == 203595)
{
ActII.DisableEveryone(this.Game.GetWorld(182875), true);
ActII.DisableEveryone(world, true);
//Старт катсцены
foreach (var plr in this.Game.GetWorld(182875).Players.Values)
foreach (var plr in world.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraCriptedSequenceStartMessage() { Activate = true });
foreach (var plr in this.Game.GetWorld(182875).Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)this.Game.GetWorld(182875).GetActorBySNO(156328).DynamicID(plr), Duration = 1f, Snap = false });
StartConversation(this.Game.GetWorld(182875), 134282);
foreach (var plr in world.Players.Values)
plr.InGameClient.SendMessage(new MessageSystem.Message.Definitions.Camera.CameraFocusMessage() { ActorID = (int)world.GetActorBySNO(156328).DynamicID(plr), Duration = 1f, Snap = false });
StartConversation(world, 134282);
}
});
ListenConversation(134282, new SpawnShadows());
@ -343,9 +353,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
ListenConversation(134266, new Advance());
try
{
this.Game.GetWorld(172909).FindAt(206188, new Vector3D { X = 127.121f, Y = 353.211f, Z = 0.22f }, 25f).Hidden = true;
var NStone = this.Game.GetWorld(182875).GetActorBySNO(156328);//156328
foreach (var atr in this.Game.GetWorld(182875).GetActorsBySNO(4580))
this.Game.GetWorld(WorldSno.a3dun_hub_keep).FindAt(206188, new Vector3D { X = 127.121f, Y = 353.211f, Z = 0.22f }, 25f).Hidden = true;
var world = this.Game.GetWorld(WorldSno.a3dun_keep_hub_inn);
var NStone = world.GetActorBySNO(156328);//156328
foreach (var atr in world.GetActorsBySNO(4580))
{
float facingAngle = MovementHelpers.GetFacingAngle(atr, NStone);
atr.SetFacingRotation(facingAngle);
@ -398,7 +409,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 9,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with sergeant Pale
var Serge = this.Game.GetWorld(95804).GetActorBySNO(170482);
var Serge = this.Game.GetWorld(WorldSno.a3_battlefields_02).GetActorBySNO(170482);
(Serge as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(170486));
Serge.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
//this.Game.GetWorld(95804).SpawnMonster(202730, new Vector3D(4394.2188f, 396.80215f, -2.293509f));
@ -414,11 +425,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 1,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //go through Korsikk bridge
this.Game.AddOnLoadAction(95804, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_02, () =>
{
if (this.Game.CurrentQuest == 101756 && this.Game.CurrentStep == 9)
{
StartConversation(this.Game.GetWorld(95804), 187146);
StartConversation(this.Game.GetWorld(WorldSno.a3_battlefields_02), 187146);
}
});
ListenProximity(6442, new Advance());
@ -433,9 +444,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 }, new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill 3 ballistas/destroy trebuchet
if (this.Game.Empty) UnlockTeleport(4);
this.Game.AddOnLoadAction(95804, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_02, () =>
{
Open(this.Game.GetWorld(95804), 182443);
Open(this.Game.GetWorld(WorldSno.a3_battlefields_02), 182443);
});
ListenKill(176988, 2, new CompleteObjective(0));
ListenKill(177041, 1, new CompleteObjective(1));
@ -463,11 +474,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Tyrael
this.Game.AddOnLoadAction(95804, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_02, () =>
{
if (this.Game.CurrentQuest == 101756 && this.Game.CurrentStep == 21)
{
var Tyrael = this.Game.GetWorld(95804).GetActorBySNO(170038);
var Tyrael = this.Game.GetWorld(WorldSno.a3_battlefields_02).GetActorBySNO(170038);
(Tyrael as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(209125));
//StartConversation(this.Game.GetWorld(95804), 209125);
}
@ -521,10 +532,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Siegebreaker
if (!this.Game.Empty) UnlockTeleport(5);
this.Game.AddOnLoadAction(226713, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_03, () =>
{
try { this.Game.GetWorld(226713).GetActorBySNO(96192).Destroy(); } catch { }
this.Game.GetWorld(226713).SpawnMonster(96192, this.Game.GetWorld(226713).GetActorBySNO(3095, true).Position);
var world = this.Game.GetWorld(WorldSno.a3_battlefields_03);
try { world.GetActorBySNO(96192).Destroy(); } catch { }
world.SpawnMonster(96192, world.GetActorBySNO(3095, true).Position);
});
ListenKill(96192, 1, new Advance());
})
@ -576,13 +588,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 41,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Tower of the Doomed lv. 1
this.Game.AddOnLoadAction(226713, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_03, () =>
{
Open(this.Game.GetWorld(226713), 155128);
Open(this.Game.GetWorld(WorldSno.a3_battlefields_03), 155128);
});
this.Game.AddOnLoadAction(95804, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_02, () =>
{
Open(this.Game.GetWorld(95804), 155128);
Open(this.Game.GetWorld(WorldSno.a3_battlefields_02), 155128);
});
ListenTeleport(80791, new Advance());
})
@ -622,9 +634,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Tower of Damned lv. 1
if (this.Game.Empty) UnlockTeleport(8);
this.Game.AddOnLoadAction(85201, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_crater_st_level04, () =>
{
Open(this.Game.GetWorld(85201), 177040);
Open(this.Game.GetWorld(WorldSno.a3dun_crater_st_level04), 177040);
});
ListenTeleport(119653, new Advance());
})
@ -652,13 +664,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //kill Cydaea
if (!this.Game.Empty) UnlockTeleport(9);
ListenKill(95250, 1, new Advance());
this.Game.AddOnLoadAction(119650, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_crater_st_level04b, () =>
{
try
{
(this.Game.GetWorld(119650).FindAt(201680, new Vector3D { X = 457.04f, Y = 359.03f, Z = 0.39f }, 20f) as Door).Open();
(this.Game.GetWorld(119650).FindAt(201680, new Vector3D { X = 356.04f, Y = 267.03f, Z = 0.28f }, 20f) as Door).Open();
setActorOperable(this.Game.GetWorld(119650), 193077, false);
var world = this.Game.GetWorld(WorldSno.a3dun_crater_st_level04b);
(world.FindAt(201680, new Vector3D { X = 457.04f, Y = 359.03f, Z = 0.39f }, 20f) as Door).Open();
(world.FindAt(201680, new Vector3D { X = 356.04f, Y = 267.03f, Z = 0.28f }, 20f) as Door).Open();
setActorOperable(world, 193077, false);
}
catch { }
});
@ -674,11 +687,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //Destroy Heart of Sin
this.Game.CurrentEncounter.activated = false;
ListenKill(193077, 1, new Advance());
this.Game.AddOnLoadAction(119650, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_crater_st_level04b, () =>
{
try
{
setActorOperable(this.Game.GetWorld(119650), 193077, true);
setActorOperable(this.Game.GetWorld(WorldSno.a3dun_crater_st_level04b), 193077, true);
}
catch { }
});
@ -694,11 +707,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //kill Azmodan, finally
if (this.Game.Empty) UnlockTeleport(10);
ListenKill(89690, 1, new Advance());
this.Game.AddOnLoadAction(121214, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_azmodan_arena, () =>
{
OpenAll(this.Game.GetWorld(121214), 198977);
try { this.Game.GetWorld(121214).GetActorBySNO(89690).Destroy(); } catch { };
this.Game.GetWorld(121214).SpawnMonster(89690, new Vector3D { X = 395.553f, Y = 394.966f, Z = 0.1f });
var world = this.Game.GetWorld(WorldSno.a3dun_azmodan_arena);
OpenAll(world, 198977);
try { world.GetActorBySNO(89690).Destroy(); } catch { };
world.SpawnMonster(89690, new Vector3D { X = 395.553f, Y = 394.966f, Z = 0.1f });
});
})
});
@ -712,9 +726,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //get Azmodan's soul
this.Game.CurrentEncounter.activated = false;
ListenProximity(204992, new Advance());
this.Game.AddOnLoadAction(121214, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_azmodan_arena, () =>
{
this.Game.GetWorld(121214).SpawnMonster(204992, new Vector3D { X = 395.553f, Y = 394.966f, Z = 0.1f });
this.Game.GetWorld(WorldSno.a3dun_azmodan_arena).SpawnMonster(204992, new Vector3D { X = 395.553f, Y = 394.966f, Z = 0.1f });
});
})
});
@ -727,9 +741,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //return to base
ListenProximity(170038, new Advance());
this.Game.AddOnLoadAction(121214, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_azmodan_arena, () =>
{
this.Game.GetWorld(121214).GetActorBySNO(204992).Destroy();
this.Game.GetWorld(WorldSno.a3dun_azmodan_arena).GetActorBySNO(204992).Destroy();
});
})
});
@ -765,7 +779,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() =>
{ //go to Adria tower event
var World = this.Game.GetWorld(186552);
var World = this.Game.GetWorld(WorldSno.a3dun_hub_adria_tower);
//Удаляем дубликаты
var Guardian = World.GetActorBySNO(196244, true);
var Leah = World.GetActorBySNO(195376, true);
@ -775,7 +789,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
foreach (var actor in World.GetActorsBySNO(195377)) if (actor.GlobalID != Tyrael.GlobalID) actor.Destroy(); //Тираэль
foreach (var actor in World.GetActorsBySNO(195376)) if (actor.GlobalID != Leah.GlobalID) actor.Destroy(); //Лея
this.Game.AddOnLoadAction(186552, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_hub_adria_tower, () =>
{
var portal = World.GetActorBySNO(5660);
var Bportal = World.GetActorBySNO(188441);
@ -813,7 +827,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
if (World.Players.Values.First().Position.Y < 140)
break;
}
script.Execute(this.Game.GetWorld(186552));
script.Execute(World);
});
#region Описание скрипта
//Понеслась

View File

@ -24,6 +24,7 @@ using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents;
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
{
@ -48,7 +49,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
UnlockTeleport(0); //{[World] SNOId: 182944 GlobalId: 117440513 Name: a4dun_heaven_1000_monsters_fight_entrance}
var Tyrael = this.Game.GetWorld(182944).GetActorBySNO(6353) as InteractiveNPC;
var Tyrael = this.Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance).GetActorBySNO(6353) as InteractiveNPC;
Tyrael.Conversations.Clear();
Tyrael.OverridedConv = true;
Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
@ -67,11 +68,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Tyrael
UnlockTeleport(1);
this.Game.AddOnLoadAction(182944, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_heaven_1000_monsters_fight_entrance, () =>
{
if (this.Game.CurrentQuest == 112498 && this.Game.CurrentStep == 2)
{
var Tyrael = this.Game.GetWorld(182944).GetActorBySNO(6353) as InteractiveNPC;
var Tyrael = this.Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance).GetActorBySNO(6353) as InteractiveNPC;
Tyrael.Conversations.Clear();
Tyrael.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(112449));
Tyrael.OverridedConv = true;
@ -107,8 +108,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //kill Iskatu
if (!this.Game.Empty)
{
script = new Invasion(this.Game.GetWorld(109143).Players.First().Value.Position, 50f, new List<int> { 60049 }, 30f, 196102, true);
script.Execute(this.Game.GetWorld(109143));
var world = this.Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight);
script = new Invasion(world.Players.First().Value.Position, 50f, new List<int> { 60049 }, 30f, 196102, true);
script.Execute(world);
ListenKill(196102, 1, new Advance());
}
})
@ -146,17 +148,18 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 58,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Iterael
var world = this.Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight);
if (this.Game.Empty) UnlockTeleport(2);
try
{
if (this.Game.GetWorld(109143).GetActorBySNO(201603, true) != null)
Open(this.Game.GetWorld(109143), 201603);
if (world.GetActorBySNO(201603, true) != null)
Open(world, 201603);
}
catch { }
try
{
if (this.Game.GetWorld(109143).GetActorBySNO(195687, true) != null)
this.Game.GetWorld(109143).SpawnMonster(112768, this.Game.GetWorld(109143).GetActorBySNO(195687, true).Position);
if (world.GetActorBySNO(195687, true) != null)
world.SpawnMonster(112768, world.GetActorBySNO(195687, true).Position);
}
catch { }
ListenProximity(112768, new Advance());
@ -171,7 +174,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Iterael
var Ityrael = this.Game.GetWorld(109143).GetActorBySNO(112768) as InteractiveNPC;
var Ityrael = this.Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight).GetActorBySNO(112768) as InteractiveNPC;
Ityrael.Conversations.Clear();
Ityrael.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(112763));
Ityrael.OverridedConv = true;
@ -192,7 +195,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //find Library of Fate
if (!this.Game.Empty) UnlockTeleport(2);
if (this.Game.Empty) UnlockTeleport(3);
var Ityrael = this.Game.GetWorld(109143).GetActorBySNO(112768) as InteractiveNPC;
var Ityrael = this.Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight).GetActorBySNO(112768) as InteractiveNPC;
Ityrael.Conversations.Clear();
Ityrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
Ityrael.Attributes.BroadcastChangedIfRevealed();
@ -221,10 +224,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Rakanoth
if (!this.Game.Empty) UnlockTeleport(3);
var Library = this.Game.GetWorld(166640);
var Library = this.Game.GetWorld(WorldSno.a4dun_libraryoffate);
ListenKill(4630, 1, new Advance());
this.Game.AddOnLoadAction(166640, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_libraryoffate, () =>
{
var Fate = Library.GetActorBySNO(112768); Vector3D Fate_Dist = Fate.Position; Library.Leave(Fate);
var Hope = Library.GetActorBySNO(114074); Vector3D Hope_Dist = Hope.Position; Library.Leave(Hope);
@ -254,7 +257,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //destroy Auriel's jail
this.Game.CurrentEncounter.activated = false;
var Library = this.Game.GetWorld(166640);
var Library = this.Game.GetWorld(WorldSno.a4dun_libraryoffate);
StartConversation(Library, 217223); // Голос дъябло после битвы
var Hope_Bound = Library.GetActorBySNO(182826);
@ -275,7 +278,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Auriel
var Library = this.Game.GetWorld(166640);
var Library = this.Game.GetWorld(WorldSno.a4dun_libraryoffate);
var Hope_Bound = Library.GetActorBySNO(182826);
var Hope = Library.SpawnMonster(114074, new Vector3D(Hope_Bound.Position.X - 0.3854f, Hope_Bound.Position.Y + 0.44201f, Hope_Bound.Position.Z));
var Fate = Library.SpawnMonster(112768, new Vector3D(Hope_Bound.Position.X - 18.6041f, Hope_Bound.Position.Y + 2.35458f, Hope_Bound.Position.Z));
@ -303,7 +306,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //return to Gardens of Hope lv. 1
PlayCutscene(1);
var Library = this.Game.GetWorld(166640);
var Library = this.Game.GetWorld(WorldSno.a4dun_libraryoffate);
var Hope = Library.GetActorBySNO(114074, true);
(Hope as InteractiveNPC).Conversations.Clear();
Hope.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
@ -349,7 +352,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 50,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //leave demonic rift
var World = this.Game.GetWorld(109525);
var World = this.Game.GetWorld(WorldSno.a4dun_hell_portal_01);
World.SpawnMonster(215103, World.Players.Values.First().Position);
StartConversation(World, 217230);
ListenTeleport(109514, new Advance());
@ -397,7 +400,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 56,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //leave demonic rift
var World = this.Game.GetWorld(109530);
var World = this.Game.GetWorld(WorldSno.a4dun_hell_portal_02);
World.SpawnMonster(215103, World.Players.Values.First().Position);
StartConversation(World, 217232);
ListenTeleport(109516, new Advance());
@ -424,7 +427,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => { //talk with Tyrael
if (!this.Game.Empty) UnlockTeleport(4);
var Garden = this.Game.GetWorld(219659);
var Garden = this.Game.GetWorld(WorldSno.a4dun_garden_of_hope_random);
var Tyrael = Garden.GetActorBySNO(122552);
Tyrael.Attributes[GameAttribute.MinimapActive] = true;
(Tyrael as InteractiveNPC).Conversations.Clear();
@ -480,9 +483,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 18,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Imperius
var CrystalWorld = this.Game.GetWorld(103910);
var CrystalWorld = this.Game.GetWorld(WorldSno.a4dun_garden3_spireentrance);
this.Game.AddOnLoadAction(103910, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_garden3_spireentrance, () =>
{
foreach (var mob in CrystalWorld.GetActorsBySNO(106708))
{
@ -490,7 +493,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
mob.Attributes[GameAttribute.Untargetable] = true;
}
script = new ImperiumScene();
script.Execute(this.Game.GetWorld(103910));
script.Execute(CrystalWorld);
});
})
@ -515,9 +518,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 12,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //go to road to Spire
this.Game.AddOnLoadAction(103910, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_garden3_spireentrance, () =>
{
var CrystalWorld = this.Game.GetWorld(103910);
var CrystalWorld = this.Game.GetWorld(WorldSno.a4dun_garden3_spireentrance);
foreach (var plr in CrystalWorld.Players.Values)
{
plr.InGameClient.SendMessage(new BoolDataMessage(Opcodes.CameraTriggerFadeToBlackMessage) { Field0 = true });
@ -526,7 +529,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
if (this.Game.CurrentQuest == 114795 && this.Game.CurrentStep == 16)
{
StartConversation(this.Game.GetWorld(103910), 196566);
StartConversation(CrystalWorld, 196566);
}
});
ListenTeleport(198564, new Advance());
@ -577,14 +580,15 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Izual
if (!this.Game.Empty) UnlockTeleport(5);
this.Game.AddOnLoadAction(214956, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_spire_exterior, () =>
{
this.Game.GetWorld(214956).SpawnMonster(148449, new Vector3D { X = 585.439f, Y = 560.823f, Z = 0.1f });
var iceBarrier = this.Game.GetWorld(214956).GetActorBySNO(182526);
var world = this.Game.GetWorld(WorldSno.a4dun_spire_exterior);
world.SpawnMonster(148449, new Vector3D { X = 585.439f, Y = 560.823f, Z = 0.1f });
var iceBarrier = world.GetActorBySNO(182526);
while (iceBarrier != null)
{
iceBarrier.Destroy();
iceBarrier = this.Game.GetWorld(214956).GetActorBySNO(182526);
iceBarrier = world.GetActorBySNO(182526);
}
});
ListenKill(148449, 1, new Advance());
@ -636,9 +640,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Diablo
if (!this.Game.Empty) UnlockTeleport(7);
this.Game.AddOnLoadAction(109561, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_diablo_arena, () =>
{
Open(this.Game.GetWorld(109561), 178052);
Open(this.Game.GetWorld(WorldSno.a4dun_diablo_arena), 178052);
});
ListenProximity(178052, new Advance());
})
@ -651,11 +655,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 6,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Diablo (1st phase, to 50% hp)
this.Game.AddOnLoadAction(109561, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_diablo_arena, () =>
{
if (this.Game.CurrentQuest == 114901 && this.Game.CurrentStep == 1)
{
StartConversation(this.Game.GetWorld(109561), 132632);
StartConversation(this.Game.GetWorld(WorldSno.a4dun_diablo_arena), 132632);
}
});
//seems hacky but works
@ -681,8 +685,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill Diablo (3rd phase)
TeleportToWorld(this.Game.GetWorld(153670), this.Game.GetWorld(196292), 172);
StartConversation(this.Game.GetWorld(196292), 132640);
var targetWorld = this.Game.GetWorld(WorldSno.a4dun_diablo_arena_phase3);
TeleportToWorld(this.Game.GetWorld(WorldSno.a4dun_diablo_shadowrealm_01), targetWorld, 172);
StartConversation(targetWorld, 132640);
ListenKill(114917, 1, new Advance());
})
});
@ -694,7 +699,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 17,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //destroy Diablo
StartConversation(this.Game.GetWorld(196292), 205783);
StartConversation(this.Game.GetWorld(WorldSno.a4dun_diablo_arena_phase3), 205783);
ListenConversation(205783, new Advance());
})
});
@ -706,7 +711,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 5,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Auriel
this.Game.GetWorld(196292).GetActorBySNO(114074).NotifyConversation(1);
this.Game.GetWorld(WorldSno.a4dun_diablo_arena_phase3).GetActorBySNO(114074).NotifyConversation(1);
if (this.Game.IsHardcore)
{
foreach (var plr in this.Game.Players.Values)

View File

@ -26,6 +26,7 @@ using DiIiS_NA.GameServer.Core.Types.Math;
using DiIiS_NA.Core.MPQ;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.SNO;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
{
@ -104,39 +105,42 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.Quests[251355].Steps.Add(2, new QuestStep
{
{
Completed = false,
Saveable = false,
NextStep = 59,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//enter Westmarch
this.Game.AddOnLoadAction(308705, () =>
var world = this.Game.GetWorld(WorldSno.x1_westm_intro);
this.Game.AddOnLoadWorldAction(WorldSno.x1_westmarch_overlook_d, () =>
{
if (this.Game.CurrentQuest == 251355 && this.Game.CurrentStep == 2)
{
StartConversation(this.Game.GetWorld(308705), 317212);
StartConversation(this.Game.GetWorld(WorldSno.x1_westmarch_overlook_d), 317212);
}
});
this.Game.AddOnLoadAction(306549, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_intro, () =>
{
StartConversation(this.Game.GetWorld(306549), 311433);
StartConversation(world, 311433);
//Delete fake giant door
if (this.Game.GetWorld(306549).GetActorBySNO(328008) != null)
this.Game.GetWorld(306549).Leave(this.Game.GetWorld(306549).GetActorBySNO(328008));
if (world.GetActorBySNO(328008) != null)
world.Leave(world.GetActorBySNO(328008));
//Delete Cadala from this location TODO: нужно найти анимации Кадалы с убийственной волной на монстров)
foreach (var cadal in this.Game.GetWorld(306549).GetActorsBySNO(311858))
this.Game.GetWorld(306549).Leave(cadal);
foreach (var cadal in world.GetActorsBySNO(311858))
world.Leave(cadal);
});
if (this.Game.GetWorld(306549).GetActorBySNO(308377) != null)
var npc = world.GetActorBySNO(308377);
if (npc != null)
{
(this.Game.GetWorld(306549).GetActorBySNO(308377) as ActorSystem.InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(308393));
(this.Game.GetWorld(306549).GetActorBySNO(308377) as ActorSystem.InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 2;
(this.Game.GetWorld(306549).GetActorBySNO(308377) as ActorSystem.InteractiveNPC).Attributes.BroadcastChangedIfRevealed();
var introGuy = npc as InteractiveNPC;
introGuy.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(308393));
introGuy.Attributes[GameAttribute.Conversation_Icon, 0] = 2;
introGuy.Attributes.BroadcastChangedIfRevealed();
}
ListenConversation(308393, new EnterToWest());
ListenConversation(308393, new EnterToWest());
//ListenInteract(309222, 1, new Advance());
//Locked Door - 316495 - Wait
@ -151,11 +155,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//find a5 hub
if (this.Game.GetWorld(306549).GetActorBySNO(308377) != null)
var npc = this.Game.GetWorld(WorldSno.x1_westm_intro).GetActorBySNO(308377);
if (npc != null)
{
(this.Game.GetWorld(306549).GetActorBySNO(308377) as ActorSystem.InteractiveNPC).Conversations.Clear();
(this.Game.GetWorld(306549).GetActorBySNO(308377) as ActorSystem.InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 1;
(this.Game.GetWorld(306549).GetActorBySNO(308377) as ActorSystem.InteractiveNPC).Attributes.BroadcastChangedIfRevealed();
var introGuy = npc as InteractiveNPC;
introGuy.Conversations.Clear();
introGuy.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
introGuy.Attributes.BroadcastChangedIfRevealed();
}
ListenInteract(309812, 1, new Advance());
@ -170,21 +176,22 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//kill mobs at hub
this.Game.AddOnLoadAction(306549, () =>
var world = this.Game.GetWorld(WorldSno.x1_westm_intro);
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_intro, () =>
{
if (this.Game.CurrentQuest == 251355 && this.Game.CurrentStep == 14)
{
try { this.Game.GetWorld(306549).FindAt(316495, new Vector3D { X = 555.9f, Y = 403.47f, Z = 10.2f }, 5.0f).Destroy(); } catch { }
try { world.FindAt(316495, new Vector3D { X = 555.9f, Y = 403.47f, Z = 10.2f }, 5.0f).Destroy(); } catch { }
}
});
ListenKill(276309, 10, new Advance());
var Tyrael = this.Game.GetWorld(306549).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
foreach (var general in this.Game.GetWorld(306549).GetActorsBySNO(303828)) { general.SetVisible(false); general.Hidden = true; } //x1_WestmHub_General
foreach (var general in this.Game.GetWorld(306549).GetActorsBySNO(364173)) { general.SetVisible(false); general.Hidden = true; } //x1_WestmHub_BSS_postChange
foreach (var general in this.Game.GetWorld(306549).GetActorsBySNO(175310)) { general.SetVisible(false); general.Hidden = true; } //PT_Mystic_NoVendor_NonGlobalFollower
foreach (var general in this.Game.GetWorld(306549).GetActorsBySNO(259252)) { general.SetVisible(false); general.Hidden = true; } // X1_WestmHub_angryman_Temp
foreach (var general in this.Game.GetWorld(306549).GetActorsBySNO(259256)) { general.SetVisible(false); general.Hidden = true; } //X1_WestmHub_grieving_Temp
var Lorath = this.Game.GetWorld(306549).ShowOnlyNumNPC(284530, 0) as ActorSystem.InteractiveNPC;
var Tyrael = world.ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
foreach (var general in world.GetActorsBySNO(303828)) { general.SetVisible(false); general.Hidden = true; } //x1_WestmHub_General
foreach (var general in world.GetActorsBySNO(364173)) { general.SetVisible(false); general.Hidden = true; } //x1_WestmHub_BSS_postChange
foreach (var general in world.GetActorsBySNO(175310)) { general.SetVisible(false); general.Hidden = true; } //PT_Mystic_NoVendor_NonGlobalFollower
foreach (var general in world.GetActorsBySNO(259252)) { general.SetVisible(false); general.Hidden = true; } // X1_WestmHub_angryman_Temp
foreach (var general in world.GetActorsBySNO(259256)) { general.SetVisible(false); general.Hidden = true; } //X1_WestmHub_grieving_Temp
var Lorath = world.ShowOnlyNumNPC(284530, 0) as ActorSystem.InteractiveNPC;
})
@ -197,14 +204,15 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 57,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
var world = this.Game.GetWorld(WorldSno.x1_westm_intro);
//Delete Monsters
foreach (var skeleton in this.Game.GetWorld(306549).GetActorsBySNO(276309)) skeleton.Destroy(); //x1_Skeleton_Westmarch_A
foreach (var skeleton in this.Game.GetWorld(306549).GetActorsBySNO(309114)) skeleton.Destroy(); //x1_Ghost_Dark_A
foreach (var skeleton in this.Game.GetWorld(306549).GetActorsBySNO(282027)) skeleton.Destroy(); //x1_Shield_Skeleton_Westmarch_A
foreach (var skeleton in world.GetActorsBySNO(276309)) skeleton.Destroy(); //x1_Skeleton_Westmarch_A
foreach (var skeleton in world.GetActorsBySNO(309114)) skeleton.Destroy(); //x1_Ghost_Dark_A
foreach (var skeleton in world.GetActorsBySNO(282027)) skeleton.Destroy(); //x1_Shield_Skeleton_Westmarch_A
//Talk to Tyrael
var Tyrael = this.Game.GetWorld(306549).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
var Lorath = this.Game.GetWorld(306549).ShowOnlyNumNPC(284530, 0) as ActorSystem.InteractiveNPC;
var Tyrael = world.ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
var Lorath = world.ShowOnlyNumNPC(284530, 0) as ActorSystem.InteractiveNPC;
AddQuestConversation(Tyrael, 252089);
@ -221,17 +229,18 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//enter the church
var Tyrael = this.Game.GetWorld(306549).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
var world = this.Game.GetWorld(WorldSno.x1_westm_intro);
var Tyrael = world.ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
Tyrael.Conversations.Clear();
Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1;
Tyrael.Attributes.BroadcastChangedIfRevealed();
this.Game.AddOnLoadAction(306549, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_intro, () =>
{
Open(this.Game.GetWorld(306549), 316548);
Open(world, 316548);
});
if (this.Game.GetWorld(304235).GetActorBySNO(316548) != null)
this.Game.GetWorld(304235).GetActorBySNO(316548).Destroy();
if (world.GetActorBySNO(316548) != null)
world.GetActorBySNO(316548).Destroy();
ListenTeleport(309413, new Advance());
})
});
@ -257,7 +266,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//talk to Tyrael
UnlockTeleport(0);
var Tyrael = this.Game.GetWorld(304235).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
var Tyrael = this.Game.GetWorld(WorldSno.x1_westmarch_hub).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
AddQuestConversation(Tyrael, 252100);
//ListenInteract(289293, 1, new LaunchConversation(252100));
ListenConversation(252100, new Advance());
@ -272,7 +281,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//leave the church
var Tyrael = this.Game.GetWorld(304235).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
var Tyrael = this.Game.GetWorld(WorldSno.x1_westmarch_hub).ShowOnlyNumNPC(289293, 0) as ActorSystem.InteractiveNPC;
if (Tyrael != null)
{
Tyrael.Conversations.Clear();
@ -310,26 +319,28 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.Quests[284683].Steps.Add(47, new QuestStep
{
{
Completed = false,
Saveable = false,
NextStep = 62,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//OnTargetedActor ID: 315793, Name: x1_westm_Door_Cloister, NumInWorld: 0
this.Game.AddOnLoadAction(304235, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westmarch_hub, () =>
{
if (Game.CurrentQuest == 284683 && Game.CurrentStep == -1 || Game.CurrentQuest == 284683 && Game.CurrentStep == 47)
ActiveArrow(this.Game.GetWorld(304235), 315793);
ActiveArrow(this.Game.GetWorld(WorldSno.x1_westmarch_hub), 315793);
});
//Enter Westmarch Commons
ListenTeleport(261758, new BackToCath());
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(339463)) //Mystic
//Enter Westmarch Commons
ListenTeleport(261758, new BackToCath());
var world = this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt);
// FIXME: incorrect snoId or possible code duplicate
foreach (var Myst in world.GetActorsBySNO(339463)) //Mystic
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(339463)) //Mystic_EnchanceEvent
foreach (var Myst in world.GetActorsBySNO(339463)) //Mystic_EnchanceEvent
{
Myst.Hidden = true;
Myst.SetVisible(false);
@ -338,16 +349,17 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.Quests[284683].Steps.Add(62, new QuestStep
{
{
Completed = false,
Saveable = false,
NextStep = 57,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//find orbs
var target = this.Game.GetWorld(304235).GetActorBySNO(315793, true);
DisableArrow(this.Game.GetWorld(304235), target);
ListenTeleport(338956, new BackToCath());
//find orbs
var world = this.Game.GetWorld(WorldSno.x1_westmarch_hub);
var target = world.GetActorBySNO(315793, true);
DisableArrow(world, target);
ListenTeleport(338956, new BackToCath());
})
});
@ -360,25 +372,26 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//destroy bodies
var world = this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt);
UnlockTeleport(1);
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(175310)) //Mystic_NonGlobalFollower
foreach (var Myst in world.GetActorsBySNO(175310)) //Mystic_NonGlobalFollower
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(339463)) //Mystic_EnchanceEvent
foreach (var Myst in world.GetActorsBySNO(339463)) //Mystic_EnchanceEvent
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
ListenKill(316839, 4, new Advance());
this.Game.AddOnLoadAction(338891, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_gideonscourt, () =>
{
if (this.Game.CurrentQuest == 284683 && this.Game.CurrentStep == 57)
{
setActorOperable(this.Game.GetWorld(338891), 319396, false);
setActorOperable(this.Game.GetWorld(338891), 375106, false);
setActorOperable(world, 319396, false);
setActorOperable(world, 375106, false);
}
});
})
@ -392,9 +405,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//slay Drygha
this.Game.AddOnLoadAction(338891, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_gideonscourt, () =>
{
setActorOperable(this.Game.GetWorld(338891), 319396, true);
setActorOperable(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 319396, true);
});
ListenKill(319396, 1, new Advance());
})
@ -408,9 +421,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//destroy orb
this.Game.AddOnLoadAction(338891, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_gideonscourt, () =>
{
setActorOperable(this.Game.GetWorld(338891), 375106, true);
setActorOperable(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 375106, true);
});
ListenKill(375106, 1, new Advance());
})
@ -423,15 +436,16 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 30,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
var world = this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt);
//destroy effects
foreach (var act in this.Game.GetWorld(338891).GetActorsBySNO(316810)) act.Destroy();
foreach (var act in this.Game.GetWorld(338891).GetActorsBySNO(324508)) act.Destroy();
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(175310)) //Mystic_NonGlobalFollower
foreach (var act in world.GetActorsBySNO(316810)) act.Destroy();
foreach (var act in world.GetActorsBySNO(324508)) act.Destroy();
foreach (var Myst in world.GetActorsBySNO(175310)) //Mystic_NonGlobalFollower
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(339463)) //Mystic_EnchanceEvent
foreach (var Myst in world.GetActorsBySNO(339463)) //Mystic_EnchanceEvent
{
Myst.Hidden = true;
Myst.SetVisible(false);
@ -451,19 +465,20 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//talk to Mystic
this.Game.AddOnLoadAction(338891, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_gideonscourt, () =>
{
if (this.Game.CurrentQuest == 284683 && this.Game.CurrentStep == 30)
{
var Mysts = this.Game.GetWorld(338891).GetActorsBySNO(61524);
var world = this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt);
var Mysts = world.GetActorsBySNO(61524);
if (Mysts.Count < 1)
Mysts.Add(this.Game.GetWorld(338891).SpawnMonster(61524, new Vector3D(385.6301f,289.3048f,-18.602905f)));
Mysts.Add(world.SpawnMonster(61524, new Vector3D(385.6301f,289.3048f,-18.602905f)));
//foreach (var Myst in World.GetActorsBySNO(175310))
;//175310
//StartConversation(this.Game.GetWorld(338891), 305750);
foreach (var Myst in Mysts) //PT_Mystic_NoVendor
{
this.Game.GetWorld(338891).BroadcastIfRevealed(plr => new MessageSystem.Message.Definitions.ACD.ACDTranslateFacingMessage
world.BroadcastIfRevealed(plr => new MessageSystem.Message.Definitions.ACD.ACDTranslateFacingMessage
{
ActorId = Myst.DynamicID(plr),
Angle = ActorSystem.Movement.MovementHelpers.GetFacingAngle(Myst, plr),
@ -492,24 +507,25 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//exit alley
this.Game.AddOnLoadAction(338891, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_gideonscourt, () =>
{
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(175310)) //Mystic_NonGlobalFollower
var world = this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt);
foreach (var Myst in world.GetActorsBySNO(175310)) //Mystic_NonGlobalFollower
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(339463)) //Mystic_EnchanceEvent
foreach (var Myst in world.GetActorsBySNO(339463)) //Mystic_EnchanceEvent
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
foreach (var Myst in this.Game.GetWorld(338891).GetActorsBySNO(61524)) //PT_Mystic_NoVendor
foreach (var Myst in world.GetActorsBySNO(61524)) //PT_Mystic_NoVendor
{
Myst.Hidden = true;
Myst.SetVisible(false);
}
foreach (var Malt in this.Game.GetWorld(338891).GetActorsBySNO(373456))
foreach (var Malt in world.GetActorsBySNO(373456))
{
bool Activated = false;
@ -521,8 +537,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Malt.Attributes[GameAttribute.Disabled] = !Activated;
Malt.Attributes[GameAttribute.Immunity] = !Activated;
}
Open(this.Game.GetWorld(338891), 319830);
AddFollower(this.Game.GetWorld(338891), 175310);
Open(world, 319830);
AddFollower(world, 175310);
});
ListenTeleport(338946, new AdvanceWithNotify());
})
@ -540,7 +556,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
if (!this.Game.Empty)
{
DestroyFollower(175310);
AddFollower(this.Game.GetWorld(338891), 175310);
AddFollower(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 175310);
}
})
});
@ -554,19 +570,20 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//destroy bodies
UnlockTeleport(2);
this.Game.AddOnLoadAction(339151, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_kerwinsrow, () =>
{
if (this.Game.CurrentQuest == 284683 && this.Game.CurrentStep == 49)
{
setActorOperable(this.Game.GetWorld(339151), 336383, false);
setActorOperable(this.Game.GetWorld(339151), 375111, false);
var world = this.Game.GetWorld(WorldSno.x1_westm_deathorb_kerwinsrow);
setActorOperable(world, 336383, false);
setActorOperable(world, 375111, false);
}
});
ListenKill(316839, 6, new Advance());
if (!this.Game.Empty)
{
DestroyFollower(175310);
AddFollower(this.Game.GetWorld(338891), 175310);
AddFollower(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 175310);
}
})
});
@ -579,15 +596,15 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//slay guardian
this.Game.AddOnLoadAction(339151, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_kerwinsrow, () =>
{
setActorOperable(this.Game.GetWorld(339151), 336383, true);
setActorOperable(this.Game.GetWorld(WorldSno.x1_westm_deathorb_kerwinsrow), 336383, true);
});
ListenKill(336383, 1, new Advance());
if (!this.Game.Empty)
{
DestroyFollower(175310);
AddFollower(this.Game.GetWorld(338891), 175310);
AddFollower(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 175310);
}
})
});
@ -600,15 +617,15 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//destroy final orb
this.Game.AddOnLoadAction(339151, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_westm_deathorb_kerwinsrow, () =>
{
setActorOperable(this.Game.GetWorld(339151), 375111, true);
setActorOperable(this.Game.GetWorld(WorldSno.x1_westm_deathorb_kerwinsrow), 375111, true);
});
ListenKill(375111, 1, new Advance());
if (!this.Game.Empty)
{
DestroyFollower(175310);
AddFollower(this.Game.GetWorld(338891), 175310);
AddFollower(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 175310);
}
})
});
@ -626,7 +643,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
if (!this.Game.Empty)
{
DestroyFollower(175310);
AddFollower(this.Game.GetWorld(338891), 175310);
AddFollower(this.Game.GetWorld(WorldSno.x1_westm_deathorb_gideonscourt), 175310);
}
})
});
@ -728,9 +745,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//talk to Malthael spirit
this.Game.AddOnLoadAction(308446, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_urzael_arena, () =>
{
var malthael = this.Game.GetWorld(308446).SpawnMonster(256248, new Vector3D { X = 97.65f, Y = 350.23f, Z = 0.1f });
var malthael = this.Game.GetWorld(WorldSno.x1_urzael_arena).SpawnMonster(256248, new Vector3D { X = 97.65f, Y = 350.23f, Z = 0.1f });
malthael.NotifyConversation(1);
});
this.Game.CurrentEncounter.activated = false;
@ -792,20 +809,21 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.Quests[257120].Steps.Add(67, new QuestStep
{
{
Completed = false,
Saveable = false,
NextStep = 65,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//find entrance
//DisableArrow(this.Game.GetWorld(304235), target);
this.Game.AddOnLoadAction(304235, () =>
//find entrance
//DisableArrow(this.Game.GetWorld(304235), target);
var westmarchWorld = this.Game.GetWorld(WorldSno.x1_westmarch_hub);
this.Game.AddOnLoadWorldAction(WorldSno.x1_westmarch_hub, () =>
{
this.Game.GetWorld(304235).BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
westmarchWorld.BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
{
HashedName = DiIiS_NA.Core.Helpers.Hash.StringHashHelper.HashItemName("QuestMarker"),
Place = new MessageSystem.Message.Fields.WorldPlace { Position = new Vector3D(435.1377f, 439.43f, -0.96f), WorldID = this.Game.GetWorld(304235).GlobalID },
Place = new MessageSystem.Message.Fields.WorldPlace { Position = new Vector3D(435.1377f, 439.43f, -0.96f), WorldID = westmarchWorld.GlobalID },
ImageInfo = 81058,
Label = -1,
snoStringList = -1,
@ -819,17 +837,18 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
PlayerUseFlags = 0
});
});
ListenProximity(341337, new LaunchConversation(345820));
ListenConversation(345820, new AdvanceWithNotify());
AddFollower(this.Game.GetWorld(304235), 284530);
StartConversation(this.Game.GetWorld(304235), 305750);
this.Game.AddOnLoadAction(282460, () =>
ListenProximity(341337, new LaunchConversation(345820));
ListenConversation(345820, new AdvanceWithNotify());
AddFollower(westmarchWorld, 284530);
StartConversation(westmarchWorld, 305750);
this.Game.AddOnLoadWorldAction(WorldSno.x1_bog_adriaritual, () =>
{
this.Game.GetWorld(282460).BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
var world = this.Game.GetWorld(WorldSno.x1_bog_adriaritual);
world.BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
{
HashedName = DiIiS_NA.Core.Helpers.Hash.StringHashHelper.HashItemName("QuestMarker"),
Place = new MessageSystem.Message.Fields.WorldPlace { Position = new Vector3D(435.1377f, 439.43f, -0.96f), WorldID = this.Game.GetWorld(304235).GlobalID },
Place = new MessageSystem.Message.Fields.WorldPlace { Position = new Vector3D(435.1377f, 439.43f, -0.96f), WorldID = westmarchWorld.GlobalID },
ImageInfo = 81058,
Label = -1,
snoStringList = -1,
@ -842,7 +861,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
IsPing = false,
PlayerUseFlags = 0
});
setActorOperable(this.Game.GetWorld(282460), 340914, false);
setActorOperable(world, 340914, false);
});
})
});
@ -855,14 +874,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//kill mobs
this.Game.AddOnLoadAction(282460, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_bog_adriaritual, () =>
{
script = new WavedInvasion(new Vector3D { X = 101.62f, Y = 105.97f, Z = 0.1f }, 30f, new List<int> { 356157, 356160 }, 356380);
script.Execute(this.Game.GetWorld(282460));
script.Execute(this.Game.GetWorld(WorldSno.x1_bog_adriaritual));
});
ListenKill(356380, 1, new Advance());
DestroyFollower(284530);
AddFollower(this.Game.GetWorld(304235), 284530);
AddFollower(this.Game.GetWorld(WorldSno.x1_westmarch_hub), 284530);
})
});
@ -874,13 +893,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//find Nephalem Guidestone
this.Game.AddOnLoadAction(282460, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_bog_adriaritual, () =>
{
Open(this.Game.GetWorld(282460), 340914);
Open(this.Game.GetWorld(WorldSno.x1_bog_adriaritual), 340914);
});
ListenProximity(346878, new AdvanceWithNotify());
DestroyFollower(284530);
AddFollower(this.Game.GetWorld(304235), 284530);
AddFollower(this.Game.GetWorld(WorldSno.x1_westmarch_hub), 284530);
})
});
@ -895,7 +914,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
UnlockTeleport(4);
ListenInteract(346878, 1, new Advance());
DestroyFollower(284530);
AddFollower(this.Game.GetWorld(304235), 284530);
AddFollower(this.Game.GetWorld(WorldSno.x1_westmarch_hub), 284530);
})
});
@ -907,16 +926,17 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//find catacombs
var world = this.Game.GetWorld(WorldSno.x1_bog_adriaritual);
Portal Dest = null;
foreach (Portal prtl in this.Game.GetWorld(282460).GetActorsBySNO(176007))
if (prtl.Destination.WorldSNO == 283552) Dest = prtl;
foreach (Portal prtl in world.GetActorsBySNO(176007))
if (prtl.Destination.WorldSNO == (int)WorldSno.x1_catacombs_level01) Dest = prtl;
if (Dest != null)
this.Game.GetWorld(282460).BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
world.BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
{
HashedName = DiIiS_NA.Core.Helpers.Hash.StringHashHelper.HashItemName("QuestMarker"),
Place = new MessageSystem.Message.Fields.WorldPlace { Position = Dest.Position, WorldID = this.Game.GetWorld(282460).GlobalID },
Place = new MessageSystem.Message.Fields.WorldPlace { Position = Dest.Position, WorldID = world.GlobalID },
ImageInfo = 81058,
Label = -1,
snoStringList = -1,
@ -942,16 +962,17 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//search tomb
var world = this.Game.GetWorld(WorldSno.x1_bog_adriaritual);
Portal Dest = null;
foreach (Portal prtl in this.Game.GetWorld(282460).GetActorsBySNO(176007))
if (prtl.Destination.WorldSNO == 283552) Dest = prtl;
foreach (Portal prtl in world.GetActorsBySNO(176007))
if (prtl.Destination.WorldSNO == (int)WorldSno.x1_catacombs_level01) Dest = prtl;
if (Dest != null)
this.Game.GetWorld(282460).BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
world.BroadcastGlobal(plr => new MessageSystem.Message.Definitions.Map.MapMarkerInfoMessage()
{
HashedName = DiIiS_NA.Core.Helpers.Hash.StringHashHelper.HashItemName("QuestMarker"),
Place = new MessageSystem.Message.Fields.WorldPlace { Position = Dest.Position, WorldID = this.Game.GetWorld(282460).GlobalID },
Place = new MessageSystem.Message.Fields.WorldPlace { Position = Dest.Position, WorldID = world.GlobalID },
ImageInfo = 81058,
Label = -1,
snoStringList = -1,
@ -1006,8 +1027,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//talk to Lorath
this.Game.CurrentEncounter.activated = false;
var world = this.Game.GetWorld(WorldSno.x1_adria_boss_arena_02);
foreach (var Myst in this.Game.GetWorld(297771).GetActorsBySNO(284530)) //284530
foreach (var Myst in world.GetActorsBySNO(284530)) //284530
{
AddQuestConversation(Myst, 260191);
(Myst as InteractiveNPC).Conversations.Clear();
@ -1017,9 +1039,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
(Myst as InteractiveNPC).ForceConversationSNO = 260191;
}
this.Game.AddOnLoadAction(297771, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_adria_boss_arena_02, () =>
{
this.Game.GetWorld(297771).GetActorBySNO(284530).NotifyConversation(1);
world.GetActorBySNO(284530).NotifyConversation(1);
});
this.Game.CurrentEncounter.activated = false;
@ -1036,7 +1058,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//talk to Tyrael
foreach (var Myst in this.Game.GetWorld(297771).GetActorsBySNO(284530)) //284530
foreach (var Myst in this.Game.GetWorld(WorldSno.x1_adria_boss_arena_02).GetActorsBySNO(284530)) //284530
{
(Myst as InteractiveNPC).Conversations.Clear();
(Myst as InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 1;
@ -1106,9 +1128,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//talk to Imperius
this.Game.AddOnLoadAction(339160, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_heaven_pandemonium_portal, () =>
{
this.Game.GetWorld(339160).GetActorBySNO(368315).NotifyConversation(1);
this.Game.GetWorld(WorldSno.x1_heaven_pandemonium_portal).GetActorBySNO(368315).NotifyConversation(1);
});
ListenInteract(368315, 1, new LaunchConversation(361192));
ListenConversation(361192, new Advance());
@ -1161,31 +1183,32 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//cork for Imperius
this.Game.AddOnLoadAction(291941, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_ext_gateoverlook, () =>
{
if (this.Game.CurrentQuest == 273790 && this.Game.CurrentStep == 35)
{
script = new Advance();
script.Execute(this.Game.GetWorld(291941));
script.Execute(this.Game.GetWorld(WorldSno.x1_pand_ext_gateoverlook));
}
});
})
});
this.Game.QuestManager.Quests[273790].Steps.Add(41, new QuestStep
{
{
Completed = false,
Saveable = true,
NextStep = 1,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//reach Imperius
ListenInteract(275409, 1, new LaunchConversation(361245));
ListenConversation(361245, new Advance());
this.Game.AddOnLoadAction(291941, () =>
//reach Imperius
ListenInteract(275409, 1, new LaunchConversation(361245));
ListenConversation(361245, new Advance());
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_ext_gateoverlook, () =>
{
if (this.Game.GetWorld(291941).GetActorBySNO(275409, true) != null)
this.Game.GetWorld(291941).GetActorBySNO(275409, true).NotifyConversation(1);
var world = this.Game.GetWorld(WorldSno.x1_pand_ext_gateoverlook);
if (world.GetActorBySNO(275409, true) != null)
world.GetActorBySNO(275409, true).NotifyConversation(1);
});
})
});
@ -1215,20 +1238,21 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.Quests[273790].Steps.Add(11, new QuestStep
{
{
Completed = false,
Saveable = true,
NextStep = 43,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//talk to Imperius
ListenInteract(275409, 1, new LaunchConversation(361252));
ListenConversation(361252, new LaunchConversation(361275));
ListenConversation(361275, new Advance());
this.Game.AddOnLoadAction(291941, () =>
//talk to Imperius
ListenInteract(275409, 1, new LaunchConversation(361252));
ListenConversation(361252, new LaunchConversation(361275));
ListenConversation(361275, new Advance());
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_ext_gateoverlook, () =>
{
if (this.Game.GetWorld(291941).GetActorBySNO(275409, true) != null)
this.Game.GetWorld(291941).GetActorBySNO(275409, true).NotifyConversation(1);
var world = this.Game.GetWorld(WorldSno.x1_pand_ext_gateoverlook);
if (world.GetActorBySNO(275409, true) != null)
world.GetActorBySNO(275409, true).NotifyConversation(1);
});
})
});
@ -1280,9 +1304,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
//talk to Tyrael
ListenInteract(290323, 1, new LaunchConversation(346540));
ListenConversation(346540, new Advance());
this.Game.AddOnLoadAction(339254, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_ext_batteringram_entrance_a, () =>
{
this.Game.GetWorld(339254).GetActorBySNO(290323).NotifyConversation(1);
this.Game.GetWorld(WorldSno.x1_pand_ext_batteringram_entrance_a).GetActorBySNO(290323).NotifyConversation(1);
});
})
});
@ -1323,14 +1347,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
//Board Ram
UnlockTeleport(9);
ListenTeleport(295228, new Advance());
var RamWorld = this.Game.GetWorld(295225);
var RamWorld = this.Game.GetWorld(WorldSno.x1_pand_batteringram);
RamWorld.GetActorBySNO(376686).Hidden = true;
RamWorld.GetActorBySNO(376686).SetVisible(false);
RamWorld.GetActorBySNO(345259).Hidden = true;
RamWorld.GetActorBySNO(345259).SetVisible(false);
RamWorld.GetActorBySNO(323353).Hidden = true;
RamWorld.GetActorBySNO(323353).SetVisible(false);
this.Game.AddOnLoadAction(295225, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_batteringram, () =>
{
RamWorld.GetActorBySNO(176002).SetVisible(false);
foreach (var plr in this.Game.Players.Values)
@ -1358,9 +1382,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//breach phase
ListenKill(340920, 2, new Advance());
this.Game.AddOnLoadAction(295225, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_batteringram, () =>
{
setActorVisible(this.Game.GetWorld(295225), 358946, false);
setActorVisible(this.Game.GetWorld(WorldSno.x1_pand_batteringram), 358946, false);
});
})
});
@ -1374,10 +1398,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//Fight Ram Boss
ListenKill(358946, 1, new Advance());
this.Game.AddOnLoadAction(295225, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_batteringram, () =>
{
if (this.Game.CurrentQuest == 269552)
setActorVisible(this.Game.GetWorld(295225), 358946, true);
setActorVisible(this.Game.GetWorld(WorldSno.x1_pand_batteringram), 358946, true);
});
})
});
@ -1391,14 +1415,14 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//Finish the Gate
this.Game.AddOnLoadAction(295225, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_batteringram, () =>
{
if (this.Game.CurrentQuest == 269552)
{
//Должен быть Удар 1!
//{ 70176 = 334746} //Удар 1
script = new FirstWaveRam();
script.Execute(this.Game.GetWorld(295225));
script.Execute(this.Game.GetWorld(WorldSno.x1_pand_batteringram));
}
});
//После волны - Удар 2!
@ -1421,11 +1445,11 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//enter Breach
var RamWorld = this.Game.GetWorld(295225);
var RamWorld = this.Game.GetWorld(WorldSno.x1_pand_batteringram);
this.Game.CurrentEncounter.activated = false;
ListenTeleport(271234, new Advance());
this.Game.AddOnLoadAction(295225, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_pand_batteringram, () =>
{
RamWorld.GetActorBySNO(176002).SetVisible(true);
foreach (var plr in this.Game.Players.Values)
@ -1436,7 +1460,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
RamWorld.GetActorBySNO(295438).SetIdleAnimation(360069);
//RamWorld.GetActorBySNO(295438).PlayActionAnimation(299978);
//Open(this.Game.GetWorld(295225), 345259);
Open(this.Game.GetWorld(295225), 295438);
Open(RamWorld, 295438);
});
})
});
@ -1469,22 +1493,25 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.Quests[273408].Steps.Add(30, new QuestStep
{
{
Completed = false,
Saveable = true,
NextStep = 12,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//FortressIntroTyrael
var world = this.Game.GetWorld(WorldSno.x1_fortress_level_01);
AddQuestConversation(this.Game.GetWorld(271233).GetActorBySNO(6353), 302646);
//ListenProximity(6353, new LaunchConversation(302646));
ListenConversation(302646, new Advance());
this.Game.AddOnLoadAction(271233, () =>
AddQuestConversation(world.GetActorBySNO(6353), 302646);
//ListenProximity(6353, new LaunchConversation(302646));
ListenConversation(302646, new Advance());
this.Game.AddOnLoadWorldAction(WorldSno.x1_fortress_level_01, () =>
{
if (this.Game.CurrentQuest == 273408 && this.Game.CurrentStep == 30)
this.Game.GetWorld(271233).GetActorBySNO(6353).NotifyConversation(1);
});
{
world.GetActorBySNO(6353).NotifyConversation(1);
}
});
})
});
@ -1496,7 +1523,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
//Spirit Well 1
RemoveConversations(this.Game.GetWorld(271233).GetActorBySNO(6353));
RemoveConversations(this.Game.GetWorld(WorldSno.x1_fortress_level_01).GetActorBySNO(6353));
UnlockTeleport(10);
ListenInteract(308737, 1, new LaunchConversation(335174));
ListenInteract(314802, 1, new LaunchConversation(336672));
@ -1548,9 +1575,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
OnAdvance = new Action(() => {
//Kill Death Maiden
ListenKill(360241, 1, new Advance());
this.Game.AddOnLoadAction(271235, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_fortress_level_02, () =>
{
setActorOperable(this.Game.GetWorld(271235), 347276, false);
setActorOperable(this.Game.GetWorld(WorldSno.x1_fortress_level_02), 347276, false);
});
})
});
@ -1565,9 +1592,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
//Destroy Soul Prison
UnlockTeleport(11);
ListenKill(347276, 1, new Advance());
this.Game.AddOnLoadAction(271235, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_fortress_level_02, () =>
{
setActorOperable(this.Game.GetWorld(271235), 347276, true);
setActorOperable(this.Game.GetWorld(WorldSno.x1_fortress_level_02), 347276, true);
});
})
});
@ -1625,9 +1652,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
//plr.InGameClient.SendMessage(new AdventureModeUnlockedMessage());
}
}
this.Game.AddOnLoadAction(328484, () =>
this.Game.AddOnLoadWorldAction(WorldSno.x1_malthael_boss_arena, () =>
{
this.Game.GetWorld(328484).GetActorBySNO(6353).NotifyConversation(1);
this.Game.GetWorld(WorldSno.x1_malthael_boss_arena).GetActorBySNO(6353).NotifyConversation(1);
});
})
});

View File

@ -2,6 +2,7 @@
using DiIiS_NA.Core.Helpers.Math;
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations;
//Blizzless Project 2022
@ -107,9 +108,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 4,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
StartConversation(this.Game.GetWorld(71150), 60182);
if (this.Game.Players.Count > 0)
this.Game.GetWorld(71150).SpawnMonster(260231, this.Game.Players.First().Value.Position);
var world = this.Game.GetWorld(WorldSno.trout_town);
StartConversation(world, 60182);
if (!Game.Players.IsEmpty)
world.SpawnMonster(260231, this.Game.Players.First().Value.Position);
ListenKill(260231, 1, new SideAdvance());
})
});
@ -120,7 +122,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = -1,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
StartConversation(this.Game.GetWorld(71150), 60184);
StartConversation(this.Game.GetWorld(WorldSno.trout_town), 60184);
})
});
#endregion
@ -147,8 +149,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //defend yourself
script = new Invasion(this.Game.GetWorld(71150).Players.First().Value.Position, 50f, new List<int> { 5395, 5347 }, 30f, 112134, false);
script.Execute(this.Game.GetWorld(71150));
var world = this.Game.GetWorld(WorldSno.trout_town);
script = new Invasion(world.Players.First().Value.Position, 50f, new List<int> { 5395, 5347 }, 30f, 112134, false);
script.Execute(world);
ListenKill(112134, 3, new SideAdvance()); //mob skeleton
})
});
@ -185,7 +188,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //escape to treasure room
SetQuestTimer(120396, 180f, this.Game.GetWorld(50596), new SideAbandon());
SetQuestTimer(120396, 180f, this.Game.GetWorld(WorldSno.a2dun_zolt_timed01_level01), new SideAbandon());
ListenTeleport(168200, new SideAdvance());
})
});
@ -236,8 +239,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 12,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill shamans
script = new Invasion(this.Game.GetWorld(71150).GetActorBySNO(223597).Position, 30f, new List<int> { 81618, 81090 }, 15f, 81093, false);
script.Execute(this.Game.GetWorld(71150));
var world = this.Game.GetWorld(WorldSno.trout_town);
script = new Invasion(world.GetActorBySNO(223597).Position, 30f, new List<int> { 81618, 81090 }, 15f, 81093, false);
script.Execute(world);
ListenKill(81093, 1, new SideAdvance()); //mob shaman
})
});
@ -260,7 +264,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 2,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //Kill gharbad
(this.Game.GetWorld(71150).GetActorBySNO(81068) as Gharbad).Resurrect();
(this.Game.GetWorld(WorldSno.trout_town).GetActorBySNO(81068) as Gharbad).Resurrect();
ListenKill(81342, 1, new SideAdvance());
})
});
@ -310,7 +314,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 17,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find Idol
AddFollower(this.Game.GetWorld(2812), 2935);
AddFollower(this.Game.GetWorld(WorldSno.a2c2dun_zolt_treasurehunter), 2935);
ListenProximity(4522, new SideAdvance());
})
});
@ -322,7 +326,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 19,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //get idol
StartConversation(this.Game.GetWorld(2812), 18038);
StartConversation(this.Game.GetWorld(WorldSno.a2c2dun_zolt_treasurehunter), 18038);
ListenInteract(307, 1, new SideAdvance());
})
});
@ -334,7 +338,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 2,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //stop ambush
foreach (var spawner in this.Game.GetWorld(2812).GetActorsBySNO(54571))
foreach (var spawner in this.Game.GetWorld(WorldSno.a2c2dun_zolt_treasurehunter).GetActorsBySNO(54571))
{
spawner.World.SpawnMonster(5367, spawner.Position);
}
@ -376,9 +380,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 18,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find lever
setActorOperable(this.Game.GetWorld(158593), 207615, false);
var spots = this.Game.GetWorld(158593).GetActorsBySNO(3461);
this.Game.GetWorld(158593).SpawnMonster(219879, spots[FastRandom.Instance.Next(spots.Count())].Position);
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large);
setActorOperable(world, 207615, false);
var spots = world.GetActorsBySNO(3461);
world.SpawnMonster(219879, spots[FastRandom.Instance.Next(spots.Count)].Position);
ListenInteract(219879, 1, new SideAdvance());
})
});
@ -390,7 +395,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 20,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //enter vault
setActorOperable(this.Game.GetWorld(158593), 207615, true);
setActorOperable(this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large), 207615, true);
ListenInteract(207615, 1, new SideAdvance());
})
});
@ -407,18 +412,19 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.SideQuests[158596].Steps.Add(22, new QuestStep
{
{
Completed = false,
Saveable = false,
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill unique
foreach (var spawner in this.Game.GetWorld(158593).GetActorsBySNO(219919))
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_randomfacepuzzle_large);
foreach (var spawner in world.GetActorsBySNO(219919))
{
spawner.World.SpawnMonster(4198, spawner.Position);
}
this.Game.GetWorld(158593).SpawnMonster(207605, this.Game.GetWorld(158593).GetActorBySNO(219918).Position);
ListenKill(207605, 1, new SideAdvance());
world.SpawnMonster(207605, world.GetActorBySNO(219918).Position);
ListenKill(207605, 1, new SideAdvance());
})
});
@ -448,16 +454,17 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
});
this.Game.QuestManager.SideQuests[158377].Steps.Add(13, new QuestStep
{
{
Completed = false,
Saveable = false,
NextStep = 17,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //find lever
setActorOperable(this.Game.GetWorld(157882), 153836, false);
var spots = this.Game.GetWorld(157882).GetActorsBySNO(3461);
this.Game.GetWorld(157882).SpawnMonster(219879, spots[FastRandom.Instance.Next(spots.Count())].Position);
ListenInteract(219879, 1, new SideAdvance());
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_randomfacepuzzle_small);
setActorOperable(world, 153836, false);
var spots = world.GetActorsBySNO(3461);
world.SpawnMonster(219879, spots[FastRandom.Instance.Next(spots.Count)].Position);
ListenInteract(219879, 1, new SideAdvance());
})
});
@ -468,7 +475,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 22,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //enter vault
setActorOperable(this.Game.GetWorld(157882), 153836, true);
setActorOperable(this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_randomfacepuzzle_small), 153836, true);
ListenInteract(153836, 1, new SideAdvance());
})
});
@ -491,11 +498,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //kill unique
foreach (var spawner in this.Game.GetWorld(157882).GetActorsBySNO(219901))
var world = this.Game.GetWorld(WorldSno.a2dun_aqd_oasis_randomfacepuzzle_small);
foreach (var spawner in world.GetActorsBySNO(219901))
{
spawner.World.SpawnMonster(4104, spawner.Position);
}
this.Game.GetWorld(157882).SpawnMonster(203795, this.Game.GetWorld(157882).GetActorBySNO(219885).Position);
world.SpawnMonster(203795, world.GetActorBySNO(219885).Position);
ListenKill(203795, 1, new SideAdvance());
})
});
@ -822,7 +830,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
NextStep = 3,
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => { //talk with Tyrael
var TristHab = this.Game.GetWorld(332336);
var TristHab = this.Game.GetWorld(WorldSno.x1_tristram_adventure_mode_hub);
var Tyrael = TristHab.GetActorBySNO(114622) as ActorSystem.InteractiveNPC;
if (Tyrael != null)
{

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
@ -46,21 +47,23 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
Objectives = new List<Objective> { new Objective { Limit = 1, Counter = 0 } },
OnAdvance = new Action(() => {
script = new CryptPortals();
script.Execute(this.Game.GetWorld(71150));
this.Game.AddOnLoadAction(182976, () => { this.Game.GetWorld(182976).SpawnMonster(51341, new Vector3D { X = 149.439f, Y = 121.452f, Z = 13.794f }); });//spawn spider queen
this.Game.AddOnLoadAction(78839, () => { this.Game.GetWorld(78839).SpawnMonster(3526, new Vector3D { X = 93.022f, Y = 89.86f, Z = 0.1f }); });//spawn Butcher
this.Game.AddOnLoadAction(214956, () => { this.Game.GetWorld(214956).SpawnMonster(148449, new Vector3D { X = 585.439f, Y = 560.823f, Z = 0.1f }); });//spawn Izual
script.Execute(this.Game.GetWorld(WorldSno.trout_town));
this.Game.AddOnLoadWorldAction(WorldSno.a1dun_spidercave_02, () => { this.Game.GetWorld(WorldSno.a1dun_spidercave_02).SpawnMonster(51341, new Vector3D { X = 149.439f, Y = 121.452f, Z = 13.794f }); });//spawn spider queen
this.Game.AddOnLoadWorldAction(WorldSno.trdun_butcherslair_02, () => { this.Game.GetWorld(WorldSno.trdun_butcherslair_02).SpawnMonster(3526, new Vector3D { X = 93.022f, Y = 89.86f, Z = 0.1f }); });//spawn Butcher
this.Game.AddOnLoadWorldAction(WorldSno.a4dun_spire_exterior, () => { this.Game.GetWorld(WorldSno.a4dun_spire_exterior).SpawnMonster(148449, new Vector3D { X = 585.439f, Y = 560.823f, Z = 0.1f }); });//spawn Izual
//this.Game.AddOnLoadAction(109984, () => { foreach (var giz in this.Game.GetWorld(109894).GetActorsBySNO(180254)) giz.Destroy(); });//destroy walls for Belial
this.Game.GetWorld(109513).SpawnMonster(6442, new Vector3D { X = 931.48f, Y = 1172.24f, Z = -14.7f }); //waypoint
this.Game.AddOnLoadAction(121214, () =>
this.Game.GetWorld(WorldSno.a4dun_garden_of_hope_01).SpawnMonster(6442, new Vector3D { X = 931.48f, Y = 1172.24f, Z = -14.7f }); //waypoint
this.Game.AddOnLoadWorldAction(WorldSno.a3dun_azmodan_arena, () =>
{
try { this.Game.GetWorld(121214).GetActorBySNO(89690).Destroy(); } catch { };
this.Game.GetWorld(121214).SpawnMonster(89690, new Vector3D { X = 395.553f, Y = 394.966f, Z = 0.1f });
var world = this.Game.GetWorld(WorldSno.a3dun_azmodan_arena);
try { world.GetActorBySNO(89690).Destroy(); } catch { };
world.SpawnMonster(89690, new Vector3D { X = 395.553f, Y = 394.966f, Z = 0.1f });
}); //spawn Azmodan
this.Game.AddOnLoadAction(226713, () =>
this.Game.AddOnLoadWorldAction(WorldSno.a3_battlefields_03, () =>
{
try { this.Game.GetWorld(226713).GetActorBySNO(96192).Destroy(); } catch { }
this.Game.GetWorld(226713).SpawnMonster(96192, new Vector3D { X = 396.565f, Y = 366.167f, Z = 0.1f });
var world = this.Game.GetWorld(WorldSno.a3_battlefields_03);
try { world.GetActorBySNO(96192).Destroy(); } catch { }
world.SpawnMonster(96192, new Vector3D { X = 396.565f, Y = 366.167f, Z = 0.1f });
}); //spawn Siegebreaker
})

View File

@ -27,8 +27,6 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations.A
public override void Execute(MapSystem.World world)
{
var encWorld = world.Game.GetWorld(194933);
var Leah = world.GetActorBySNO(121208);
Leah.Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem;
//Blizzless Project 2022
@ -27,9 +28,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
public override void Execute(MapSystem.World world)
{
var encWorld = world.Game.GetWorld(194933);
var AttackedTown = world.Game.GetWorld(72882);
var AttackedTown = world.Game.GetWorld(WorldSno.trout_townattack);
var Maghda = AttackedTown.GetActorBySNO(129345);
if (Maghda == null)
Maghda = AttackedTown.SpawnMonster(129345, new Core.Types.Math.Vector3D(580f,563f,70f));

View File

@ -30,6 +30,7 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
{
@ -50,9 +51,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
};*/
private static readonly List<ResolvedPortalDestination> PortalDests = new List<ResolvedPortalDestination> {
new ResolvedPortalDestination{ WorldSNO = 72636, DestLevelAreaSNO = 145182, StartingPointActorTag = 172 },
new ResolvedPortalDestination{ WorldSNO = 72637, DestLevelAreaSNO = 145182, StartingPointActorTag = 172 },
new ResolvedPortalDestination{ WorldSNO = 154587, DestLevelAreaSNO = 145182, StartingPointActorTag = 172 }
new ResolvedPortalDestination{ WorldSNO = (int)WorldSno.trdun_crypt_falsepassage_01, DestLevelAreaSNO = 145182, StartingPointActorTag = 172 },
new ResolvedPortalDestination{ WorldSNO = (int)WorldSno.trdun_crypt_falsepassage_02, DestLevelAreaSNO = 145182, StartingPointActorTag = 172 },
new ResolvedPortalDestination{ WorldSNO = (int)WorldSno.trdun_crypt_skeletonkingcrown_00, DestLevelAreaSNO = 145182, StartingPointActorTag = 172 }
};
public override void Execute(MapSystem.World world)

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.Core.Types.Math;
//Blizzless Project 2022
@ -33,7 +34,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
public override void Execute(MapSystem.World world)
{
var DrownedTempleWorld = world.Game.GetWorld(60395);
var DrownedTempleWorld = world.Game.GetWorld(WorldSno.trdun_cave_nephalem_03);
List<uint> SkeletonsList = new List<uint> { };
List<uint> Skeletons2List = new List<uint> { };
@ -175,7 +176,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
public override void Execute(MapSystem.World world)
{
var DrownedTempleWorld = world.Game.GetWorld(60395);
var DrownedTempleWorld = world.Game.GetWorld(WorldSno.trdun_cave_nephalem_03);
List<uint> SkeletonsList = new List<uint> { };
List<uint> Skeletons2List = new List<uint> { };

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.MessageSystem;
//Blizzless Project 2022
@ -31,7 +32,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
{
//{[Actor] [Type: ServerProp] SNOId:176900 GlobalId: 1013202487 Position: x:107.497185 y:138.07204 z:7.088848 Name: camera_cainsHouse_leahCloseUp}
//{[Actor] [Type: ServerProp] SNOId:175759 GlobalId: 1013202485 Position: x:122.59496 y:131.74234 z:-0.6 Name: emitter_camera}
var encWorld = world.Game.GetWorld(174449);
var encWorld = world.Game.GetWorld(WorldSno.trout_tristram_cainshouse_event);
var Maghda = encWorld.GetActorBySNO(211014);
Maghda.Attributes[GameAttribute.Hitpoints_Max] = 9000000f;

View File

@ -2,6 +2,7 @@
using DiIiS_NA.Core.Helpers.Hash;
//Blizzless Project 2022
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
//Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
//Blizzless Project 2022
@ -115,13 +116,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
new QuestTrigger { triggerType = DiIiS_NA.Core.MPQ.FileFormats.QuestStepObjectiveType.KillMonster, count = monsterCount, counter = 0, questEvent = qevent });
}
public void ActiveArrow(MapSystem.World world, int snoId, int destworld = -1)
public void ActiveArrow(World world, int snoId, WorldSno destworld = WorldSno.__NONE)
{
Actor target = null;
if (destworld != -1)
if (destworld != WorldSno.__NONE)
{
foreach (Portal tar in world.GetActorsBySNO(snoId))
if (tar.Destination.WorldSNO == destworld)
if (tar.Destination.WorldSNO == (int)destworld)
target = tar;
}
else