From 33145b3c8c2b0b99faae3452ee8b7ecc678a2ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sat, 5 Jun 2010 13:11:17 +0200 Subject: [PATCH] game: Consolidate spaceport_load into lobby_load. --- include/maps.hrl | 140 +++++++++++++++++++++++------------------------ src/egs_game.erl | 60 ++++++++------------ 2 files changed, 93 insertions(+), 107 deletions(-) diff --git a/include/maps.hrl b/include/maps.hrl index 5cbb8c4..e44670d 100644 --- a/include/maps.hrl +++ b/include/maps.hrl @@ -21,91 +21,91 @@ -define(MAPS, [ % Current test mission - { [1000013, 0, 1121], [{name, "Linear Line Test"}, {quest, "data/missions/test.quest.nbl"}, {zone, "data/missions/test.zone.nbl"}, {entries, []}] }, + { [1000013, 0, 1121], [{type, mission}, {name, "Linear Line Test"}, {quest, "data/missions/test.quest.nbl"}, {zone, "data/missions/test.zone.nbl"}, {entries, []}] }, % Colony - { [1100000, 0, 1], [{name, "Colony 1st Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [1,2,11,12,13,14,20,21]}] }, - { [1100000, 0, 2], [{name, "Colony 2nd Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7,8,20,21,22,23]}] }, - { [1100000, 0, 3], [{name, "Colony 3rd Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [0,1,2,3,4,5,20,21,22,23]}] }, - { [1100000, 0, 4], [{name, "Colony 4th Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,20,21,22,23]}] }, - { [1100000,11, 5], [{name, "Colony GUARDIANS"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0,1,2]}] }, - { [1100000,11, 100], [{name, "Colony 2nd, Grind Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [2]}] }, - { [1100000,12, 100], [{name, "Colony 2nd, Synth Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-12.nbl"}, {entries, [1]}] }, - { [1100000,13, 100], [{name, "Colony 2nd, Decos Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-13.nbl"}, {entries, [0]}] }, - { [1100000,11, 101], [{name, "Colony 2nd, Items Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0]}] }, - { [1100000,12, 101], [{name, "Colony 2nd, Weapons Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-12.nbl"}, {entries, [1]}] }, - { [1100000,13, 101], [{name, "Colony 2nd, Armors Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-13.nbl"}, {entries, [2]}] }, - { [1100000,11, 102], [{name, "Colony 3rd, Lumilass"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [2,7,8]}] }, - { [1100000,12, 102], [{name, "Colony 3rd, Clothes Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-12.nbl"}, {entries, [1]}] }, - { [1100000,13, 102], [{name, "Colony 3rd, Parts Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-13.nbl"}, {entries, [0]}] }, - { [1100000,11, 103], [{name, "Colony Club"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0,1]}] }, - { [1100000,11, 110], [{name, "Colony R&D"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0,1]}] }, - { [1100000, 2,9000], [{name, "Colony Aurorey"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-2.nbl"}, {entries, [0]}] }, - { [1100000, 1,9001], [{name, "Colony Transfer Terminal"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-1.nbl"}, {entries, [0]}] }, % probably also 1 leaving next counter - { [1100000, 4,9010], [{name, "Colony Dallgun"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-4.nbl"}, {entries, [0]}] }, % probably also 1 leaving next counter - { [1100000, 3,9102], [{name, "Colony HIVE"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-3.nbl"}, {entries, [0,1]}] }, - { [1100000, 7,9200], [{name, "Colony Rykros"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-7.nbl"}, {entries, [0,1]}] }, - { [1100000, 7,9202], [{name, "Colony Falz Memoria"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-7.nbl"}, {entries, [0]}] }, + { [1100000, 0, 1], [{type, lobby}, {name, "Colony 1st Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [1,2,11,12,13,14,20,21]}] }, + { [1100000, 0, 2], [{type, lobby}, {name, "Colony 2nd Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7,8,20,21,22,23]}] }, + { [1100000, 0, 3], [{type, lobby}, {name, "Colony 3rd Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [0,1,2,3,4,5,20,21,22,23]}] }, + { [1100000, 0, 4], [{type, lobby}, {name, "Colony 4th Floor"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,20,21,22,23]}] }, + { [1100000,11, 5], [{type, lobby}, {name, "Colony GUARDIANS"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0,1,2]}] }, + { [1100000,11, 100], [{type, lobby}, {name, "Colony 2nd, Grind Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [2]}] }, + { [1100000,12, 100], [{type, lobby}, {name, "Colony 2nd, Synth Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-12.nbl"}, {entries, [1]}] }, + { [1100000,13, 100], [{type, lobby}, {name, "Colony 2nd, Decos Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-13.nbl"}, {entries, [0]}] }, + { [1100000,11, 101], [{type, lobby}, {name, "Colony 2nd, Items Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0]}] }, + { [1100000,12, 101], [{type, lobby}, {name, "Colony 2nd, Weapons Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-12.nbl"}, {entries, [1]}] }, + { [1100000,13, 101], [{type, lobby}, {name, "Colony 2nd, Armors Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-13.nbl"}, {entries, [2]}] }, + { [1100000,11, 102], [{type, lobby}, {name, "Colony 3rd, Lumilass"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [2,7,8]}] }, + { [1100000,12, 102], [{type, lobby}, {name, "Colony 3rd, Clothes Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-12.nbl"}, {entries, [1]}] }, + { [1100000,13, 102], [{type, lobby}, {name, "Colony 3rd, Parts Shop"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-13.nbl"}, {entries, [0]}] }, + { [1100000,11, 103], [{type, lobby}, {name, "Colony Club"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0,1]}] }, + { [1100000,11, 110], [{type, lobby}, {name, "Colony R&D"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-11.nbl"}, {entries, [0,1]}] }, + { [1100000, 2,9000], [{type, lobby}, {name, "Colony Aurorey"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-2.nbl"}, {entries, [0]}] }, + { [1100000, 1,9001], [{type, lobby}, {name, "Colony Transfer Terminal"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-1.nbl"}, {entries, [0]}] }, % probably also 1 leaving next counter + { [1100000, 4,9010], [{type, lobby}, {name, "Colony Dallgun"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-4.nbl"}, {entries, [0]}] }, % probably also 1 leaving next counter + { [1100000, 3,9102], [{type, lobby}, {name, "Colony HIVE"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-3.nbl"}, {entries, [0,1]}] }, + { [1100000, 7,9200], [{type, lobby}, {name, "Colony Rykros"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-7.nbl"}, {entries, [0,1]}] }, + { [1100000, 7,9202], [{type, lobby}, {name, "Colony Falz Memoria"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-7.nbl"}, {entries, [0]}] }, % Parum - { [1101000, 0, 1], [{name, "Parum City Central"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-0.nbl"}, {entries, [0,1,2]}] }, - { [1101000, 0, 2], [{name, "Parum City West"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7,8]}] }, - { [1101000, 0, 3], [{name, "Parum City East"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-0.nbl"}, {entries, [0,1,2]}] }, - { [1101000,11, 4], [{name, "Parum GUARDIANS"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-11.nbl"}, {entries, [0,1,2]}] }, - { [1101000,11, 100], [{name, "Parum Synth Shop"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-11.nbl"}, {entries, [2]}] }, - { [1101000,12, 100], [{name, "Parum Clothes Shop"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-12.nbl"}, {entries, [1]}] }, - { [1101000,13, 100], [{name, "Parum Parts Shop"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-13.nbl"}, {entries, [0]}] }, - { [1101000,11, 200], [{name, "Parum GRM"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-11.nbl"}, {entries, [0]}] }, - { [1101000, 1,9000], [{name, "Parum Raffon"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-1.nbl"}, {entries, [0,1]}] }, - { [1101000, 2,9010], [{name, "Parum Lakeshore"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-2.nbl"}, {entries, [0,1]}] }, - { [1101000, 5,9030], [{name, "Parum Waterfall"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-5.nbl"}, {entries, [0]}] }, - { [1101000, 4,9100], [{name, "Parum Denes"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-4.nbl"}, {entries, [0,1]}] }, - { [1101000, 3,9101], [{name, "Parum Underground"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-3.nbl"}, {entries, [0,1,2]}] }, - { [1101000, 7,9200], [{name, "Parum Beach"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0,1]}] }, - { [1101000, 7,9201], [{name, "Parum Rozenom"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0]}] }, % probably also 1 - { [1101000, 7,9203], [{name, "Parum Subway"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0]}] }, % probably also 1 - { [1101000, 7,9209], [{name, "Parum AMF"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0,1]}] }, + { [1101000, 0, 1], [{type, lobby}, {name, "Parum City Central"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-0.nbl"}, {entries, [0,1,2]}] }, + { [1101000, 0, 2], [{type, lobby}, {name, "Parum City West"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7,8]}] }, + { [1101000, 0, 3], [{type, lobby}, {name, "Parum City East"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-0.nbl"}, {entries, [0,1,2]}] }, + { [1101000,11, 4], [{type, lobby}, {name, "Parum GUARDIANS"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-11.nbl"}, {entries, [0,1,2]}] }, + { [1101000,11, 100], [{type, lobby}, {name, "Parum Synth Shop"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-11.nbl"}, {entries, [2]}] }, + { [1101000,12, 100], [{type, lobby}, {name, "Parum Clothes Shop"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-12.nbl"}, {entries, [1]}] }, + { [1101000,13, 100], [{type, lobby}, {name, "Parum Parts Shop"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-13.nbl"}, {entries, [0]}] }, + { [1101000,11, 200], [{type, lobby}, {name, "Parum GRM"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-11.nbl"}, {entries, [0]}] }, + { [1101000, 1,9000], [{type, lobby}, {name, "Parum Raffon"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-1.nbl"}, {entries, [0,1]}] }, + { [1101000, 2,9010], [{type, lobby}, {name, "Parum Lakeshore"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-2.nbl"}, {entries, [0,1]}] }, + { [1101000, 5,9030], [{type, lobby}, {name, "Parum Waterfall"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-5.nbl"}, {entries, [0]}] }, + { [1101000, 4,9100], [{type, lobby}, {name, "Parum Denes"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-4.nbl"}, {entries, [0,1]}] }, + { [1101000, 3,9101], [{type, lobby}, {name, "Parum Underground"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-3.nbl"}, {entries, [0,1,2]}] }, + { [1101000, 7,9200], [{type, lobby}, {name, "Parum Beach"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0,1]}] }, + { [1101000, 7,9201], [{type, lobby}, {name, "Parum Rozenom"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0]}] }, % probably also 1 + { [1101000, 7,9203], [{type, lobby}, {name, "Parum Subway"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0]}] }, % probably also 1 + { [1101000, 7,9209], [{type, lobby}, {name, "Parum AMF"}, {quest, "data/lobby/parum.quest.nbl"}, {zone, "data/lobby/parum.zone-7.nbl"}, {entries, [0,1]}] }, % Neudaiz - { [1102000, 0, 1], [{name, "Neudaiz City"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7]}] }, - { [1102000,11, 3], [{name, "Neudaiz GUARDIANS"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-11.nbl"}, {entries, [0,1,2]}] }, - { [1102000,11, 100], [{name, "Neudaiz Synth Shop"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-11.nbl"}, {entries, [0]}] }, - { [1102000,12, 100], [{name, "Neudaiz Clothes Shop"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-12.nbl"}, {entries, [1]}] }, - { [1102000,13, 100], [{name, "Neudaiz Parts Shop"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-13.nbl"}, {entries, [2]}] }, - { [1102000,11, 200], [{name, "Neudaiz Yohmei"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-11.nbl"}, {entries, [0]}] }, - { [1102000, 1,9000], [{name, "Neudaiz Islands"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-1.nbl"}, {entries, [0,1,2]}] }, - { [1102000, 2,9010], [{name, "Neudaiz Relics"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-2.nbl"}, {entries, [0,1]}] }, - { [1102000, 3,9100], [{name, "Neudaiz Mizuraki"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-3.nbl"}, {entries, [0,1,2]}] }, - { [1102000, 4,9120], [{name, "Neudaiz Hot Springs"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-4.nbl"}, {entries, [0]}] }, % maybe also 1 clothes - { [1102000, 7,9300], [{name, "Neudaiz Temple"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0]}] }, - { [1102000, 7,9301], [{name, "Neudaiz Pavilion"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0,2]}] }, % probably also unused 1 - { [1102000, 7,9302], [{name, "Neudaiz Habirao"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0,1]}] }, - { [1102000, 7,9305], [{name, "Neudaiz Saguraki"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0,1,2]}] }, + { [1102000, 0, 1], [{type, lobby}, {name, "Neudaiz City"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7]}] }, + { [1102000,11, 3], [{type, lobby}, {name, "Neudaiz GUARDIANS"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-11.nbl"}, {entries, [0,1,2]}] }, + { [1102000,11, 100], [{type, lobby}, {name, "Neudaiz Synth Shop"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-11.nbl"}, {entries, [0]}] }, + { [1102000,12, 100], [{type, lobby}, {name, "Neudaiz Clothes Shop"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-12.nbl"}, {entries, [1]}] }, + { [1102000,13, 100], [{type, lobby}, {name, "Neudaiz Parts Shop"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-13.nbl"}, {entries, [2]}] }, + { [1102000,11, 200], [{type, lobby}, {name, "Neudaiz Yohmei"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-11.nbl"}, {entries, [0]}] }, + { [1102000, 1,9000], [{type, lobby}, {name, "Neudaiz Islands"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-1.nbl"}, {entries, [0,1,2]}] }, + { [1102000, 2,9010], [{type, lobby}, {name, "Neudaiz Relics"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-2.nbl"}, {entries, [0,1]}] }, + { [1102000, 3,9100], [{type, lobby}, {name, "Neudaiz Mizuraki"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-3.nbl"}, {entries, [0,1,2]}] }, + { [1102000, 4,9120], [{type, lobby}, {name, "Neudaiz Hot Springs"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-4.nbl"}, {entries, [0]}] }, % maybe also 1 clothes + { [1102000, 7,9300], [{type, lobby}, {name, "Neudaiz Temple"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0]}] }, + { [1102000, 7,9301], [{type, lobby}, {name, "Neudaiz Pavilion"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0,2]}] }, % probably also unused 1 + { [1102000, 7,9302], [{type, lobby}, {name, "Neudaiz Habirao"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0,1]}] }, + { [1102000, 7,9305], [{type, lobby}, {name, "Neudaiz Saguraki"}, {quest, "data/lobby/neudaiz.quest.nbl"}, {zone, "data/lobby/neudaiz.zone-7.nbl"}, {entries, [0,1,2]}] }, % Moatoob - { [1103000, 0, 1], [{name, "Moatoob City"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7]}] }, - { [1103000,11, 2], [{name, "Moatoob GUARDIANS"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0,1,2]}] }, - { [1103000,11, 100], [{name, "Moatoob Parts Shop"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0]}] }, - { [1103000,12, 100], [{name, "Moatoob Clothes Shop"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-12.nbl"}, {entries, [1]}] }, - { [1103000,13, 100], [{name, "Moatoob Synth Shop"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-13.nbl"}, {entries, [2]}] }, - { [1103000,11, 101], [{name, "Moatoob Pub"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0,1]}] }, - { [1103000,11, 200], [{name, "Moatoob Tenora"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0]}] }, - { [1103000, 1,9010], [{name, "Moatoob Desert"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-1.nbl"}, {entries, [0,1]}] }, - { [1103000, 5,9030], [{name, "Moatoob Oasis"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-5.nbl"}, {entries, [0]}] }, % maybe also 1 clothes - { [1103000, 6,9040], [{name, "Moatoob Glacier"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-6.nbl"}, {entries, [0]}] }, % probably also 1 - { [1103000, 3,9101], [{name, "Moatoob Basin"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-3.nbl"}, {entries, [0,1]}] }, - { [1103000, 4,9202], [{name, "Moatoob Underground Lake"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-4.nbl"}, {entries, [0,1,2]}] }, % maybe also 3 - { [1103000, 7,9300], [{name, "Moatoob Casino"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-7.nbl"}, {entries, [0]}] }, - { [1103000, 7,9302], [{name, "Moatoob Il Cabo"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-7.nbl"}, {entries, [0]}] }, % probably also 1 - { [1103000, 7,9304], [{name, "Moatoob Granigs"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-7.nbl"}, {entries, [0,1,2]}] }, + { [1103000, 0, 1], [{type, lobby}, {name, "Moatoob City"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-0.nbl"}, {entries, [0,1,2,3,4,5,6,7]}] }, + { [1103000,11, 2], [{type, lobby}, {name, "Moatoob GUARDIANS"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0,1,2]}] }, + { [1103000,11, 100], [{type, lobby}, {name, "Moatoob Parts Shop"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0]}] }, + { [1103000,12, 100], [{type, lobby}, {name, "Moatoob Clothes Shop"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-12.nbl"}, {entries, [1]}] }, + { [1103000,13, 100], [{type, lobby}, {name, "Moatoob Synth Shop"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-13.nbl"}, {entries, [2]}] }, + { [1103000,11, 101], [{type, lobby}, {name, "Moatoob Pub"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0,1]}] }, + { [1103000,11, 200], [{type, lobby}, {name, "Moatoob Tenora"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-11.nbl"}, {entries, [0]}] }, + { [1103000, 1,9010], [{type, lobby}, {name, "Moatoob Desert"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-1.nbl"}, {entries, [0,1]}] }, + { [1103000, 5,9030], [{type, lobby}, {name, "Moatoob Oasis"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-5.nbl"}, {entries, [0]}] }, % maybe also 1 clothes + { [1103000, 6,9040], [{type, lobby}, {name, "Moatoob Glacier"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-6.nbl"}, {entries, [0]}] }, % probably also 1 + { [1103000, 3,9101], [{type, lobby}, {name, "Moatoob Basin"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-3.nbl"}, {entries, [0,1]}] }, + { [1103000, 4,9202], [{type, lobby}, {name, "Moatoob Underground Lake"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-4.nbl"}, {entries, [0,1,2]}] }, % maybe also 3 + { [1103000, 7,9300], [{type, lobby}, {name, "Moatoob Casino"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-7.nbl"}, {entries, [0]}] }, + { [1103000, 7,9302], [{type, lobby}, {name, "Moatoob Il Cabo"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-7.nbl"}, {entries, [0]}] }, % probably also 1 + { [1103000, 7,9304], [{type, lobby}, {name, "Moatoob Granigs"}, {quest, "data/lobby/moatoob.quest.nbl"}, {zone, "data/lobby/moatoob.zone-7.nbl"}, {entries, [0,1,2]}] }, % Spaceports - { [1104000,0,900], [{name, "Spaceport"}, {quest, "data/lobby/spaceport.quest.nbl"}, {zone, "data/lobby/spaceport.zone.nbl"}, {entries, [0]}] } + { [1104000,0,900], [{type, spaceport}, {name, "Spaceport"}, {quest, "data/lobby/spaceport.quest.nbl"}, {zone, "data/lobby/spaceport.zone.nbl"}, {entries, [0]}] } ]). %% EGS counters settings. Associate counter QuestID with the QuestID and ZoneID of the lobby containing the counter. diff --git a/src/egs_game.erl b/src/egs_game.erl index a83ed36..c0a0a9f 100644 --- a/src/egs_game.erl +++ b/src/egs_game.erl @@ -240,29 +240,45 @@ counter_load(CSocket, GID, Quest, MapType, MapNumber, MapEntry) -> end. %% @doc Load the given map as a standard lobby. +%% @todo Probably save the map type in the users table. lobby_load(CSocket, GID, Quest, MapType, MapNumber, MapEntry) -> OldUser = egs_db:users_select(GID), User = OldUser#users{instanceid=undefined, quest=Quest, maptype=MapType, mapnumber=MapNumber, mapentry=MapEntry}, egs_db:users_insert(User), [{status, 1}, {char, Char}, {options, _}] = char_load(User#users.folder, User#users.charnumber), - [{name, AreaName}, {quest, QuestFile}, {zone, ZoneFile}, {entries, _}] = proplists:get_value([Quest, MapType, MapNumber], ?MAPS, + [{type, AreaType}, {name, AreaName}, {quest, QuestFile}, {zone, ZoneFile}, {entries, _}] = proplists:get_value([Quest, MapType, MapNumber], ?MAPS, [{name, "dammy"}, {quest, "data/lobby/colony.quest.nbl"}, {zone, "data/lobby/colony.zone-0.nbl"}, {entries, []}]), try % broadcast spawn and unspawn to other people lists:foreach(fun(Other) -> Other#users.pid ! {psu_player_unspawn, User} end, egs_db:users_select_others_in_area(OldUser)), - lists:foreach(fun(Other) -> Other#users.pid ! {psu_player_spawn, User} end, egs_db:users_select_others_in_area(User)), + case AreaType of + lobby -> + lists:foreach(fun(Other) -> Other#users.pid ! {psu_player_spawn, User} end, egs_db:users_select_others_in_area(User)); + _ -> + ignore + end, egs_proto:send_init_quest(CSocket, GID, Quest), egs_proto:send_quest(CSocket, QuestFile), send_packet_0a05(CSocket, GID), - send_packet_0111(CSocket, GID), - % 010d + case AreaType of + lobby -> + send_packet_0111(CSocket, GID); + % 010d + _ -> + ignore + end, egs_proto:send_zone_init(CSocket, GID, lobby), egs_proto:send_zone(CSocket, ZoneFile), egs_proto:send_map(CSocket, MapType, MapNumber, MapEntry), egs_proto:send_location(CSocket, GID, Quest, MapType, MapNumber, AreaName), send_packet_020c(CSocket), - egs_proto:send_load_quest(CSocket, GID), + case AreaType of + lobby -> + egs_proto:send_load_quest(CSocket, GID); + _ -> + ignore + end, send_packet_201(CSocket, GID, User, Char), send_packet_0a06(CSocket, GID), send_packet_233(CSocket, GID, egs_db:users_select_others_in_area(User)), @@ -282,7 +298,7 @@ mission_load(CSocket, GID, Quest, MapType, MapNumber, MapEntry) -> User = OldUser#users{instanceid=GID, quest=Quest, maptype=MapType, mapnumber=MapNumber, mapentry=MapEntry}, egs_db:users_insert(User), [{status, 1}, {char, Char}, {options, _}] = char_load(User#users.folder, User#users.charnumber), - [{name, AreaName}, {quest, QuestFile}, {zone, ZoneFile}, {entries, _}] = proplists:get_value([Quest, MapType, MapNumber], ?MAPS), + [{type, _}, {name, AreaName}, {quest, QuestFile}, {zone, ZoneFile}, {entries, _}] = proplists:get_value([Quest, MapType, MapNumber], ?MAPS), try egs_proto:send_init_quest(CSocket, GID, Quest), egs_proto:send_quest(CSocket, QuestFile), @@ -360,34 +376,6 @@ myroom_send_packet(CSocket, Filename) -> {ok, << _:32, File/bits >>} = file:read_file(Filename), egs_proto:packet_send(CSocket, File). -%% @doc Load the given map as a spaceport. - -spaceport_load(CSocket, GID, Quest, MapType, MapNumber, MapEntry) -> - OldUser = egs_db:users_select(GID), - User = OldUser#users{quest=Quest, maptype=MapType, mapnumber=MapNumber, mapentry=MapEntry}, - egs_db:users_insert(User), - [{status, 1}, {char, Char}, {options, _}] = char_load(User#users.folder, User#users.charnumber), - [{name, AreaName}, {quest, QuestFile}, {zone, ZoneFile}, {entries, _}] = proplists:get_value([Quest, MapType, MapNumber], ?MAPS), - try - % broadcast unspawn to other people - lists:foreach(fun(Other) -> Other#users.pid ! {psu_player_unspawn, User} end, egs_db:users_select_others_in_area(OldUser)), - egs_proto:send_init_quest(CSocket, GID, Quest), - egs_proto:send_quest(CSocket, QuestFile), - send_packet_0a05(CSocket, GID), - egs_proto:send_zone_init(CSocket, GID, lobby), - egs_proto:send_zone(CSocket, ZoneFile), - egs_proto:send_map(CSocket, MapType, MapNumber, MapEntry), - egs_proto:send_location(CSocket, GID, Quest, MapType, MapNumber, AreaName), - send_packet_020c(CSocket), - send_packet_201(CSocket, GID, User, Char), - send_packet_0a06(CSocket, GID), - egs_proto:send_loading_end(CSocket, GID), - egs_proto:send_camera_center(CSocket, GID) - catch - _ -> - close(CSocket, GID) - end. - %% @doc Alias for the game main's loop when the buffer is empty. loop(CSocket, GID, Version) -> @@ -608,7 +596,7 @@ handle(16#0402, _, _, _, _) -> ignore; %% @doc Map change handler. -%% Spaceports and my room are handled differently than normal lobbies. +%% Rooms are handled differently than normal lobbies. %% @todo Load 'Your room' correctly. %% @todo When changing lobby to the room, 0230 must also be sent. Same when going from room to lobby. %% @todo The mission loading here is a temporary one-mission only choice. @@ -620,8 +608,6 @@ handle(16#0807, CSocket, GID, _, Orig) -> case {Quest, MapType, MapNumber, MapEntry} of {1000013, _, _, _} -> mission_load(CSocket, GID, 1000013, 0, 1121, 0); - {1104000, 0, 900, 0} -> - spaceport_load(CSocket, GID, Quest, MapType, MapNumber, MapEntry); {1120000, _, _, _} -> myroom_load(CSocket, GID, Quest, MapType, 423, MapEntry); _ ->